@studious-lms/server 1.26.0 → 1.28.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.
- package/.env.example +3 -1
- package/.github/workflows/npm-publish.yml +1 -0
- package/AGENTS.md +84 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -4
- package/dist/index.js.map +1 -1
- package/dist/instrument.js +9 -4
- package/dist/instrument.js.map +1 -1
- package/dist/lib/fileUpload.d.ts +15 -0
- package/dist/lib/fileUpload.d.ts.map +1 -1
- package/dist/lib/fileUpload.js +43 -2
- package/dist/lib/fileUpload.js.map +1 -1
- package/dist/models/cloudStorage.d.ts +11 -0
- package/dist/models/cloudStorage.d.ts.map +1 -1
- package/dist/models/cloudStorage.js +18 -2
- package/dist/models/cloudStorage.js.map +1 -1
- package/dist/models/conversation.d.ts +1 -0
- package/dist/models/conversation.d.ts.map +1 -1
- package/dist/models/labChat.d.ts +40 -0
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/labChat.js +32 -2
- package/dist/models/labChat.js.map +1 -1
- package/dist/models/message.d.ts +3 -0
- package/dist/models/message.d.ts.map +1 -1
- package/dist/pipelines/aiLabChat.d.ts +2 -0
- package/dist/pipelines/aiLabChat.d.ts.map +1 -1
- package/dist/pipelines/aiLabChat.js +60 -16
- package/dist/pipelines/aiLabChat.js.map +1 -1
- package/dist/pipelines/aiLabChatContract.d.ts +170 -2
- package/dist/pipelines/aiLabChatContract.d.ts.map +1 -1
- package/dist/pipelines/aiLabChatContract.js +30 -2
- package/dist/pipelines/aiLabChatContract.js.map +1 -1
- package/dist/pipelines/aiNewtonChat.d.ts.map +1 -1
- package/dist/pipelines/aiNewtonChat.js +30 -5
- package/dist/pipelines/aiNewtonChat.js.map +1 -1
- package/dist/pipelines/generateVisualization.d.ts +33 -0
- package/dist/pipelines/generateVisualization.d.ts.map +1 -0
- package/dist/pipelines/generateVisualization.js +79 -0
- package/dist/pipelines/generateVisualization.js.map +1 -0
- package/dist/pipelines/labChatPrompt.d.ts +1 -1
- package/dist/pipelines/labChatPrompt.d.ts.map +1 -1
- package/dist/pipelines/labChatPrompt.js +13 -14
- package/dist/pipelines/labChatPrompt.js.map +1 -1
- package/dist/routers/_app.d.ts +1118 -70
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +4 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/admin.d.ts +297 -1
- package/dist/routers/admin.d.ts.map +1 -1
- package/dist/routers/admin.js +43 -2
- package/dist/routers/admin.js.map +1 -1
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +16 -3
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/conversation.d.ts +1 -0
- package/dist/routers/conversation.d.ts.map +1 -1
- package/dist/routers/labChat.d.ts +10 -0
- package/dist/routers/labChat.d.ts.map +1 -1
- package/dist/routers/labChat.js +6 -3
- package/dist/routers/labChat.js.map +1 -1
- package/dist/routers/message.d.ts +37 -4
- package/dist/routers/message.d.ts.map +1 -1
- package/dist/routers/message.js +24 -7
- package/dist/routers/message.js.map +1 -1
- package/dist/routers/module.d.ts +1 -1
- package/dist/routers/parent.d.ts +18 -0
- package/dist/routers/parent.d.ts.map +1 -1
- package/dist/routers/parent.js +10 -3
- package/dist/routers/parent.js.map +1 -1
- package/dist/routers/studentProgress.d.ts +44 -0
- package/dist/routers/studentProgress.d.ts.map +1 -1
- package/dist/routers/studentProgress.js +12 -3
- package/dist/routers/studentProgress.js.map +1 -1
- package/dist/routers/visualization.d.ts +124 -0
- package/dist/routers/visualization.d.ts.map +1 -0
- package/dist/routers/visualization.js +41 -0
- package/dist/routers/visualization.js.map +1 -0
- package/dist/routes/aiStream.js +32 -2
- package/dist/routes/aiStream.js.map +1 -1
- package/dist/seedDatabase.d.ts.map +1 -1
- package/dist/seedDatabase.js +107 -3
- package/dist/seedDatabase.js.map +1 -1
- package/dist/services/adminClass.d.ts +153 -0
- package/dist/services/adminClass.d.ts.map +1 -0
- package/dist/services/adminClass.js +196 -0
- package/dist/services/adminClass.js.map +1 -0
- package/dist/services/adminInstitution.d.ts +2 -0
- package/dist/services/adminInstitution.d.ts.map +1 -1
- package/dist/services/adminInstitution.js +11 -4
- package/dist/services/adminInstitution.js.map +1 -1
- package/dist/services/adminMetrics.d.ts +8 -0
- package/dist/services/adminMetrics.d.ts.map +1 -1
- package/dist/services/adminMetrics.js +30 -3
- package/dist/services/adminMetrics.js.map +1 -1
- package/dist/services/adminSpam.d.ts +76 -0
- package/dist/services/adminSpam.d.ts.map +1 -0
- package/dist/services/adminSpam.js +163 -0
- package/dist/services/adminSpam.js.map +1 -0
- package/dist/services/adminSql.d.ts +36 -0
- package/dist/services/adminSql.d.ts.map +1 -0
- package/dist/services/adminSql.js +172 -0
- package/dist/services/adminSql.js.map +1 -0
- package/dist/services/adminTelemetry.d.ts +56 -0
- package/dist/services/adminTelemetry.d.ts.map +1 -0
- package/dist/services/adminTelemetry.js +147 -0
- package/dist/services/adminTelemetry.js.map +1 -0
- package/dist/services/adminUser.d.ts +45 -1
- package/dist/services/adminUser.d.ts.map +1 -1
- package/dist/services/adminUser.js +53 -13
- package/dist/services/adminUser.js.map +1 -1
- package/dist/services/aiChatStream.d.ts +15 -0
- package/dist/services/aiChatStream.d.ts.map +1 -1
- package/dist/services/aiChatStream.js +144 -74
- package/dist/services/aiChatStream.js.map +1 -1
- package/dist/services/aiGeneration.d.ts +4 -0
- package/dist/services/aiGeneration.d.ts.map +1 -0
- package/dist/services/aiGeneration.js +88 -0
- package/dist/services/aiGeneration.js.map +1 -0
- package/dist/services/aiProposalTools.d.ts +4 -1
- package/dist/services/aiProposalTools.d.ts.map +1 -1
- package/dist/services/aiProposalTools.js +128 -3
- package/dist/services/aiProposalTools.js.map +1 -1
- package/dist/services/aiProposals.d.ts +70 -0
- package/dist/services/aiProposals.d.ts.map +1 -0
- package/dist/services/aiProposals.js +363 -0
- package/dist/services/aiProposals.js.map +1 -0
- package/dist/services/auth.d.ts.map +1 -1
- package/dist/services/auth.js +10 -4
- package/dist/services/auth.js.map +1 -1
- package/dist/services/conversation.d.ts +1 -0
- package/dist/services/conversation.d.ts.map +1 -1
- package/dist/services/fees.d.ts.map +1 -1
- package/dist/services/fees.js +7 -3
- package/dist/services/fees.js.map +1 -1
- package/dist/services/labChat.d.ts +10 -0
- package/dist/services/labChat.d.ts.map +1 -1
- package/dist/services/labChat.js +52 -3
- package/dist/services/labChat.js.map +1 -1
- package/dist/services/message.d.ts +24 -8
- package/dist/services/message.d.ts.map +1 -1
- package/dist/services/message.js +170 -117
- package/dist/services/message.js.map +1 -1
- package/dist/services/module.d.ts.map +1 -1
- package/dist/services/module.js +23 -4
- package/dist/services/module.js.map +1 -1
- package/dist/services/parentPortal.d.ts +14 -0
- package/dist/services/parentPortal.d.ts.map +1 -1
- package/dist/services/parentPortal.js +72 -2
- package/dist/services/parentPortal.js.map +1 -1
- package/dist/services/studentProgress.d.ts +50 -0
- package/dist/services/studentProgress.d.ts.map +1 -1
- package/dist/services/studentProgress.js +107 -2
- package/dist/services/studentProgress.js.map +1 -1
- package/dist/services/visualization.d.ts +72 -0
- package/dist/services/visualization.d.ts.map +1 -0
- package/dist/services/visualization.js +122 -0
- package/dist/services/visualization.js.map +1 -0
- package/dist/utils/inference.d.ts +10 -0
- package/dist/utils/inference.d.ts.map +1 -1
- package/dist/utils/inference.js +77 -2
- package/dist/utils/inference.js.map +1 -1
- package/dist/utils/sentryTrpc.d.ts +3 -0
- package/dist/utils/sentryTrpc.d.ts.map +1 -0
- package/dist/utils/sentryTrpc.js +26 -0
- package/dist/utils/sentryTrpc.js.map +1 -0
- package/dist/workers/processors/createRunJobWorker.js +17 -16
- package/dist/workers/processors/createRunJobWorker.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260811130000_add_ai_message_feedback/migration.sql +7 -0
- package/prisma/migrations/20261025120000_add_visualizations/migration.sql +27 -0
- package/prisma/schema.prisma +32 -0
- package/src/index.ts +30 -4
- package/src/instrument.ts +8 -2
- package/src/lib/fileUpload.ts +49 -0
- package/src/models/cloudStorage.ts +19 -0
- package/src/models/labChat.ts +34 -0
- package/src/pipelines/aiLabChat.ts +79 -18
- package/src/pipelines/aiLabChatContract.ts +35 -0
- package/src/pipelines/aiNewtonChat.ts +34 -2
- package/src/pipelines/generateVisualization.ts +107 -0
- package/src/pipelines/labChatPrompt.ts +11 -12
- package/src/routers/_app.ts +2 -0
- package/src/routers/admin.ts +72 -0
- package/src/routers/class.ts +14 -1
- package/src/routers/labChat.ts +5 -0
- package/src/routers/message.ts +34 -5
- package/src/routers/parent.ts +11 -0
- package/src/routers/studentProgress.ts +15 -0
- package/src/routers/visualization.ts +60 -0
- package/src/routes/aiStream.ts +32 -0
- package/src/seedDatabase.ts +107 -2
- package/src/services/adminClass.ts +222 -0
- package/src/services/adminInstitution.ts +9 -2
- package/src/services/adminMetrics.ts +35 -0
- package/src/services/adminSpam.ts +224 -0
- package/src/services/adminSql.ts +214 -0
- package/src/services/adminTelemetry.ts +194 -0
- package/src/services/adminUser.ts +66 -11
- package/src/services/aiChatStream.ts +83 -7
- package/src/services/aiGeneration.ts +92 -0
- package/src/services/aiProposalTools.ts +166 -1
- package/src/services/aiProposals.ts +428 -0
- package/src/services/auth.ts +8 -2
- package/src/services/fees.ts +5 -1
- package/src/services/labChat.ts +65 -0
- package/src/services/message.ts +205 -142
- package/src/services/module.ts +29 -2
- package/src/services/parentPortal.ts +85 -0
- package/src/services/studentProgress.ts +135 -0
- package/src/services/visualization.ts +147 -0
- package/src/utils/inference.ts +85 -0
- package/src/utils/sentryTrpc.ts +25 -0
- package/src/workers/processors/createRunJobWorker.ts +17 -17
- package/tests/unit/lib/fileUploadSession.test.ts +67 -0
- package/tests/unit/services/adminClass.test.ts +102 -0
- package/tests/unit/services/adminSpam.test.ts +108 -0
- package/tests/unit/services/adminSql.test.ts +56 -0
- package/tests/unit/services/adminTelemetry.test.ts +47 -0
- package/tests/unit/services/adminUser.test.ts +77 -0
- package/tests/unit/services/visualization.test.ts +130 -0
- package/tests/unit/utils/adminPanelAccess.test.ts +26 -0
- package/tests/unit/utils/sentryTrpc.test.ts +15 -0
package/dist/seedDatabase.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bec67ea8-7aa8-5a8c-a87e-846929a67ab8")}catch(e){}}();
|
|
3
3
|
import { prisma } from "./lib/prisma.js";
|
|
4
4
|
import { hash } from "bcryptjs";
|
|
5
5
|
import { logger } from "./utils/logger.js";
|
|
@@ -1450,13 +1450,117 @@ export const seedDatabase = async () => {
|
|
|
1450
1450
|
createdAt: hoursFromNow(-3, now),
|
|
1451
1451
|
},
|
|
1452
1452
|
});
|
|
1453
|
+
// AI reply with creation proposals in all three states (pending card,
|
|
1454
|
+
// approved row, dismissed row) so the approval flow is demo-able.
|
|
1455
|
+
const labIntroText = "Here's what I put together for the organelle functions unit. I drafted a 10-question quiz worksheet, and I'm proposing a graded quiz assignment plus a new section to keep the unit organized:";
|
|
1456
|
+
const labProposals = [
|
|
1457
|
+
{
|
|
1458
|
+
id: "seed-proposal-worksheet",
|
|
1459
|
+
kind: "worksheet",
|
|
1460
|
+
title: "Organelle Functions Quiz (10 MCQs)",
|
|
1461
|
+
status: "approved",
|
|
1462
|
+
createdId: geneticsWorksheet.id,
|
|
1463
|
+
payload: {
|
|
1464
|
+
title: "Organelle Functions Quiz (10 MCQs)",
|
|
1465
|
+
questions: Array.from({ length: 10 }, (_, i) => ({
|
|
1466
|
+
type: "MULTIPLE_CHOICE",
|
|
1467
|
+
question: `Organelle question ${i + 1}`,
|
|
1468
|
+
answer: "A",
|
|
1469
|
+
options: [],
|
|
1470
|
+
markScheme: [],
|
|
1471
|
+
points: 1,
|
|
1472
|
+
order: i,
|
|
1473
|
+
})),
|
|
1474
|
+
},
|
|
1475
|
+
},
|
|
1476
|
+
{
|
|
1477
|
+
id: "seed-proposal-assignment",
|
|
1478
|
+
kind: "assignment",
|
|
1479
|
+
title: "Organelle Functions Quiz",
|
|
1480
|
+
status: "pending",
|
|
1481
|
+
payload: {
|
|
1482
|
+
title: "Organelle Functions Quiz",
|
|
1483
|
+
instructions: "Complete the 10-question multiple choice quiz on organelle functions. One attempt, 20 minutes.",
|
|
1484
|
+
dueDate: hoursFromNow(7 * 24, now).toISOString(),
|
|
1485
|
+
acceptFiles: false,
|
|
1486
|
+
acceptExtendedResponse: false,
|
|
1487
|
+
acceptWorksheet: true,
|
|
1488
|
+
maxGrade: 10,
|
|
1489
|
+
worksheetIds: [],
|
|
1490
|
+
studentIds: [],
|
|
1491
|
+
type: "QUIZ",
|
|
1492
|
+
attachments: [],
|
|
1493
|
+
},
|
|
1494
|
+
},
|
|
1495
|
+
{
|
|
1496
|
+
id: "seed-proposal-section",
|
|
1497
|
+
kind: "section",
|
|
1498
|
+
title: "Unit 3: Cell Structure",
|
|
1499
|
+
status: "dismissed",
|
|
1500
|
+
payload: { name: "Unit 3: Cell Structure" },
|
|
1501
|
+
},
|
|
1502
|
+
{
|
|
1503
|
+
id: "seed-proposal-assignment-update",
|
|
1504
|
+
kind: "assignmentUpdate",
|
|
1505
|
+
title: geneticsAssignment.title,
|
|
1506
|
+
status: "pending",
|
|
1507
|
+
payload: {
|
|
1508
|
+
id: geneticsAssignment.id,
|
|
1509
|
+
targetTitle: geneticsAssignment.title,
|
|
1510
|
+
dueDate: hoursFromNow(10 * 24, now).toISOString(),
|
|
1511
|
+
maxGrade: 15,
|
|
1512
|
+
},
|
|
1513
|
+
},
|
|
1514
|
+
];
|
|
1453
1515
|
await prisma.message.create({
|
|
1454
1516
|
data: {
|
|
1455
|
-
content:
|
|
1517
|
+
content: labIntroText,
|
|
1456
1518
|
senderId: aiUserId,
|
|
1457
1519
|
conversationId: labConversation.id,
|
|
1458
1520
|
createdAt: hoursFromNow(-2.95, now),
|
|
1459
1521
|
status: JobStatus.COMPLETED,
|
|
1522
|
+
meta: {
|
|
1523
|
+
pendingCreations: labProposals,
|
|
1524
|
+
streamParts: [
|
|
1525
|
+
{ type: "text", text: labIntroText },
|
|
1526
|
+
{
|
|
1527
|
+
type: "tool",
|
|
1528
|
+
toolCallId: "seed-tool-worksheet",
|
|
1529
|
+
toolName: "propose_worksheet",
|
|
1530
|
+
title: "Organelle Functions Quiz (10 MCQs)",
|
|
1531
|
+
proposalId: "seed-proposal-worksheet",
|
|
1532
|
+
status: "completed",
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
type: "tool",
|
|
1536
|
+
toolCallId: "seed-tool-assignment",
|
|
1537
|
+
toolName: "propose_assignment",
|
|
1538
|
+
title: "Organelle Functions Quiz",
|
|
1539
|
+
proposalId: "seed-proposal-assignment",
|
|
1540
|
+
status: "completed",
|
|
1541
|
+
},
|
|
1542
|
+
{
|
|
1543
|
+
type: "tool",
|
|
1544
|
+
toolCallId: "seed-tool-section",
|
|
1545
|
+
toolName: "propose_section",
|
|
1546
|
+
title: "Unit 3: Cell Structure",
|
|
1547
|
+
proposalId: "seed-proposal-section",
|
|
1548
|
+
status: "completed",
|
|
1549
|
+
},
|
|
1550
|
+
{
|
|
1551
|
+
type: "tool",
|
|
1552
|
+
toolCallId: "seed-tool-assignment-update",
|
|
1553
|
+
toolName: "propose_update_assignment",
|
|
1554
|
+
title: geneticsAssignment.title,
|
|
1555
|
+
proposalId: "seed-proposal-assignment-update",
|
|
1556
|
+
status: "completed",
|
|
1557
|
+
},
|
|
1558
|
+
{
|
|
1559
|
+
type: "text",
|
|
1560
|
+
text: "Approve whichever you'd like me to create — nothing is added to the class until you do.",
|
|
1561
|
+
},
|
|
1562
|
+
],
|
|
1563
|
+
},
|
|
1460
1564
|
},
|
|
1461
1565
|
});
|
|
1462
1566
|
// A teacher-to-teacher group chat.
|
|
@@ -1712,4 +1816,4 @@ if (isSeedScript) {
|
|
|
1712
1816
|
})();
|
|
1713
1817
|
}
|
|
1714
1818
|
//# sourceMappingURL=seedDatabase.js.map
|
|
1715
|
-
//# debugId=
|
|
1819
|
+
//# debugId=bec67ea8-7aa8-5a8c-a87e-846929a67ab8
|