personalac 1.3.0 → 1.4.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/bin/personalac.js +121 -1
- package/dist/agent/index.d.ts +12 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +98 -0
- package/dist/agent/index.js.map +1 -1
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +38 -0
- package/dist/database/index.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/routes/agent.routes.d.ts.map +1 -1
- package/dist/routes/agent.routes.js +23 -0
- package/dist/routes/agent.routes.js.map +1 -1
- package/dist/routes/auth.routes.d.ts.map +1 -1
- package/dist/routes/auth.routes.js +42 -8
- package/dist/routes/auth.routes.js.map +1 -1
- package/dist/routes/todo.routes.d.ts +3 -0
- package/dist/routes/todo.routes.d.ts.map +1 -0
- package/dist/routes/todo.routes.js +47 -0
- package/dist/routes/todo.routes.js.map +1 -0
- package/dist/services/auth.service.d.ts +13 -0
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +98 -31
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/thought.service.d.ts +21 -0
- package/dist/services/thought.service.d.ts.map +1 -0
- package/dist/services/thought.service.js +27 -0
- package/dist/services/thought.service.js.map +1 -0
- package/dist/services/todo.service.d.ts +42 -0
- package/dist/services/todo.service.d.ts.map +1 -0
- package/dist/services/todo.service.js +114 -0
- package/dist/services/todo.service.js.map +1 -0
- package/dist/tools/chat-tools.js +104 -0
- package/dist/tools/chat-tools.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/{_baseUniq-DiHtXYsr.js → _baseUniq-CxJoAIZr.js} +1 -1
- package/public/assets/{arc-Bv1zbXf7.js → arc-D03kFPEj.js} +1 -1
- package/public/assets/{architectureDiagram-Q4EWVU46-EbiUvXBr.js → architectureDiagram-Q4EWVU46-D8O9LVoU.js} +1 -1
- package/public/assets/{blockDiagram-DXYQGD6D-B-4wwQNT.js → blockDiagram-DXYQGD6D-M7jlK4Ii.js} +1 -1
- package/public/assets/{c4Diagram-AHTNJAMY-brLyKMPJ.js → c4Diagram-AHTNJAMY-g4ZpKJxM.js} +1 -1
- package/public/assets/channel-DAJYqcDB.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-DMh-4Nye.js → chunk-4BX2VUAB-DbYNB5w3.js} +1 -1
- package/public/assets/{chunk-4TB4RGXK-CSr1z2CQ.js → chunk-4TB4RGXK-oDruTxtV.js} +1 -1
- package/public/assets/{chunk-55IACEB6-xN0xmcvD.js → chunk-55IACEB6-86o123sF.js} +1 -1
- package/public/assets/{chunk-EDXVE4YY-CkCM3j5E.js → chunk-EDXVE4YY-CwGCC2ua.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-B-mDgsjM.js → chunk-FMBD7UC4-CFvrNuR2.js} +1 -1
- package/public/assets/{chunk-OYMX7WX6-DK8dg9K4.js → chunk-OYMX7WX6-DA1Codj2.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-BZGbFOdK.js → chunk-QZHKN3VN-C1i2zxsK.js} +1 -1
- package/public/assets/{chunk-YZCP3GAM-BTmFmMer.js → chunk-YZCP3GAM-B8WdIQrJ.js} +1 -1
- package/public/assets/classDiagram-6PBFFD2Q-CZOcMbPI.js +1 -0
- package/public/assets/classDiagram-v2-HSJHXN6E-CZOcMbPI.js +1 -0
- package/public/assets/clone-DEBaCCnF.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-BBqCwo63.js → cose-bilkent-S5V4N54A-0QSxqQ61.js} +1 -1
- package/public/assets/{dagre-KV5264BT-DLeQYvAA.js → dagre-KV5264BT-rbP39_-d.js} +1 -1
- package/public/assets/{diagram-5BDNPKRD-D85z2LaM.js → diagram-5BDNPKRD-BggmJ2I6.js} +1 -1
- package/public/assets/{diagram-G4DWMVQ6-4AvBmvcP.js → diagram-G4DWMVQ6-Cjwh0FM-.js} +1 -1
- package/public/assets/{diagram-MMDJMWI5-DRNEGNZA.js → diagram-MMDJMWI5-q1GbH15W.js} +1 -1
- package/public/assets/{diagram-TYMM5635-C_oGwrmX.js → diagram-TYMM5635-6A9FJpM-.js} +1 -1
- package/public/assets/{erDiagram-SMLLAGMA-DDSp8ANa.js → erDiagram-SMLLAGMA-DWSuOvWg.js} +1 -1
- package/public/assets/{flowDiagram-DWJPFMVM-B1Wy36da.js → flowDiagram-DWJPFMVM-Hff-KBUO.js} +1 -1
- package/public/assets/{ganttDiagram-T4ZO3ILL-CQ7VWheo.js → ganttDiagram-T4ZO3ILL-C9k5gCfU.js} +1 -1
- package/public/assets/{gitGraphDiagram-UUTBAWPF-BhvM7s41.js → gitGraphDiagram-UUTBAWPF-BhqYXwS7.js} +1 -1
- package/public/assets/{graph-fatjTp1h.js → graph-C7a2hUqm.js} +1 -1
- package/public/assets/{index-1PrEnCZL.js → index-CsxZVYhp.js} +142 -136
- package/public/assets/{infoDiagram-42DDH7IO-4eawOC2G.js → infoDiagram-42DDH7IO-DDI5BYIr.js} +1 -1
- package/public/assets/{ishikawaDiagram-UXIWVN3A-CJWfG1fv.js → ishikawaDiagram-UXIWVN3A-_Mnmr5OA.js} +1 -1
- package/public/assets/{journeyDiagram-VCZTEJTY-C4Zx3dpF.js → journeyDiagram-VCZTEJTY-98C13tbb.js} +1 -1
- package/public/assets/{kanban-definition-6JOO6SKY-CV1vDcC8.js → kanban-definition-6JOO6SKY-B3awXMLK.js} +1 -1
- package/public/assets/{layout-CX0IDv3q.js → layout-DWhB-T0_.js} +1 -1
- package/public/assets/{linear-C8hMcu9f.js → linear-Xw1LH5UE.js} +1 -1
- package/public/assets/{min-BaxMGW9J.js → min-BG4Jxhtf.js} +1 -1
- package/public/assets/{mindmap-definition-QFDTVHPH-KzGyX4Em.js → mindmap-definition-QFDTVHPH-DLxLgDPT.js} +1 -1
- package/public/assets/{pieDiagram-DEJITSTG-Dp2x5kvP.js → pieDiagram-DEJITSTG-SHIFmwnS.js} +1 -1
- package/public/assets/{quadrantDiagram-34T5L4WZ-B4yqA6XF.js → quadrantDiagram-34T5L4WZ-gctdULxZ.js} +1 -1
- package/public/assets/{requirementDiagram-MS252O5E-DEjN_2tG.js → requirementDiagram-MS252O5E-DFCApjP0.js} +1 -1
- package/public/assets/{sankeyDiagram-XADWPNL6-BKm_F5FA.js → sankeyDiagram-XADWPNL6-BL8TGUak.js} +1 -1
- package/public/assets/{sequenceDiagram-FGHM5R23-07BCMKjW.js → sequenceDiagram-FGHM5R23-CZILwicH.js} +1 -1
- package/public/assets/{stateDiagram-FHFEXIEX-DVz6GtR8.js → stateDiagram-FHFEXIEX-BOStf_Ty.js} +1 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-DZSAFrqF.js +1 -0
- package/public/assets/{timeline-definition-GMOUNBTQ-C0u67FqY.js → timeline-definition-GMOUNBTQ-Cb0Br_fq.js} +1 -1
- package/public/assets/{vennDiagram-DHZGUBPP-BiAlMVLe.js → vennDiagram-DHZGUBPP-DGRixgke.js} +1 -1
- package/public/assets/{wardley-RL74JXVD-BnWyuHzf.js → wardley-RL74JXVD-KUMOIwFG.js} +1 -1
- package/public/assets/{wardleyDiagram-NUSXRM2D-DEL2Lx6S.js → wardleyDiagram-NUSXRM2D-ClcBhA3r.js} +1 -1
- package/public/assets/{xychartDiagram-5P7HB3ND-ILdmj7ok.js → xychartDiagram-5P7HB3ND-3Gclsnnc.js} +1 -1
- package/public/index.html +1 -1
- package/public/assets/channel-Me4d6Y1x.js +0 -1
- package/public/assets/classDiagram-6PBFFD2Q-BXgAb5m4.js +0 -1
- package/public/assets/classDiagram-v2-HSJHXN6E-BXgAb5m4.js +0 -1
- package/public/assets/clone-rnECnpTI.js +0 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-DYiYr0PB.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.routes.js","sourceRoot":"","sources":["../../src/routes/agent.routes.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,oCAAyC;AACzC,mEAAwE;AACxE,0CAAmC;AAEnC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;AACvB,MAAM,CAAC,GAAG,CAAC,6BAAW,CAAC,CAAA;AAEvB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAgB,EAAE,GAAG,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC3C,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;QAClB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;KAKvB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACzB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAgB,EAAE,GAAG,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,KAA+B,CAAA;QACnF,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;QAClB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QAE5E,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;QACtD,MAAM,MAAM,GAAc,UAAU;YAClC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YACpD,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAC1C,MAAM,WAAW,GAAc,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEnF,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;;;iDAGoB,WAAW;;KAEvD,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAEjB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;;iDAEgB,WAAW;KACvD,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAsB,CAAA;QAE3C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;IACrG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAgB,EAAE,GAAG,EAAE,EAAE;IAClD,MAAM,MAAM,GAAG,IAAA,sBAAc,GAAE,CAAA;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAO,CAAC,CAAA;QAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAgB,EAAE,GAAG,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,IAAA,sBAAc,GAAE,CAAA;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAO,CAAC,CAAA;QAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAgB,EAAE,GAAG,EAAE,EAAE;IAC5C,MAAM,MAAM,GAAG,IAAA,sBAAc,GAAE,CAAA;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;IAC/B,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAClC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAgB,EAAE,GAAG,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAG,IAAA,sBAAc,GAAE,CAAA;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IAC1E,MAAM,CAAC,iBAAiB,EAAE,CAAA;IAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAC,CAAA;AAEF,kBAAe,MAAM,CAAA"}
|
|
1
|
+
{"version":3,"file":"agent.routes.js","sourceRoot":"","sources":["../../src/routes/agent.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.routes.d.ts","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.routes.d.ts","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,4CAAW,CAAA;AA2FvB,eAAe,MAAM,CAAA"}
|
|
@@ -6,7 +6,9 @@ const auth_service_1 = require("../services/auth.service");
|
|
|
6
6
|
const auth_middleware_1 = require("../middleware/auth.middleware");
|
|
7
7
|
const database_1 = require("../database");
|
|
8
8
|
const router = (0, express_1.Router)();
|
|
9
|
-
//
|
|
9
|
+
// ── Token 登录(首次 / 恢复)────────────────────────────────────────
|
|
10
|
+
// POST /api/auth/login { syncToken }
|
|
11
|
+
// 返回 needsSetup=true 时,前端跳转设置用户名+密码页
|
|
10
12
|
router.post('/login', (req, res) => {
|
|
11
13
|
const { syncToken } = req.body;
|
|
12
14
|
if (!syncToken?.trim()) {
|
|
@@ -15,12 +17,47 @@ router.post('/login', (req, res) => {
|
|
|
15
17
|
}
|
|
16
18
|
res.json((0, auth_service_1.loginByToken)(syncToken.trim()));
|
|
17
19
|
});
|
|
20
|
+
// ── 密码登录(常规)──────────────────────────────────────────────────
|
|
21
|
+
// POST /api/auth/login/password { username, password }
|
|
22
|
+
router.post('/login/password', (req, res) => {
|
|
23
|
+
const { username, password } = req.body;
|
|
24
|
+
if (!username?.trim() || !password) {
|
|
25
|
+
res.status(400).json({ success: false, error: '请输入用户名和密码' });
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
res.json((0, auth_service_1.loginWithPassword)(username, password));
|
|
29
|
+
});
|
|
30
|
+
// ── 首次登录后设置用户名+密码 ────────────────────────────────────────
|
|
31
|
+
// POST /api/auth/setup-account { username, password }
|
|
32
|
+
// 必须携带有效 x-sync-token(即 token 登录后拿到的那个)
|
|
33
|
+
router.post('/setup-account', auth_middleware_1.requireAuth, (req, res) => {
|
|
34
|
+
const { username, password } = req.body;
|
|
35
|
+
if (!username?.trim() || !password) {
|
|
36
|
+
res.status(400).json({ success: false, error: '用户名和密码均不能为空' });
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const result = (0, auth_service_1.setupAccountPassword)(req.userId, username, password);
|
|
40
|
+
res.json(result);
|
|
41
|
+
});
|
|
42
|
+
// ── 修改密码(已登录后)──────────────────────────────────────────────
|
|
43
|
+
// POST /api/auth/change-password { oldPassword, newPassword }
|
|
44
|
+
router.post('/change-password', auth_middleware_1.requireAuth, (req, res) => {
|
|
45
|
+
const { oldPassword, newPassword } = req.body;
|
|
46
|
+
if (!newPassword) {
|
|
47
|
+
res.status(400).json({ success: false, error: '请填写新密码' });
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const result = (0, auth_service_1.changePassword)(req.userId, oldPassword ?? '', newPassword);
|
|
51
|
+
res.json(result);
|
|
52
|
+
});
|
|
53
|
+
// ── 当前用户信息 ──────────────────────────────────────────────────────
|
|
18
54
|
// GET /api/auth/me
|
|
19
55
|
router.get('/me', auth_middleware_1.requireAuth, (req, res) => {
|
|
20
56
|
const user = (0, auth_service_1.getUserBySyncToken)(req.headers['x-sync-token'] || '');
|
|
21
57
|
res.json({ success: true, data: user });
|
|
22
58
|
});
|
|
23
|
-
//
|
|
59
|
+
// ── 监护人初始配置(设置称呼)────────────────────────────────────────
|
|
60
|
+
// POST /api/auth/setup
|
|
24
61
|
router.post('/setup', auth_middleware_1.requireAuth, (req, res) => {
|
|
25
62
|
const { guardianName } = req.body;
|
|
26
63
|
if (!guardianName?.trim()) {
|
|
@@ -30,12 +67,10 @@ router.post('/setup', auth_middleware_1.requireAuth, (req, res) => {
|
|
|
30
67
|
(0, auth_service_1.setupGuardian)(req.userId, guardianName);
|
|
31
68
|
res.json({ success: true });
|
|
32
69
|
});
|
|
33
|
-
//
|
|
70
|
+
// ── 学生管理 ────────────────────────────────────────────────────────
|
|
34
71
|
router.get('/students', auth_middleware_1.requireAuth, (req, res) => {
|
|
35
|
-
|
|
36
|
-
res.json({ success: true, data: students });
|
|
72
|
+
res.json({ success: true, data: (0, auth_service_1.listStudents)(req.userId) });
|
|
37
73
|
});
|
|
38
|
-
// POST /api/auth/students — 创建学生账户
|
|
39
74
|
router.post('/students', auth_middleware_1.requireAuth, (req, res) => {
|
|
40
75
|
const { name, grade, subjects } = req.body;
|
|
41
76
|
if (!name?.trim()) {
|
|
@@ -53,12 +88,11 @@ router.post('/students', auth_middleware_1.requireAuth, (req, res) => {
|
|
|
53
88
|
}
|
|
54
89
|
res.json({ success: true, data: student });
|
|
55
90
|
});
|
|
56
|
-
// DELETE /api/auth/students/:id
|
|
57
91
|
router.delete('/students/:id', auth_middleware_1.requireAuth, (req, res) => {
|
|
58
92
|
const ok = (0, auth_service_1.deleteStudent)(req.params.id, req.userId);
|
|
59
93
|
res.json({ success: ok, error: ok ? undefined : '操作失败或无权限' });
|
|
60
94
|
});
|
|
61
|
-
//
|
|
95
|
+
// ── Token 管理 ──────────────────────────────────────────────────────
|
|
62
96
|
router.post('/reset-token', auth_middleware_1.requireAuth, (req, res) => {
|
|
63
97
|
res.json((0, auth_service_1.resetSyncToken)(req.userId));
|
|
64
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.routes.js","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,+BAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"auth.routes.js","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.routes.d.ts","sourceRoot":"","sources":["../../src/routes/todo.routes.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,MAAM,4CAAW,CAAA;AA0CvB,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const express_1 = require("express");
|
|
4
|
+
const auth_middleware_1 = require("../middleware/auth.middleware");
|
|
5
|
+
const todo_service_1 = require("../services/todo.service");
|
|
6
|
+
const router = (0, express_1.Router)();
|
|
7
|
+
// GET /api/todo/:studentId
|
|
8
|
+
router.get('/:studentId', auth_middleware_1.requireAuth, (req, res) => {
|
|
9
|
+
const { studentId } = req.params;
|
|
10
|
+
const { status, priority, limit, offset } = req.query;
|
|
11
|
+
const todos = (0, todo_service_1.listTodos)(studentId, {
|
|
12
|
+
status: status,
|
|
13
|
+
priority: priority,
|
|
14
|
+
limit: limit ? parseInt(limit) : undefined,
|
|
15
|
+
offset: offset ? parseInt(offset) : undefined
|
|
16
|
+
});
|
|
17
|
+
const overdue = (0, todo_service_1.getOverdueTodos)(studentId);
|
|
18
|
+
res.json({ todos, overdueCount: overdue.length });
|
|
19
|
+
});
|
|
20
|
+
// POST /api/todo
|
|
21
|
+
router.post('/', auth_middleware_1.requireAuth, (req, res) => {
|
|
22
|
+
const { student_id, title, content, priority, due_date, recurrence, related_kp_id } = req.body;
|
|
23
|
+
if (!student_id || !title) {
|
|
24
|
+
res.status(400).json({ error: 'student_id and title are required' });
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const todo = (0, todo_service_1.createTodo)({ student_id, title, content, priority, due_date, recurrence, related_kp_id, agent_created: false });
|
|
28
|
+
res.json(todo);
|
|
29
|
+
});
|
|
30
|
+
// PATCH /api/todo/:id
|
|
31
|
+
router.patch('/:id', auth_middleware_1.requireAuth, (req, res) => {
|
|
32
|
+
const { id } = req.params;
|
|
33
|
+
const patch = req.body;
|
|
34
|
+
const updated = (0, todo_service_1.updateTodo)(id, patch);
|
|
35
|
+
if (!updated) {
|
|
36
|
+
res.status(404).json({ error: 'Todo not found' });
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
res.json(updated);
|
|
40
|
+
});
|
|
41
|
+
// DELETE /api/todo/:id
|
|
42
|
+
router.delete('/:id', auth_middleware_1.requireAuth, (req, res) => {
|
|
43
|
+
(0, todo_service_1.deleteTodo)(req.params.id);
|
|
44
|
+
res.json({ ok: true });
|
|
45
|
+
});
|
|
46
|
+
exports.default = router;
|
|
47
|
+
//# sourceMappingURL=todo.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.routes.js","sourceRoot":"","sources":["../../src/routes/todo.routes.ts"],"names":[],"mappings":";;AAAA,qCAAmD;AACnD,mEAA2D;AAC3D,2DAEiC;AAEjC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAA;AAEvB,2BAA2B;AAC3B,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,6BAAW,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACrE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;IAChC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAA;IACrD,MAAM,KAAK,GAAG,IAAA,wBAAS,EAAC,SAAS,EAAE;QACjC,MAAM,EAAE,MAAa;QACrB,QAAQ,EAAE,QAAe;QACzB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,SAAS;QACpD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAA,8BAAe,EAAC,SAAS,CAAC,CAAA;IAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AACnD,CAAC,CAAC,CAAA;AAEF,iBAAiB;AACjB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,6BAAW,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAC5D,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;IAC9F,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAA;QACpE,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,yBAAU,EAAC,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5H,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,sBAAsB;AACtB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6BAAW,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAChE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAA;IACtB,MAAM,OAAO,GAAG,IAAA,yBAAU,EAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IAC3E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,uBAAuB;AACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,6BAAW,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACjE,IAAA,yBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;AACxB,CAAC,CAAC,CAAA;AAEF,kBAAe,MAAM,CAAA"}
|
|
@@ -1,27 +1,40 @@
|
|
|
1
1
|
export interface UserInfo {
|
|
2
2
|
id: string;
|
|
3
|
+
username: string;
|
|
3
4
|
displayName: string | null;
|
|
4
5
|
role: string;
|
|
5
6
|
studentName: string | null;
|
|
6
7
|
studentGrade: string | null;
|
|
7
8
|
guardianId: string | null;
|
|
9
|
+
hasSetPassword: boolean;
|
|
8
10
|
}
|
|
9
11
|
export interface StudentRecord {
|
|
10
12
|
id: string;
|
|
11
13
|
name: string;
|
|
12
14
|
grade: string | null;
|
|
13
15
|
token: string;
|
|
16
|
+
hasSetPassword: boolean;
|
|
14
17
|
}
|
|
15
18
|
export interface LoginResult {
|
|
16
19
|
success: boolean;
|
|
17
20
|
user?: UserInfo;
|
|
18
21
|
syncToken?: string;
|
|
22
|
+
needsSetup?: boolean;
|
|
19
23
|
error?: string;
|
|
20
24
|
}
|
|
21
25
|
export declare function ensureAdminAccount(): {
|
|
22
26
|
syncToken: string;
|
|
23
27
|
};
|
|
24
28
|
export declare function loginByToken(syncToken: string): LoginResult;
|
|
29
|
+
export declare function loginWithPassword(username: string, password: string): LoginResult;
|
|
30
|
+
export declare function setupAccountPassword(userId: string, username: string, password: string): {
|
|
31
|
+
success: boolean;
|
|
32
|
+
error?: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function changePassword(userId: string, oldPassword: string, newPassword: string): {
|
|
35
|
+
success: boolean;
|
|
36
|
+
error?: string;
|
|
37
|
+
};
|
|
25
38
|
export declare function getUserBySyncToken(syncToken: string): UserInfo | null;
|
|
26
39
|
export declare function setupGuardian(userId: string, guardianName: string): void;
|
|
27
40
|
export declare function createStudent(guardianId: string, name: string, grade?: string): StudentRecord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAmBD,wBAAgB,kBAAkB,IAAI;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAiB1D;AAGD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAsB3D;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CA4BjF;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgB7H;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAW7H;AAID,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQrE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAW7F;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,CAYhE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAM5E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAO1D;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMrE"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ensureAdminAccount = ensureAdminAccount;
|
|
4
7
|
exports.loginByToken = loginByToken;
|
|
8
|
+
exports.loginWithPassword = loginWithPassword;
|
|
9
|
+
exports.setupAccountPassword = setupAccountPassword;
|
|
10
|
+
exports.changePassword = changePassword;
|
|
5
11
|
exports.getUserBySyncToken = getUserBySyncToken;
|
|
6
12
|
exports.setupGuardian = setupGuardian;
|
|
7
13
|
exports.createStudent = createStudent;
|
|
@@ -10,7 +16,20 @@ exports.deleteStudent = deleteStudent;
|
|
|
10
16
|
exports.resetSyncToken = resetSyncToken;
|
|
11
17
|
exports.getPrimaryStudentId = getPrimaryStudentId;
|
|
12
18
|
const uuid_1 = require("uuid");
|
|
19
|
+
const bcryptjs_1 = __importDefault(require("bcryptjs"));
|
|
13
20
|
const database_1 = require("../database");
|
|
21
|
+
function rowToUserInfo(row) {
|
|
22
|
+
return {
|
|
23
|
+
id: row.id,
|
|
24
|
+
username: row.username,
|
|
25
|
+
displayName: row.display_name ?? null,
|
|
26
|
+
role: row.role ?? 'guardian',
|
|
27
|
+
studentName: row.student_name ?? null,
|
|
28
|
+
studentGrade: row.student_grade ?? null,
|
|
29
|
+
guardianId: row.guardian_id ?? null,
|
|
30
|
+
hasSetPassword: (row.has_set_password ?? 0) === 1
|
|
31
|
+
};
|
|
32
|
+
}
|
|
14
33
|
function ensureAdminAccount() {
|
|
15
34
|
const db = (0, database_1.getDB)();
|
|
16
35
|
const existing = db
|
|
@@ -21,77 +40,126 @@ function ensureAdminAccount() {
|
|
|
21
40
|
const syncToken = (0, uuid_1.v4)();
|
|
22
41
|
const now = Date.now();
|
|
23
42
|
db.prepare(`
|
|
24
|
-
INSERT INTO User (id, username, sync_token, role, create_time, update_time, delete_flag)
|
|
25
|
-
VALUES (?, 'admin', ?, 'guardian', ?, ?, 0)
|
|
43
|
+
INSERT INTO User (id, username, sync_token, role, has_set_password, create_time, update_time, delete_flag)
|
|
44
|
+
VALUES (?, 'admin', ?, 'guardian', 0, ?, ?, 0)
|
|
26
45
|
`).run((0, uuid_1.v4)(), syncToken, now, now);
|
|
27
46
|
console.log('[Auth] Created admin account');
|
|
28
47
|
return { syncToken };
|
|
29
48
|
}
|
|
49
|
+
// ── Token 登录(首次 / 恢复用)────────────────────────────────────────
|
|
30
50
|
function loginByToken(syncToken) {
|
|
31
51
|
const db = (0, database_1.getDB)();
|
|
32
52
|
const user = db
|
|
33
|
-
.prepare(
|
|
53
|
+
.prepare(`SELECT id, username, display_name, role, student_name, student_grade, guardian_id,
|
|
54
|
+
has_set_password, sync_token
|
|
55
|
+
FROM User WHERE sync_token = ? AND delete_flag = 0`)
|
|
34
56
|
.get(syncToken);
|
|
35
57
|
if (!user)
|
|
36
|
-
return { success: false, error: '
|
|
58
|
+
return { success: false, error: '访问码错误,请确认后重试' };
|
|
59
|
+
const needsSetup = (user.has_set_password ?? 0) === 0;
|
|
37
60
|
return {
|
|
38
61
|
success: true,
|
|
39
62
|
syncToken,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
63
|
+
needsSetup,
|
|
64
|
+
user: rowToUserInfo(user)
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// ── 密码登录(常规)───────────────────────────────────────────────────
|
|
68
|
+
function loginWithPassword(username, password) {
|
|
69
|
+
const db = (0, database_1.getDB)();
|
|
70
|
+
const user = db
|
|
71
|
+
.prepare(`SELECT id, username, display_name, role, student_name, student_grade, guardian_id,
|
|
72
|
+
has_set_password, sync_token, password_hash
|
|
73
|
+
FROM User WHERE username = ? AND delete_flag = 0`)
|
|
74
|
+
.get(username.trim());
|
|
75
|
+
if (!user)
|
|
76
|
+
return { success: false, error: '用户名或密码错误' };
|
|
77
|
+
if (!user.password_hash) {
|
|
78
|
+
return { success: false, error: '该账号尚未设置密码,请先用访问码登录并完成设置' };
|
|
79
|
+
}
|
|
80
|
+
if (!bcryptjs_1.default.compareSync(password, user.password_hash)) {
|
|
81
|
+
return { success: false, error: '用户名或密码错误' };
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
success: true,
|
|
85
|
+
syncToken: user.sync_token,
|
|
86
|
+
needsSetup: false,
|
|
87
|
+
user: rowToUserInfo(user)
|
|
48
88
|
};
|
|
49
89
|
}
|
|
90
|
+
// ── 首次登录后设置用户名+密码 ─────────────────────────────────────────
|
|
91
|
+
function setupAccountPassword(userId, username, password) {
|
|
92
|
+
const db = (0, database_1.getDB)();
|
|
93
|
+
if (!username.trim())
|
|
94
|
+
return { success: false, error: '用户名不能为空' };
|
|
95
|
+
if (password.length < 6)
|
|
96
|
+
return { success: false, error: '密码至少 6 位' };
|
|
97
|
+
const conflict = db
|
|
98
|
+
.prepare('SELECT id FROM User WHERE username = ? AND id != ? AND delete_flag = 0')
|
|
99
|
+
.get(username.trim(), userId);
|
|
100
|
+
if (conflict)
|
|
101
|
+
return { success: false, error: '该用户名已被使用,请换一个' };
|
|
102
|
+
const hash = bcryptjs_1.default.hashSync(password, 10);
|
|
103
|
+
db.prepare('UPDATE User SET username = ?, password_hash = ?, has_set_password = 1, update_time = ? WHERE id = ?')
|
|
104
|
+
.run(username.trim(), hash, Date.now(), userId);
|
|
105
|
+
return { success: true };
|
|
106
|
+
}
|
|
107
|
+
// ── 修改密码(登录后)────────────────────────────────────────────────
|
|
108
|
+
function changePassword(userId, oldPassword, newPassword) {
|
|
109
|
+
const db = (0, database_1.getDB)();
|
|
110
|
+
const user = db.prepare('SELECT password_hash FROM User WHERE id = ? AND delete_flag = 0').get(userId);
|
|
111
|
+
if (!user)
|
|
112
|
+
return { success: false, error: '用户不存在' };
|
|
113
|
+
if (user.password_hash && !bcryptjs_1.default.compareSync(oldPassword, user.password_hash)) {
|
|
114
|
+
return { success: false, error: '原密码错误' };
|
|
115
|
+
}
|
|
116
|
+
if (newPassword.length < 6)
|
|
117
|
+
return { success: false, error: '新密码至少 6 位' };
|
|
118
|
+
db.prepare('UPDATE User SET password_hash = ?, update_time = ? WHERE id = ?')
|
|
119
|
+
.run(bcryptjs_1.default.hashSync(newPassword, 10), Date.now(), userId);
|
|
120
|
+
return { success: true };
|
|
121
|
+
}
|
|
122
|
+
// ── 其余原有函数(保持不变)──────────────────────────────────────────
|
|
50
123
|
function getUserBySyncToken(syncToken) {
|
|
51
124
|
const db = (0, database_1.getDB)();
|
|
52
125
|
const user = db
|
|
53
|
-
.prepare(
|
|
126
|
+
.prepare(`SELECT id, username, display_name, role, student_name, student_grade, guardian_id, has_set_password
|
|
127
|
+
FROM User WHERE sync_token = ? AND delete_flag = 0`)
|
|
54
128
|
.get(syncToken);
|
|
55
129
|
if (!user)
|
|
56
130
|
return null;
|
|
57
|
-
return
|
|
58
|
-
id: user.id,
|
|
59
|
-
displayName: user.display_name ?? null,
|
|
60
|
-
role: user.role ?? 'guardian',
|
|
61
|
-
studentName: user.student_name ?? null,
|
|
62
|
-
studentGrade: user.student_grade ?? null,
|
|
63
|
-
guardianId: user.guardian_id ?? null
|
|
64
|
-
};
|
|
131
|
+
return rowToUserInfo(user);
|
|
65
132
|
}
|
|
66
133
|
function setupGuardian(userId, guardianName) {
|
|
67
134
|
const db = (0, database_1.getDB)();
|
|
68
135
|
db.prepare('UPDATE User SET display_name = ?, update_time = ? WHERE id = ?')
|
|
69
136
|
.run(guardianName.trim(), Date.now(), userId);
|
|
70
137
|
}
|
|
71
|
-
// 创建学生账户,绑定到监护人
|
|
72
138
|
function createStudent(guardianId, name, grade) {
|
|
73
139
|
const db = (0, database_1.getDB)();
|
|
74
140
|
const id = (0, uuid_1.v4)();
|
|
75
141
|
const token = (0, uuid_1.v4)();
|
|
76
142
|
const now = Date.now();
|
|
77
143
|
db.prepare(`
|
|
78
|
-
INSERT INTO User (id, username, sync_token, display_name, role, guardian_id, student_grade,
|
|
79
|
-
|
|
144
|
+
INSERT INTO User (id, username, sync_token, display_name, role, guardian_id, student_grade,
|
|
145
|
+
has_set_password, create_time, update_time, delete_flag)
|
|
146
|
+
VALUES (?, ?, ?, ?, 'student', ?, ?, 0, ?, ?, 0)
|
|
80
147
|
`).run(id, `student_${id.slice(0, 8)}`, token, name.trim(), guardianId, grade ?? null, now, now);
|
|
81
|
-
return { id, name: name.trim(), grade: grade ?? null, token };
|
|
148
|
+
return { id, name: name.trim(), grade: grade ?? null, token, hasSetPassword: false };
|
|
82
149
|
}
|
|
83
|
-
// 列出监护人名下所有学生
|
|
84
150
|
function listStudents(guardianId) {
|
|
85
151
|
const db = (0, database_1.getDB)();
|
|
86
|
-
return db.prepare(
|
|
152
|
+
return db.prepare(`SELECT id, display_name, student_grade, sync_token, has_set_password
|
|
153
|
+
FROM User WHERE guardian_id = ? AND role = 'student' AND delete_flag = 0 ORDER BY create_time ASC`).all(guardianId).map(r => ({
|
|
154
|
+
id: r.id, name: r.display_name, grade: r.student_grade,
|
|
155
|
+
token: r.sync_token, hasSetPassword: (r.has_set_password ?? 0) === 1
|
|
156
|
+
}));
|
|
87
157
|
}
|
|
88
|
-
// 删除(软删)学生账户
|
|
89
158
|
function deleteStudent(studentId, guardianId) {
|
|
90
159
|
const db = (0, database_1.getDB)();
|
|
91
160
|
const result = db.prepare('UPDATE User SET delete_flag = 1, update_time = ? WHERE id = ? AND guardian_id = ?').run(Date.now(), studentId, guardianId);
|
|
92
161
|
return result.changes > 0;
|
|
93
162
|
}
|
|
94
|
-
// 重置 syncToken
|
|
95
163
|
function resetSyncToken(userId) {
|
|
96
164
|
const db = (0, database_1.getDB)();
|
|
97
165
|
const user = db.prepare('SELECT id FROM User WHERE id = ? AND delete_flag = 0').get(userId);
|
|
@@ -101,10 +169,9 @@ function resetSyncToken(userId) {
|
|
|
101
169
|
db.prepare('UPDATE User SET sync_token = ?, update_time = ? WHERE id = ?').run(newToken, Date.now(), user.id);
|
|
102
170
|
return { success: true, syncToken: newToken };
|
|
103
171
|
}
|
|
104
|
-
// 获取监护人名下第一个学生的 ID(工具调用时用)
|
|
105
172
|
function getPrimaryStudentId(guardianId) {
|
|
106
173
|
const db = (0, database_1.getDB)();
|
|
107
|
-
const row = db.prepare(
|
|
174
|
+
const row = db.prepare(`SELECT id FROM User WHERE guardian_id = ? AND role = 'student' AND delete_flag = 0 ORDER BY create_time ASC LIMIT 1`).get(guardianId);
|
|
108
175
|
return row?.id ?? null;
|
|
109
176
|
}
|
|
110
177
|
//# sourceMappingURL=auth.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":";;;;;AAgDA,gDAiBC;AAGD,oCAsBC;AAGD,8CA4BC;AAGD,oDAgBC;AAGD,wCAWC;AAID,gDAQC;AAED,sCAIC;AAED,sCAWC;AAED,oCAYC;AAED,sCAMC;AAED,wCAOC;AAED,kDAMC;AAhOD,+BAAmC;AACnC,wDAA6B;AAC7B,0CAAmC;AA6BnC,SAAS,aAAa,CAAC,GAItB;IACC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;QACrC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,UAAU;QAC5B,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;QACrC,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;QACvC,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;QACnC,cAAc,EAAE,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC;KAClD,CAAA;AACH,CAAC;AAED,SAAgB,kBAAkB;IAChC,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC,8EAA8E,CAAC;SACvF,GAAG,EAAoD,CAAA;IAE1D,IAAI,QAAQ;QAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAA;IAEvD,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAA;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CAAC,IAAA,SAAM,GAAE,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAErC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3C,OAAO,EAAE,SAAS,EAAE,CAAA;AACtB,CAAC;AAED,gEAAgE;AAChE,SAAgB,YAAY,CAAC,SAAiB;IAC5C,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC;;iEAEoD,CAAC;SAC7D,GAAG,CAAC,SAAS,CAIA,CAAA;IAEhB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;IAE3D,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;IAErD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS;QACT,UAAU;QACV,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;KAC1B,CAAA;AACH,CAAC;AAED,iEAAiE;AACjE,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAClE,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC;;+DAEkD,CAAC;SAC3D,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAIN,CAAA;IAEhB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAEvD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAA;IAC7D,CAAC;IAED,IAAI,CAAC,kBAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAC9C,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;KAC1B,CAAA;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAgB,oBAAoB,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAgB;IACrF,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAElB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACjE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAErE,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC,wEAAwE,CAAC;SACjF,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;IAE/D,MAAM,IAAI,GAAG,kBAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC1C,EAAE,CAAC,OAAO,CAAC,qGAAqG,CAAC;SAC9G,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAEjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,+DAA+D;AAC/D,SAAgB,cAAc,CAAC,MAAc,EAAE,WAAmB,EAAE,WAAmB;IACrF,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAiD,CAAA;IACtJ,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACpD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IAC3C,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACzE,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC;SAC1E,GAAG,CAAC,kBAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,4DAA4D;AAE5D,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC;iEACoD,CAAC;SAC7D,GAAG,CAAC,SAAS,CAAoD,CAAA;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,aAAa,CAAC,MAAc,EAAE,YAAoB;IAChE,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC;SACzE,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;AACjD,CAAC;AAED,SAAgB,aAAa,CAAC,UAAkB,EAAE,IAAY,EAAE,KAAc;IAC5E,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAA;IACnB,MAAM,KAAK,GAAG,IAAA,SAAM,GAAE,CAAA;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,EAAE,CAAC,OAAO,CAAC;;;;GAIV,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAChG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAA;AACtF,CAAC;AAED,SAAgB,YAAY,CAAC,UAAkB;IAC7C,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,OAAQ,EAAE,CAAC,OAAO,CAChB;uGACmG,CACpG,CAAC,GAAG,CAAC,UAAU,CAGb,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa;QACtD,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC;KACrE,CAAC,CAAC,CAAA;AACL,CAAC;AAED,SAAgB,aAAa,CAAC,SAAiB,EAAE,UAAkB;IACjE,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,mFAAmF,CACpF,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACxC,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,MAAM,CAA+B,CAAA;IACzH,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACpD,MAAM,QAAQ,GAAG,IAAA,SAAM,GAAE,CAAA;IACzB,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7G,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAC/C,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAkB;IACpD,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,qHAAqH,CACtH,CAAC,GAAG,CAAC,UAAU,CAA+B,CAAA;IAC/C,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI,CAAA;AACxB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface AgentThought {
|
|
2
|
+
id: string;
|
|
3
|
+
student_id: string;
|
|
4
|
+
triggered_by: string;
|
|
5
|
+
summary: string;
|
|
6
|
+
actions_taken: string | null;
|
|
7
|
+
next_focus: string | null;
|
|
8
|
+
urgency: string;
|
|
9
|
+
created_at: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function recordThought(params: {
|
|
12
|
+
student_id: string;
|
|
13
|
+
triggered_by: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
actions_taken?: string[];
|
|
16
|
+
next_focus?: string;
|
|
17
|
+
urgency?: string;
|
|
18
|
+
}): AgentThought;
|
|
19
|
+
export declare function getLastThought(studentId: string): AgentThought | null;
|
|
20
|
+
export declare function listThoughts(studentId: string, limit?: number): AgentThought[];
|
|
21
|
+
//# sourceMappingURL=thought.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thought.service.d.ts","sourceRoot":"","sources":["../../src/services/thought.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,YAAY,CAkBf;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAMrE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,YAAY,EAAE,CAK1E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordThought = recordThought;
|
|
4
|
+
exports.getLastThought = getLastThought;
|
|
5
|
+
exports.listThoughts = listThoughts;
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
const database_1 = require("../database");
|
|
8
|
+
function recordThought(params) {
|
|
9
|
+
const db = (0, database_1.getDB)();
|
|
10
|
+
const id = (0, uuid_1.v4)();
|
|
11
|
+
const now = Date.now();
|
|
12
|
+
db.prepare(`
|
|
13
|
+
INSERT INTO AgentThought (id, student_id, triggered_by, summary, actions_taken, next_focus, urgency, created_at)
|
|
14
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
15
|
+
`).run(id, params.student_id, params.triggered_by, params.summary, params.actions_taken ? JSON.stringify(params.actions_taken) : null, params.next_focus ?? null, params.urgency ?? 'normal', now);
|
|
16
|
+
return db.prepare(`SELECT * FROM AgentThought WHERE id=?`).get(id);
|
|
17
|
+
}
|
|
18
|
+
function getLastThought(studentId) {
|
|
19
|
+
const db = (0, database_1.getDB)();
|
|
20
|
+
const row = db.prepare(`SELECT * FROM AgentThought WHERE student_id=? ORDER BY created_at DESC LIMIT 1`).get(studentId);
|
|
21
|
+
return row ?? null;
|
|
22
|
+
}
|
|
23
|
+
function listThoughts(studentId, limit = 20) {
|
|
24
|
+
const db = (0, database_1.getDB)();
|
|
25
|
+
return db.prepare(`SELECT * FROM AgentThought WHERE student_id=? ORDER BY created_at DESC LIMIT ?`).all(studentId, limit);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=thought.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thought.service.js","sourceRoot":"","sources":["../../src/services/thought.service.ts"],"names":[],"mappings":";;AAcA,sCAyBC;AAED,wCAMC;AAED,oCAKC;AAtDD,+BAAmC;AACnC,0CAAmC;AAanC,SAAgB,aAAa,CAAC,MAO7B;IACC,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAA;IACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CACJ,EAAE,EACF,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAClE,MAAM,CAAC,UAAU,IAAI,IAAI,EACzB,MAAM,CAAC,OAAO,IAAI,QAAQ,EAC1B,GAAG,CACJ,CAAA;IACD,OAAO,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAiB,CAAA;AACpF,CAAC;AAED,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,gFAAgF,CACjF,CAAC,GAAG,CAAC,SAAS,CAA6B,CAAA;IAC5C,OAAO,GAAG,IAAI,IAAI,CAAA;AACpB,CAAC;AAED,SAAgB,YAAY,CAAC,SAAiB,EAAE,KAAK,GAAG,EAAE;IACxD,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAA;IAClB,OAAO,EAAE,CAAC,OAAO,CACf,gFAAgF,CACjF,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAmB,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type TodoPriority = 'low' | 'normal' | 'high' | 'urgent';
|
|
2
|
+
export type TodoStatus = 'pending' | 'done' | 'dropped';
|
|
3
|
+
export interface Todo {
|
|
4
|
+
id: string;
|
|
5
|
+
student_id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
content: string | null;
|
|
8
|
+
priority: TodoPriority;
|
|
9
|
+
status: TodoStatus;
|
|
10
|
+
due_date: number | null;
|
|
11
|
+
recurrence: string | null;
|
|
12
|
+
agent_created: boolean;
|
|
13
|
+
related_kp_id: string | null;
|
|
14
|
+
reminded_at: number | null;
|
|
15
|
+
create_time: number;
|
|
16
|
+
update_time: number;
|
|
17
|
+
}
|
|
18
|
+
export interface CreateTodoInput {
|
|
19
|
+
student_id: string;
|
|
20
|
+
title: string;
|
|
21
|
+
content?: string;
|
|
22
|
+
priority?: TodoPriority;
|
|
23
|
+
due_date?: number;
|
|
24
|
+
recurrence?: string;
|
|
25
|
+
agent_created?: boolean;
|
|
26
|
+
related_kp_id?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function createTodo(input: CreateTodoInput): Todo;
|
|
29
|
+
export declare function getTodoById(id: string): Todo | null;
|
|
30
|
+
export declare function listTodos(studentId: string, opts?: {
|
|
31
|
+
status?: TodoStatus;
|
|
32
|
+
priority?: TodoPriority;
|
|
33
|
+
limit?: number;
|
|
34
|
+
offset?: number;
|
|
35
|
+
}): Todo[];
|
|
36
|
+
export declare function updateTodo(id: string, patch: Partial<Pick<Todo, 'title' | 'content' | 'priority' | 'status' | 'due_date' | 'recurrence'>>): Todo | null;
|
|
37
|
+
export declare function deleteTodo(id: string): void;
|
|
38
|
+
export declare function markReminded(id: string): void;
|
|
39
|
+
export declare function getDueSoonTodos(studentId: string): Todo[];
|
|
40
|
+
export declare function getTodayDueTodos(studentId: string): Todo[];
|
|
41
|
+
export declare function getOverdueTodos(studentId: string): Todo[];
|
|
42
|
+
//# sourceMappingURL=todo.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.service.d.ts","sourceRoot":"","sources":["../../src/services/todo.service.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC/D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAqBvD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IACjD,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACX,GAAG,IAAI,EAAE,CAYd;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAcvJ;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG7C;AAGD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,CAWzD;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,CAW1D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,CASzD"}
|