@studious-lms/server 1.3.0 → 1.4.1

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 (77) hide show
  1. package/dist/models/class.d.ts +24 -2
  2. package/dist/models/class.d.ts.map +1 -1
  3. package/dist/models/class.js +180 -81
  4. package/dist/models/class.js.map +1 -1
  5. package/dist/models/worksheet.d.ts +34 -34
  6. package/dist/pipelines/aiLabChat.d.ts +61 -2
  7. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  8. package/dist/pipelines/aiLabChat.js +204 -172
  9. package/dist/pipelines/aiLabChat.js.map +1 -1
  10. package/dist/pipelines/aiLabChatContract.d.ts +413 -0
  11. package/dist/pipelines/aiLabChatContract.d.ts.map +1 -0
  12. package/dist/pipelines/aiLabChatContract.js +74 -0
  13. package/dist/pipelines/aiLabChatContract.js.map +1 -0
  14. package/dist/pipelines/gradeWorksheet.d.ts +4 -4
  15. package/dist/pipelines/labChatPrompt.d.ts +2 -0
  16. package/dist/pipelines/labChatPrompt.d.ts.map +1 -0
  17. package/dist/pipelines/labChatPrompt.js +72 -0
  18. package/dist/pipelines/labChatPrompt.js.map +1 -0
  19. package/dist/routers/_app.d.ts +284 -56
  20. package/dist/routers/_app.d.ts.map +1 -1
  21. package/dist/routers/_app.js +4 -2
  22. package/dist/routers/_app.js.map +1 -1
  23. package/dist/routers/class.d.ts +24 -3
  24. package/dist/routers/class.d.ts.map +1 -1
  25. package/dist/routers/class.js +3 -3
  26. package/dist/routers/class.js.map +1 -1
  27. package/dist/routers/labChat.d.ts +10 -1
  28. package/dist/routers/labChat.d.ts.map +1 -1
  29. package/dist/routers/labChat.js +6 -3
  30. package/dist/routers/labChat.js.map +1 -1
  31. package/dist/routers/message.d.ts +11 -0
  32. package/dist/routers/message.d.ts.map +1 -1
  33. package/dist/routers/message.js +10 -3
  34. package/dist/routers/message.js.map +1 -1
  35. package/dist/routers/studentProgress.d.ts +75 -0
  36. package/dist/routers/studentProgress.d.ts.map +1 -0
  37. package/dist/routers/studentProgress.js +33 -0
  38. package/dist/routers/studentProgress.js.map +1 -0
  39. package/dist/routers/worksheet.d.ts +24 -24
  40. package/dist/services/class.d.ts +24 -2
  41. package/dist/services/class.d.ts.map +1 -1
  42. package/dist/services/class.js +18 -6
  43. package/dist/services/class.js.map +1 -1
  44. package/dist/services/labChat.d.ts +5 -1
  45. package/dist/services/labChat.d.ts.map +1 -1
  46. package/dist/services/labChat.js +112 -4
  47. package/dist/services/labChat.js.map +1 -1
  48. package/dist/services/message.d.ts +8 -0
  49. package/dist/services/message.d.ts.map +1 -1
  50. package/dist/services/message.js +116 -2
  51. package/dist/services/message.js.map +1 -1
  52. package/dist/services/studentProgress.d.ts +45 -0
  53. package/dist/services/studentProgress.d.ts.map +1 -0
  54. package/dist/services/studentProgress.js +291 -0
  55. package/dist/services/studentProgress.js.map +1 -0
  56. package/dist/services/worksheet.d.ts +18 -18
  57. package/package.json +2 -2
  58. package/prisma/schema.prisma +1 -1
  59. package/sentry.properties +3 -0
  60. package/src/models/class.ts +189 -84
  61. package/src/pipelines/aiLabChat.ts +246 -184
  62. package/src/pipelines/aiLabChatContract.ts +75 -0
  63. package/src/pipelines/labChatPrompt.ts +68 -0
  64. package/src/routers/_app.ts +4 -2
  65. package/src/routers/class.ts +1 -1
  66. package/src/routers/labChat.ts +7 -0
  67. package/src/routers/message.ts +13 -0
  68. package/src/routers/studentProgress.ts +47 -0
  69. package/src/services/class.ts +14 -7
  70. package/src/services/labChat.ts +120 -5
  71. package/src/services/message.ts +142 -0
  72. package/src/services/studentProgress.ts +390 -0
  73. package/tests/lib/aiLabChatContract.test.ts +32 -0
  74. package/tests/pipelines/aiLabChat.test.ts +95 -0
  75. package/tests/routers/studentProgress.test.ts +283 -0
  76. package/tests/utils/aiLabChatPrompt.test.ts +18 -0
  77. package/vitest.unit.config.ts +7 -1
@@ -834,18 +834,32 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
834
834
  type: import(".prisma/client").$Enums.AssignmentType;
835
835
  id: string;
836
836
  createdAt: Date | null;
837
+ classId: string;
837
838
  section: {
838
839
  id: string;
839
840
  name: string;
840
841
  } | null;
842
+ worksheets: {
843
+ id: string;
844
+ }[];
841
845
  title: string;
842
846
  dueDate: Date;
843
847
  maxGrade: number | null;
848
+ eventId: string | null;
844
849
  instructions: string;
850
+ teacherId: string;
851
+ acceptFiles: boolean;
852
+ acceptExtendedResponse: boolean;
853
+ acceptWorksheet: boolean;
854
+ gradeWithAI: boolean;
855
+ aiPolicyLevel: number;
856
+ sectionId: string | null;
845
857
  graded: boolean;
846
858
  weight: number;
847
859
  inProgress: boolean;
860
+ markSchemeId: string | null;
848
861
  order: number | null;
862
+ gradingBoundaryId: string | null;
849
863
  markScheme: {
850
864
  id: string;
851
865
  structured: string;
@@ -864,10 +878,18 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
864
878
  }[];
865
879
  worksheets: {
866
880
  id: string;
867
- createdAt: Date;
868
- updatedAt: Date;
869
881
  classId: string;
870
882
  name: string;
883
+ questions: {
884
+ options: import("@prisma/client/runtime/library.js").JsonValue;
885
+ type: import(".prisma/client").$Enums.WorksheetQuestionType;
886
+ order: number | null;
887
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
888
+ worksheetId: string;
889
+ question: string;
890
+ answer: string;
891
+ points: number;
892
+ }[];
871
893
  }[];
872
894
  markSchemes: {
873
895
  id: string;
@@ -891,7 +913,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
891
913
  }>;
892
914
  importClass: import("@trpc/server").TRPCMutationProcedure<{
893
915
  input: {
894
- [x: string]: unknown;
895
916
  classId: string;
896
917
  year: number;
897
918
  classData?: any;
@@ -4760,6 +4781,17 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4760
4781
  };
4761
4782
  meta: object;
4762
4783
  }>;
4784
+ markSuggestionCreated: import("@trpc/server").TRPCMutationProcedure<{
4785
+ input: {
4786
+ type: "section" | "assignment" | "worksheet";
4787
+ messageId: string;
4788
+ index: number;
4789
+ };
4790
+ output: {
4791
+ success: boolean;
4792
+ };
4793
+ meta: object;
4794
+ }>;
4763
4795
  getUnreadCount: import("@trpc/server").TRPCQueryProcedure<{
4764
4796
  input: {
4765
4797
  conversationId: string;
@@ -4852,6 +4884,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4852
4884
  labChatId: string;
4853
4885
  };
4854
4886
  output: {
4887
+ pendingGenerationMessageId: string | null;
4855
4888
  class: {
4856
4889
  id: string;
4857
4890
  name: string;
@@ -4893,7 +4926,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4893
4926
  profilePicture: string | null;
4894
4927
  } | null;
4895
4928
  };
4896
- } & {
4897
4929
  context: string;
4898
4930
  id: string;
4899
4931
  createdAt: Date;
@@ -4977,6 +5009,15 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4977
5009
  };
4978
5010
  meta: object;
4979
5011
  }>;
5012
+ rerunLastResponse: import("@trpc/server").TRPCMutationProcedure<{
5013
+ input: {
5014
+ labChatId: string;
5015
+ };
5016
+ output: {
5017
+ success: boolean;
5018
+ };
5019
+ meta: object;
5020
+ }>;
4980
5021
  }>>;
4981
5022
  newtonChat: import("@trpc/server").TRPCBuiltRouter<{
4982
5023
  ctx: import("../trpc.js").Context;
@@ -5148,10 +5189,10 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5148
5189
  updatedAt: Date;
5149
5190
  order: number | null;
5150
5191
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5151
- question: string;
5152
- points: number;
5153
5192
  worksheetId: string;
5193
+ question: string;
5154
5194
  answer: string;
5195
+ points: number;
5155
5196
  }[];
5156
5197
  } & {
5157
5198
  id: string;
@@ -5232,8 +5273,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5232
5273
  addQuestion: import("@trpc/server").TRPCMutationProcedure<{
5233
5274
  input: {
5234
5275
  type: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION";
5235
- question: string;
5236
5276
  worksheetId: string;
5277
+ question: string;
5237
5278
  answer: string;
5238
5279
  options?: any;
5239
5280
  markScheme?: any;
@@ -5247,10 +5288,10 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5247
5288
  updatedAt: Date;
5248
5289
  order: number | null;
5249
5290
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5250
- question: string;
5251
- points: number;
5252
5291
  worksheetId: string;
5292
+ question: string;
5253
5293
  answer: string;
5294
+ points: number;
5254
5295
  };
5255
5296
  meta: object;
5256
5297
  }>;
@@ -5268,14 +5309,14 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5268
5309
  }>;
5269
5310
  updateQuestion: import("@trpc/server").TRPCMutationProcedure<{
5270
5311
  input: {
5271
- questionId: string;
5272
5312
  worksheetId: string;
5313
+ questionId: string;
5273
5314
  options?: any;
5274
5315
  type?: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION" | undefined;
5275
5316
  markScheme?: any;
5276
5317
  question?: string | undefined;
5277
- points?: number | undefined;
5278
5318
  answer?: string | undefined;
5319
+ points?: number | undefined;
5279
5320
  };
5280
5321
  output: {
5281
5322
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -5285,17 +5326,17 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5285
5326
  updatedAt: Date;
5286
5327
  order: number | null;
5287
5328
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5288
- question: string;
5289
- points: number;
5290
5329
  worksheetId: string;
5330
+ question: string;
5291
5331
  answer: string;
5332
+ points: number;
5292
5333
  };
5293
5334
  meta: object;
5294
5335
  }>;
5295
5336
  deleteQuestion: import("@trpc/server").TRPCMutationProcedure<{
5296
5337
  input: {
5297
- questionId: string;
5298
5338
  worksheetId: string;
5339
+ questionId: string;
5299
5340
  };
5300
5341
  output: {
5301
5342
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -5305,10 +5346,10 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5305
5346
  updatedAt: Date;
5306
5347
  order: number | null;
5307
5348
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5308
- question: string;
5309
- points: number;
5310
5349
  worksheetId: string;
5350
+ question: string;
5311
5351
  answer: string;
5352
+ points: number;
5312
5353
  };
5313
5354
  meta: object;
5314
5355
  }>;
@@ -5329,12 +5370,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5329
5370
  updatedAt: Date | null;
5330
5371
  feedback: string | null;
5331
5372
  studentId: string;
5373
+ points: number;
5332
5374
  response: string;
5333
5375
  isCorrect: boolean;
5334
5376
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5335
- points: number;
5336
- questionId: string;
5337
5377
  studentWorksheetResponseId: string | null;
5378
+ questionId: string;
5338
5379
  })[];
5339
5380
  } & {
5340
5381
  id: string;
@@ -5362,12 +5403,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5362
5403
  updatedAt: Date | null;
5363
5404
  feedback: string | null;
5364
5405
  studentId: string;
5406
+ points: number;
5365
5407
  response: string;
5366
5408
  isCorrect: boolean;
5367
5409
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5368
- points: number;
5369
- questionId: string;
5370
5410
  studentWorksheetResponseId: string | null;
5411
+ questionId: string;
5371
5412
  }[];
5372
5413
  } & {
5373
5414
  id: string;
@@ -5393,12 +5434,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5393
5434
  updatedAt: Date | null;
5394
5435
  feedback: string | null;
5395
5436
  studentId: string;
5437
+ points: number;
5396
5438
  response: string;
5397
5439
  isCorrect: boolean;
5398
5440
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5399
- points: number;
5400
- questionId: string;
5401
5441
  studentWorksheetResponseId: string | null;
5442
+ questionId: string;
5402
5443
  };
5403
5444
  meta: object;
5404
5445
  }>;
@@ -5414,24 +5455,24 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5414
5455
  updatedAt: Date | null;
5415
5456
  feedback: string | null;
5416
5457
  studentId: string;
5458
+ points: number;
5417
5459
  response: string;
5418
5460
  isCorrect: boolean;
5419
5461
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5420
- points: number;
5421
- questionId: string;
5422
5462
  studentWorksheetResponseId: string | null;
5463
+ questionId: string;
5423
5464
  };
5424
5465
  meta: object;
5425
5466
  }>;
5426
5467
  gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
5427
5468
  input: {
5428
5469
  isCorrect: boolean;
5429
- questionId: string;
5430
5470
  studentWorksheetResponseId: string;
5471
+ questionId: string;
5431
5472
  feedback?: string | undefined;
5473
+ points?: number | undefined;
5432
5474
  response?: string | undefined;
5433
5475
  markschemeState?: any;
5434
- points?: number | undefined;
5435
5476
  responseId?: string | undefined;
5436
5477
  };
5437
5478
  output: {
@@ -5441,12 +5482,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5441
5482
  updatedAt: Date | null;
5442
5483
  feedback: string | null;
5443
5484
  studentId: string;
5485
+ points: number;
5444
5486
  response: string;
5445
5487
  isCorrect: boolean;
5446
5488
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5447
- points: number;
5448
- questionId: string;
5449
5489
  studentWorksheetResponseId: string | null;
5490
+ questionId: string;
5450
5491
  };
5451
5492
  meta: object;
5452
5493
  }>;
@@ -5619,6 +5660,79 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5619
5660
  meta: object;
5620
5661
  }>;
5621
5662
  }>>;
5663
+ studentProgress: import("@trpc/server").TRPCBuiltRouter<{
5664
+ ctx: import("../trpc.js").Context;
5665
+ meta: object;
5666
+ errorShape: {
5667
+ data: {
5668
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
5669
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
5670
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
5671
+ httpStatus: number;
5672
+ path?: string;
5673
+ stack?: string;
5674
+ };
5675
+ message: string;
5676
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
5677
+ };
5678
+ transformer: false;
5679
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
5680
+ getRecommendations: import("@trpc/server").TRPCQueryProcedure<{
5681
+ input: {
5682
+ [x: string]: unknown;
5683
+ classId: string;
5684
+ studentId: string;
5685
+ };
5686
+ output: {
5687
+ student: {
5688
+ id: string;
5689
+ username: string;
5690
+ displayName: string;
5691
+ };
5692
+ summary: {
5693
+ overallGrade: number | null;
5694
+ trend: number;
5695
+ completedAssignments: number;
5696
+ totalAssignments: number;
5697
+ missingCount: number;
5698
+ lowScoreCount: number;
5699
+ };
5700
+ recommendations: {
5701
+ assignmentId: string;
5702
+ submissionId: string;
5703
+ title: string;
5704
+ type: import(".prisma/client").$Enums.AssignmentType;
5705
+ sectionName: string | null;
5706
+ dueDate: Date;
5707
+ gradeReceived: number | null;
5708
+ maxGrade: number | null;
5709
+ percentage: number | null;
5710
+ submitted: boolean;
5711
+ returned: boolean;
5712
+ reasons: string[];
5713
+ }[];
5714
+ nextSteps: string[];
5715
+ };
5716
+ meta: object;
5717
+ }>;
5718
+ chat: import("@trpc/server").TRPCMutationProcedure<{
5719
+ input: {
5720
+ [x: string]: unknown;
5721
+ classId: string;
5722
+ message: string;
5723
+ studentId: string;
5724
+ history?: {
5725
+ role: "user" | "assistant";
5726
+ content: string;
5727
+ }[] | undefined;
5728
+ };
5729
+ output: {
5730
+ message: string;
5731
+ isFallback: boolean;
5732
+ };
5733
+ meta: object;
5734
+ }>;
5735
+ }>>;
5622
5736
  }>>;
5623
5737
  export type AppRouter = typeof appRouter;
5624
5738
  export type RouterInputs = inferRouterInputs<AppRouter>;
@@ -6458,18 +6572,32 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
6458
6572
  type: import(".prisma/client").$Enums.AssignmentType;
6459
6573
  id: string;
6460
6574
  createdAt: Date | null;
6575
+ classId: string;
6461
6576
  section: {
6462
6577
  id: string;
6463
6578
  name: string;
6464
6579
  } | null;
6580
+ worksheets: {
6581
+ id: string;
6582
+ }[];
6465
6583
  title: string;
6466
6584
  dueDate: Date;
6467
6585
  maxGrade: number | null;
6586
+ eventId: string | null;
6468
6587
  instructions: string;
6588
+ teacherId: string;
6589
+ acceptFiles: boolean;
6590
+ acceptExtendedResponse: boolean;
6591
+ acceptWorksheet: boolean;
6592
+ gradeWithAI: boolean;
6593
+ aiPolicyLevel: number;
6594
+ sectionId: string | null;
6469
6595
  graded: boolean;
6470
6596
  weight: number;
6471
6597
  inProgress: boolean;
6598
+ markSchemeId: string | null;
6472
6599
  order: number | null;
6600
+ gradingBoundaryId: string | null;
6473
6601
  markScheme: {
6474
6602
  id: string;
6475
6603
  structured: string;
@@ -6488,10 +6616,18 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
6488
6616
  }[];
6489
6617
  worksheets: {
6490
6618
  id: string;
6491
- createdAt: Date;
6492
- updatedAt: Date;
6493
6619
  classId: string;
6494
6620
  name: string;
6621
+ questions: {
6622
+ options: import("@prisma/client/runtime/library.js").JsonValue;
6623
+ type: import(".prisma/client").$Enums.WorksheetQuestionType;
6624
+ order: number | null;
6625
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
6626
+ worksheetId: string;
6627
+ question: string;
6628
+ answer: string;
6629
+ points: number;
6630
+ }[];
6495
6631
  }[];
6496
6632
  markSchemes: {
6497
6633
  id: string;
@@ -6515,7 +6651,6 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
6515
6651
  }>;
6516
6652
  importClass: import("@trpc/server").TRPCMutationProcedure<{
6517
6653
  input: {
6518
- [x: string]: unknown;
6519
6654
  classId: string;
6520
6655
  year: number;
6521
6656
  classData?: any;
@@ -10384,6 +10519,17 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10384
10519
  };
10385
10520
  meta: object;
10386
10521
  }>;
10522
+ markSuggestionCreated: import("@trpc/server").TRPCMutationProcedure<{
10523
+ input: {
10524
+ type: "section" | "assignment" | "worksheet";
10525
+ messageId: string;
10526
+ index: number;
10527
+ };
10528
+ output: {
10529
+ success: boolean;
10530
+ };
10531
+ meta: object;
10532
+ }>;
10387
10533
  getUnreadCount: import("@trpc/server").TRPCQueryProcedure<{
10388
10534
  input: {
10389
10535
  conversationId: string;
@@ -10476,6 +10622,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10476
10622
  labChatId: string;
10477
10623
  };
10478
10624
  output: {
10625
+ pendingGenerationMessageId: string | null;
10479
10626
  class: {
10480
10627
  id: string;
10481
10628
  name: string;
@@ -10517,7 +10664,6 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10517
10664
  profilePicture: string | null;
10518
10665
  } | null;
10519
10666
  };
10520
- } & {
10521
10667
  context: string;
10522
10668
  id: string;
10523
10669
  createdAt: Date;
@@ -10601,6 +10747,15 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10601
10747
  };
10602
10748
  meta: object;
10603
10749
  }>;
10750
+ rerunLastResponse: import("@trpc/server").TRPCMutationProcedure<{
10751
+ input: {
10752
+ labChatId: string;
10753
+ };
10754
+ output: {
10755
+ success: boolean;
10756
+ };
10757
+ meta: object;
10758
+ }>;
10604
10759
  }>>;
10605
10760
  newtonChat: import("@trpc/server").TRPCBuiltRouter<{
10606
10761
  ctx: import("../trpc.js").Context;
@@ -10772,10 +10927,10 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10772
10927
  updatedAt: Date;
10773
10928
  order: number | null;
10774
10929
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10775
- question: string;
10776
- points: number;
10777
10930
  worksheetId: string;
10931
+ question: string;
10778
10932
  answer: string;
10933
+ points: number;
10779
10934
  }[];
10780
10935
  } & {
10781
10936
  id: string;
@@ -10856,8 +11011,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10856
11011
  addQuestion: import("@trpc/server").TRPCMutationProcedure<{
10857
11012
  input: {
10858
11013
  type: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION";
10859
- question: string;
10860
11014
  worksheetId: string;
11015
+ question: string;
10861
11016
  answer: string;
10862
11017
  options?: any;
10863
11018
  markScheme?: any;
@@ -10871,10 +11026,10 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10871
11026
  updatedAt: Date;
10872
11027
  order: number | null;
10873
11028
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10874
- question: string;
10875
- points: number;
10876
11029
  worksheetId: string;
11030
+ question: string;
10877
11031
  answer: string;
11032
+ points: number;
10878
11033
  };
10879
11034
  meta: object;
10880
11035
  }>;
@@ -10892,14 +11047,14 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10892
11047
  }>;
10893
11048
  updateQuestion: import("@trpc/server").TRPCMutationProcedure<{
10894
11049
  input: {
10895
- questionId: string;
10896
11050
  worksheetId: string;
11051
+ questionId: string;
10897
11052
  options?: any;
10898
11053
  type?: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION" | undefined;
10899
11054
  markScheme?: any;
10900
11055
  question?: string | undefined;
10901
- points?: number | undefined;
10902
11056
  answer?: string | undefined;
11057
+ points?: number | undefined;
10903
11058
  };
10904
11059
  output: {
10905
11060
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -10909,17 +11064,17 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10909
11064
  updatedAt: Date;
10910
11065
  order: number | null;
10911
11066
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10912
- question: string;
10913
- points: number;
10914
11067
  worksheetId: string;
11068
+ question: string;
10915
11069
  answer: string;
11070
+ points: number;
10916
11071
  };
10917
11072
  meta: object;
10918
11073
  }>;
10919
11074
  deleteQuestion: import("@trpc/server").TRPCMutationProcedure<{
10920
11075
  input: {
10921
- questionId: string;
10922
11076
  worksheetId: string;
11077
+ questionId: string;
10923
11078
  };
10924
11079
  output: {
10925
11080
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -10929,10 +11084,10 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10929
11084
  updatedAt: Date;
10930
11085
  order: number | null;
10931
11086
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10932
- question: string;
10933
- points: number;
10934
11087
  worksheetId: string;
11088
+ question: string;
10935
11089
  answer: string;
11090
+ points: number;
10936
11091
  };
10937
11092
  meta: object;
10938
11093
  }>;
@@ -10953,12 +11108,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10953
11108
  updatedAt: Date | null;
10954
11109
  feedback: string | null;
10955
11110
  studentId: string;
11111
+ points: number;
10956
11112
  response: string;
10957
11113
  isCorrect: boolean;
10958
11114
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
10959
- points: number;
10960
- questionId: string;
10961
11115
  studentWorksheetResponseId: string | null;
11116
+ questionId: string;
10962
11117
  })[];
10963
11118
  } & {
10964
11119
  id: string;
@@ -10986,12 +11141,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10986
11141
  updatedAt: Date | null;
10987
11142
  feedback: string | null;
10988
11143
  studentId: string;
11144
+ points: number;
10989
11145
  response: string;
10990
11146
  isCorrect: boolean;
10991
11147
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
10992
- points: number;
10993
- questionId: string;
10994
11148
  studentWorksheetResponseId: string | null;
11149
+ questionId: string;
10995
11150
  }[];
10996
11151
  } & {
10997
11152
  id: string;
@@ -11017,12 +11172,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11017
11172
  updatedAt: Date | null;
11018
11173
  feedback: string | null;
11019
11174
  studentId: string;
11175
+ points: number;
11020
11176
  response: string;
11021
11177
  isCorrect: boolean;
11022
11178
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
11023
- points: number;
11024
- questionId: string;
11025
11179
  studentWorksheetResponseId: string | null;
11180
+ questionId: string;
11026
11181
  };
11027
11182
  meta: object;
11028
11183
  }>;
@@ -11038,24 +11193,24 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11038
11193
  updatedAt: Date | null;
11039
11194
  feedback: string | null;
11040
11195
  studentId: string;
11196
+ points: number;
11041
11197
  response: string;
11042
11198
  isCorrect: boolean;
11043
11199
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
11044
- points: number;
11045
- questionId: string;
11046
11200
  studentWorksheetResponseId: string | null;
11201
+ questionId: string;
11047
11202
  };
11048
11203
  meta: object;
11049
11204
  }>;
11050
11205
  gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
11051
11206
  input: {
11052
11207
  isCorrect: boolean;
11053
- questionId: string;
11054
11208
  studentWorksheetResponseId: string;
11209
+ questionId: string;
11055
11210
  feedback?: string | undefined;
11211
+ points?: number | undefined;
11056
11212
  response?: string | undefined;
11057
11213
  markschemeState?: any;
11058
- points?: number | undefined;
11059
11214
  responseId?: string | undefined;
11060
11215
  };
11061
11216
  output: {
@@ -11065,12 +11220,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11065
11220
  updatedAt: Date | null;
11066
11221
  feedback: string | null;
11067
11222
  studentId: string;
11223
+ points: number;
11068
11224
  response: string;
11069
11225
  isCorrect: boolean;
11070
11226
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
11071
- points: number;
11072
- questionId: string;
11073
11227
  studentWorksheetResponseId: string | null;
11228
+ questionId: string;
11074
11229
  };
11075
11230
  meta: object;
11076
11231
  }>;
@@ -11243,5 +11398,78 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11243
11398
  meta: object;
11244
11399
  }>;
11245
11400
  }>>;
11401
+ studentProgress: import("@trpc/server").TRPCBuiltRouter<{
11402
+ ctx: import("../trpc.js").Context;
11403
+ meta: object;
11404
+ errorShape: {
11405
+ data: {
11406
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
11407
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
11408
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
11409
+ httpStatus: number;
11410
+ path?: string;
11411
+ stack?: string;
11412
+ };
11413
+ message: string;
11414
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
11415
+ };
11416
+ transformer: false;
11417
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
11418
+ getRecommendations: import("@trpc/server").TRPCQueryProcedure<{
11419
+ input: {
11420
+ [x: string]: unknown;
11421
+ classId: string;
11422
+ studentId: string;
11423
+ };
11424
+ output: {
11425
+ student: {
11426
+ id: string;
11427
+ username: string;
11428
+ displayName: string;
11429
+ };
11430
+ summary: {
11431
+ overallGrade: number | null;
11432
+ trend: number;
11433
+ completedAssignments: number;
11434
+ totalAssignments: number;
11435
+ missingCount: number;
11436
+ lowScoreCount: number;
11437
+ };
11438
+ recommendations: {
11439
+ assignmentId: string;
11440
+ submissionId: string;
11441
+ title: string;
11442
+ type: import(".prisma/client").$Enums.AssignmentType;
11443
+ sectionName: string | null;
11444
+ dueDate: Date;
11445
+ gradeReceived: number | null;
11446
+ maxGrade: number | null;
11447
+ percentage: number | null;
11448
+ submitted: boolean;
11449
+ returned: boolean;
11450
+ reasons: string[];
11451
+ }[];
11452
+ nextSteps: string[];
11453
+ };
11454
+ meta: object;
11455
+ }>;
11456
+ chat: import("@trpc/server").TRPCMutationProcedure<{
11457
+ input: {
11458
+ [x: string]: unknown;
11459
+ classId: string;
11460
+ message: string;
11461
+ studentId: string;
11462
+ history?: {
11463
+ role: "user" | "assistant";
11464
+ content: string;
11465
+ }[] | undefined;
11466
+ };
11467
+ output: {
11468
+ message: string;
11469
+ isFallback: boolean;
11470
+ };
11471
+ meta: object;
11472
+ }>;
11473
+ }>>;
11246
11474
  }>>;
11247
11475
  //# sourceMappingURL=_app.d.ts.map