personalac 1.3.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/README.md +249 -0
- package/bin/personalac.js +215 -0
- package/dist/agent/context.d.ts +39 -0
- package/dist/agent/context.d.ts.map +1 -0
- package/dist/agent/context.js +163 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/executors.d.ts +40 -0
- package/dist/agent/executors.d.ts.map +1 -0
- package/dist/agent/executors.js +177 -0
- package/dist/agent/executors.js.map +1 -0
- package/dist/agent/index.d.ts +61 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +907 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/planner.d.ts +15 -0
- package/dist/agent/planner.d.ts.map +1 -0
- package/dist/agent/planner.js +81 -0
- package/dist/agent/planner.js.map +1 -0
- package/dist/agent/scheduler.d.ts +22 -0
- package/dist/agent/scheduler.d.ts.map +1 -0
- package/dist/agent/scheduler.js +178 -0
- package/dist/agent/scheduler.js.map +1 -0
- package/dist/database/index.d.ts +5 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +283 -0
- package/dist/database/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +141 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/auth.middleware.d.ts +6 -0
- package/dist/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/middleware/auth.middleware.js +19 -0
- package/dist/middleware/auth.middleware.js.map +1 -0
- package/dist/routes/agent.routes.d.ts +3 -0
- package/dist/routes/agent.routes.d.ts.map +1 -0
- package/dist/routes/agent.routes.js +101 -0
- package/dist/routes/agent.routes.js.map +1 -0
- package/dist/routes/auth.routes.d.ts +3 -0
- package/dist/routes/auth.routes.d.ts.map +1 -0
- package/dist/routes/auth.routes.js +66 -0
- package/dist/routes/auth.routes.js.map +1 -0
- package/dist/routes/chat.routes.d.ts +3 -0
- package/dist/routes/chat.routes.d.ts.map +1 -0
- package/dist/routes/chat.routes.js +80 -0
- package/dist/routes/chat.routes.js.map +1 -0
- package/dist/routes/data.routes.d.ts +3 -0
- package/dist/routes/data.routes.d.ts.map +1 -0
- package/dist/routes/data.routes.js +16 -0
- package/dist/routes/data.routes.js.map +1 -0
- package/dist/routes/email.routes.d.ts +3 -0
- package/dist/routes/email.routes.d.ts.map +1 -0
- package/dist/routes/email.routes.js +18 -0
- package/dist/routes/email.routes.js.map +1 -0
- package/dist/routes/goals.routes.d.ts +3 -0
- package/dist/routes/goals.routes.d.ts.map +1 -0
- package/dist/routes/goals.routes.js +45 -0
- package/dist/routes/goals.routes.js.map +1 -0
- package/dist/routes/plans.routes.d.ts +3 -0
- package/dist/routes/plans.routes.d.ts.map +1 -0
- package/dist/routes/plans.routes.js +19 -0
- package/dist/routes/plans.routes.js.map +1 -0
- package/dist/routes/settings.routes.d.ts +3 -0
- package/dist/routes/settings.routes.d.ts.map +1 -0
- package/dist/routes/settings.routes.js +29 -0
- package/dist/routes/settings.routes.js.map +1 -0
- package/dist/routes/workspace.routes.d.ts +3 -0
- package/dist/routes/workspace.routes.d.ts.map +1 -0
- package/dist/routes/workspace.routes.js +28 -0
- package/dist/routes/workspace.routes.js.map +1 -0
- package/dist/services/auth.service.d.ts +32 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/auth.service.js +110 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/data.service.d.ts +47 -0
- package/dist/services/data.service.d.ts.map +1 -0
- package/dist/services/data.service.js +139 -0
- package/dist/services/data.service.js.map +1 -0
- package/dist/services/email.service.d.ts +23 -0
- package/dist/services/email.service.d.ts.map +1 -0
- package/dist/services/email.service.js +316 -0
- package/dist/services/email.service.js.map +1 -0
- package/dist/services/notify.service.d.ts +2 -0
- package/dist/services/notify.service.d.ts.map +1 -0
- package/dist/services/notify.service.js +21 -0
- package/dist/services/notify.service.js.map +1 -0
- package/dist/services/plan.service.d.ts +21 -0
- package/dist/services/plan.service.d.ts.map +1 -0
- package/dist/services/plan.service.js +96 -0
- package/dist/services/plan.service.js.map +1 -0
- package/dist/services/resource.service.d.ts +27 -0
- package/dist/services/resource.service.d.ts.map +1 -0
- package/dist/services/resource.service.js +150 -0
- package/dist/services/resource.service.js.map +1 -0
- package/dist/services/settings.service.d.ts +41 -0
- package/dist/services/settings.service.d.ts.map +1 -0
- package/dist/services/settings.service.js +254 -0
- package/dist/services/settings.service.js.map +1 -0
- package/dist/services/sobriety.service.d.ts +41 -0
- package/dist/services/sobriety.service.d.ts.map +1 -0
- package/dist/services/sobriety.service.js +243 -0
- package/dist/services/sobriety.service.js.map +1 -0
- package/dist/services/workspace.service.d.ts +71 -0
- package/dist/services/workspace.service.d.ts.map +1 -0
- package/dist/services/workspace.service.js +265 -0
- package/dist/services/workspace.service.js.map +1 -0
- package/dist/tools/chat-tools.d.ts +2 -0
- package/dist/tools/chat-tools.d.ts.map +1 -0
- package/dist/tools/chat-tools.js +419 -0
- package/dist/tools/chat-tools.js.map +1 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +27 -0
- package/dist/tools/index.js.map +1 -0
- package/package.json +38 -0
- package/public/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/public/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/public/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/public/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/public/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/public/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/public/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/public/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/public/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/public/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/public/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/public/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/public/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/public/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/public/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/public/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/public/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/public/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/public/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/public/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/public/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/public/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/public/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/public/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/public/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/public/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/public/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/public/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/public/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/public/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/public/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/public/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/public/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/public/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/public/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/public/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/public/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/public/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/public/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/public/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/public/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/public/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/public/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/public/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/public/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/public/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/public/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/public/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/public/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/public/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/public/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/public/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/public/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/public/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/public/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/public/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/public/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/public/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/public/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/public/assets/_baseUniq-DiHtXYsr.js +1 -0
- package/public/assets/arc-Bv1zbXf7.js +1 -0
- package/public/assets/architectureDiagram-Q4EWVU46-EbiUvXBr.js +36 -0
- package/public/assets/blockDiagram-DXYQGD6D-B-4wwQNT.js +132 -0
- package/public/assets/c4Diagram-AHTNJAMY-brLyKMPJ.js +10 -0
- package/public/assets/channel-Me4d6Y1x.js +1 -0
- package/public/assets/chunk-4BX2VUAB-DMh-4Nye.js +1 -0
- package/public/assets/chunk-4TB4RGXK-CSr1z2CQ.js +206 -0
- package/public/assets/chunk-55IACEB6-xN0xmcvD.js +1 -0
- package/public/assets/chunk-EDXVE4YY-CkCM3j5E.js +1 -0
- package/public/assets/chunk-FMBD7UC4-B-mDgsjM.js +15 -0
- package/public/assets/chunk-OYMX7WX6-DK8dg9K4.js +231 -0
- package/public/assets/chunk-QZHKN3VN-BZGbFOdK.js +1 -0
- package/public/assets/chunk-YZCP3GAM-BTmFmMer.js +1 -0
- package/public/assets/classDiagram-6PBFFD2Q-BXgAb5m4.js +1 -0
- package/public/assets/classDiagram-v2-HSJHXN6E-BXgAb5m4.js +1 -0
- package/public/assets/clone-rnECnpTI.js +1 -0
- package/public/assets/cose-bilkent-S5V4N54A-BBqCwo63.js +1 -0
- package/public/assets/cytoscape.esm-BQk4lpUV.js +331 -0
- package/public/assets/dagre-KV5264BT-DLeQYvAA.js +4 -0
- package/public/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/public/assets/diagram-5BDNPKRD-D85z2LaM.js +10 -0
- package/public/assets/diagram-G4DWMVQ6-4AvBmvcP.js +24 -0
- package/public/assets/diagram-MMDJMWI5-DRNEGNZA.js +43 -0
- package/public/assets/diagram-TYMM5635-C_oGwrmX.js +24 -0
- package/public/assets/erDiagram-SMLLAGMA-DDSp8ANa.js +85 -0
- package/public/assets/flowDiagram-DWJPFMVM-B1Wy36da.js +162 -0
- package/public/assets/ganttDiagram-T4ZO3ILL-CQ7VWheo.js +292 -0
- package/public/assets/gitGraphDiagram-UUTBAWPF-BhvM7s41.js +106 -0
- package/public/assets/graph-fatjTp1h.js +1 -0
- package/public/assets/index-1PrEnCZL.js +677 -0
- package/public/assets/index-DcsnItNp.css +1 -0
- package/public/assets/infoDiagram-42DDH7IO-4eawOC2G.js +2 -0
- package/public/assets/init-Gi6I4Gst.js +1 -0
- package/public/assets/ishikawaDiagram-UXIWVN3A-CJWfG1fv.js +70 -0
- package/public/assets/journeyDiagram-VCZTEJTY-C4Zx3dpF.js +139 -0
- package/public/assets/kanban-definition-6JOO6SKY-CV1vDcC8.js +89 -0
- package/public/assets/layout-CX0IDv3q.js +1 -0
- package/public/assets/linear-C8hMcu9f.js +1 -0
- package/public/assets/min-BaxMGW9J.js +1 -0
- package/public/assets/mindmap-definition-QFDTVHPH-KzGyX4Em.js +96 -0
- package/public/assets/ordinal-Cboi1Yqb.js +1 -0
- package/public/assets/pieDiagram-DEJITSTG-Dp2x5kvP.js +30 -0
- package/public/assets/quadrantDiagram-34T5L4WZ-B4yqA6XF.js +7 -0
- package/public/assets/requirementDiagram-MS252O5E-DEjN_2tG.js +84 -0
- package/public/assets/sankeyDiagram-XADWPNL6-BKm_F5FA.js +10 -0
- package/public/assets/sequenceDiagram-FGHM5R23-07BCMKjW.js +157 -0
- package/public/assets/stateDiagram-FHFEXIEX-DVz6GtR8.js +1 -0
- package/public/assets/stateDiagram-v2-QKLJ7IA2-DYiYr0PB.js +1 -0
- package/public/assets/timeline-definition-GMOUNBTQ-C0u67FqY.js +120 -0
- package/public/assets/vennDiagram-DHZGUBPP-BiAlMVLe.js +34 -0
- package/public/assets/wardley-RL74JXVD-BnWyuHzf.js +162 -0
- package/public/assets/wardleyDiagram-NUSXRM2D-DEL2Lx6S.js +20 -0
- package/public/assets/xychartDiagram-5P7HB3ND-ILdmj7ok.js +7 -0
- package/public/index.html +17 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PlannedTask } from './planner';
|
|
2
|
+
import { AgentContextData } from './context';
|
|
3
|
+
export interface AIConfig {
|
|
4
|
+
provider: string;
|
|
5
|
+
modelId: string;
|
|
6
|
+
apiKey: string;
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ExecutorOutput {
|
|
10
|
+
type: 'text' | 'mermaid' | 'knowledge_card';
|
|
11
|
+
content: string;
|
|
12
|
+
}
|
|
13
|
+
export interface BotMessageEffect {
|
|
14
|
+
type: 'bot_message';
|
|
15
|
+
userId: string;
|
|
16
|
+
content: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SetScheduleEffect {
|
|
19
|
+
type: 'set_schedule';
|
|
20
|
+
studentId: string;
|
|
21
|
+
cron: string;
|
|
22
|
+
description: string;
|
|
23
|
+
}
|
|
24
|
+
export type SideEffect = BotMessageEffect | SetScheduleEffect;
|
|
25
|
+
export interface ExecutorResult {
|
|
26
|
+
success: boolean;
|
|
27
|
+
taskType: string;
|
|
28
|
+
output?: ExecutorOutput;
|
|
29
|
+
sideEffects?: SideEffect[];
|
|
30
|
+
error?: string;
|
|
31
|
+
}
|
|
32
|
+
export type CallAI = (prompt: string, model?: string, apiKey?: string, baseUrl?: string) => Promise<string | null>;
|
|
33
|
+
export type Executor = (task: PlannedTask, context: AgentContextData, aiConfig: AIConfig, callAI: CallAI) => Promise<ExecutorResult>;
|
|
34
|
+
export declare const suggestionExecutor: Executor;
|
|
35
|
+
export declare const dailyReviewExecutor: Executor;
|
|
36
|
+
export declare const weaknessQuizExecutor: Executor;
|
|
37
|
+
export declare const resourceBriefExecutor: Executor;
|
|
38
|
+
export declare const scheduleExecutor: Executor;
|
|
39
|
+
export declare function getExecutor(type: string): Executor | null;
|
|
40
|
+
//# sourceMappingURL=executors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executors.d.ts","sourceRoot":"","sources":["../../src/agent/executors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAM5C,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAA;IAC3C,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAE7D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,MAAM,GAAG,CACnB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAE3B,MAAM,MAAM,QAAQ,GAAG,CACrB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,cAAc,CAAC,CAAA;AA0D5B,eAAO,MAAM,kBAAkB,EAAE,QA0BhC,CAAA;AAMD,eAAO,MAAM,mBAAmB,EAAE,QAmBjC,CAAA;AAMD,eAAO,MAAM,oBAAoB,EAAE,QA2BlC,CAAA;AAMD,eAAO,MAAM,qBAAqB,EAAE,QAmBnC,CAAA;AAMD,eAAO,MAAM,gBAAgB,EAAE,QAmB9B,CAAA;AAcD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scheduleExecutor = exports.resourceBriefExecutor = exports.weaknessQuizExecutor = exports.dailyReviewExecutor = exports.suggestionExecutor = void 0;
|
|
4
|
+
exports.getExecutor = getExecutor;
|
|
5
|
+
// ─────────────────────────────────────────────
|
|
6
|
+
// Shared helpers
|
|
7
|
+
// ─────────────────────────────────────────────
|
|
8
|
+
function parseOutput(response) {
|
|
9
|
+
const mermaidMatch = response.match(/<MERMAID>([\s\S]*?)<\/MERMAID>/i);
|
|
10
|
+
if (mermaidMatch)
|
|
11
|
+
return { type: 'mermaid', content: mermaidMatch[1].trim() };
|
|
12
|
+
const cardMatch = response.match(/<KNOWLEDGE_CARD>([\s\S]*?)<\/KNOWLEDGE_CARD>/i);
|
|
13
|
+
if (cardMatch)
|
|
14
|
+
return { type: 'knowledge_card', content: cardMatch[1].trim() };
|
|
15
|
+
return { type: 'text', content: response };
|
|
16
|
+
}
|
|
17
|
+
function buildContextBlock(context) {
|
|
18
|
+
const planSection = context.activePlan
|
|
19
|
+
? `学习方向:${context.activePlan.title}\n描述:${context.activePlan.description}\n科目:${context.activePlan.subjects.join('、')}`
|
|
20
|
+
: '学习方向:未设置';
|
|
21
|
+
const weakSection = context.weakPoints.length > 0
|
|
22
|
+
? context.weakPoints
|
|
23
|
+
.slice(0, 5)
|
|
24
|
+
.map((p) => `• [${p.subject}] ${p.topic} 薄弱度 ${(p.weakness_score * 100).toFixed(0)}%,已练习 ${p.attempt_count} 次` +
|
|
25
|
+
(p.last_practiced
|
|
26
|
+
? `,上次:${new Date(p.last_practiced).toLocaleDateString('zh-CN')}`
|
|
27
|
+
: ''))
|
|
28
|
+
.join('\n')
|
|
29
|
+
: '暂无薄弱点数据';
|
|
30
|
+
const recentSection = context.recentRecords.length > 0
|
|
31
|
+
? context.recentRecords
|
|
32
|
+
.slice(0, 10)
|
|
33
|
+
.map((r) => `• [${r.subject}] ${r.topic} 得分 ${r.score ?? '未记录'} ${r.duration_minutes} 分钟`)
|
|
34
|
+
.join('\n')
|
|
35
|
+
: '近 7 天无学习记录';
|
|
36
|
+
return `${planSection}\n\n薄弱知识点:\n${weakSection}\n\n近期学习记录:\n${recentSection}`;
|
|
37
|
+
}
|
|
38
|
+
const RICH_OUTPUT_HINT = `
|
|
39
|
+
如适合,可在回答末尾附加以下任意一种富文本(二选一):
|
|
40
|
+
- Mermaid 图表(知识结构/思维导图):<MERMAID>graph TD\n ...</MERMAID>
|
|
41
|
+
- 知识卡片:<KNOWLEDGE_CARD>{"title":"...","subject":"...","keyPoints":["..."],"difficulty":"easy|medium|hard"}</KNOWLEDGE_CARD>
|
|
42
|
+
否则直接输出纯文本/Markdown。`;
|
|
43
|
+
// ─────────────────────────────────────────────
|
|
44
|
+
// Suggestion Executor
|
|
45
|
+
// ─────────────────────────────────────────────
|
|
46
|
+
const suggestionExecutor = async (task, context, aiConfig, callAI) => {
|
|
47
|
+
const prompt = `你是个性化学习辅助 AI PersonalAC。请为以下学生生成一条具体可行的学习建议。
|
|
48
|
+
|
|
49
|
+
## 学生数据
|
|
50
|
+
${buildContextBlock(context)}
|
|
51
|
+
|
|
52
|
+
## 背景
|
|
53
|
+
${task.reason}
|
|
54
|
+
|
|
55
|
+
## 要求
|
|
56
|
+
- 建议指向明确的知识点或练习方向
|
|
57
|
+
- 300 字以内
|
|
58
|
+
- 语气友好,适合中学生或大学生${RICH_OUTPUT_HINT}`;
|
|
59
|
+
const response = await callAI(prompt, aiConfig.modelId, aiConfig.apiKey, aiConfig.baseUrl);
|
|
60
|
+
if (!response)
|
|
61
|
+
return { success: false, taskType: task.type, error: 'AI 无响应' };
|
|
62
|
+
const output = parseOutput(response);
|
|
63
|
+
const botContent = `📚 学习建议:${output.content.slice(0, 300)}${output.content.length > 300 ? '…' : ''}`;
|
|
64
|
+
return {
|
|
65
|
+
success: true,
|
|
66
|
+
taskType: task.type,
|
|
67
|
+
output,
|
|
68
|
+
sideEffects: [{ type: 'bot_message', userId: context.studentId, content: botContent }]
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
exports.suggestionExecutor = suggestionExecutor;
|
|
72
|
+
// ─────────────────────────────────────────────
|
|
73
|
+
// Daily Review Executor
|
|
74
|
+
// ─────────────────────────────────────────────
|
|
75
|
+
const dailyReviewExecutor = async (task, context, aiConfig, callAI) => {
|
|
76
|
+
const today = new Date().toLocaleDateString('zh-CN');
|
|
77
|
+
const prompt = `你是个性化学习辅助 AI PersonalAC。请生成 ${today} 的学习回顾报告。
|
|
78
|
+
|
|
79
|
+
## 学生数据
|
|
80
|
+
${buildContextBlock(context)}
|
|
81
|
+
|
|
82
|
+
## 报告结构(按顺序输出)
|
|
83
|
+
1. **今日学习总结** — 学了什么、学了多久
|
|
84
|
+
2. **表现亮点** — 得分高或有进步的知识点
|
|
85
|
+
3. **需要改进** — 薄弱或错误较多的知识点
|
|
86
|
+
4. **明日建议** — 2-3 条具体可行的建议${RICH_OUTPUT_HINT}`;
|
|
87
|
+
const response = await callAI(prompt, aiConfig.modelId, aiConfig.apiKey, aiConfig.baseUrl);
|
|
88
|
+
if (!response)
|
|
89
|
+
return { success: false, taskType: task.type, error: 'AI 无响应' };
|
|
90
|
+
const output = parseOutput(response);
|
|
91
|
+
return { success: true, taskType: task.type, output };
|
|
92
|
+
};
|
|
93
|
+
exports.dailyReviewExecutor = dailyReviewExecutor;
|
|
94
|
+
// ─────────────────────────────────────────────
|
|
95
|
+
// Weakness Quiz Executor
|
|
96
|
+
// ─────────────────────────────────────────────
|
|
97
|
+
const weaknessQuizExecutor = async (task, context, aiConfig, callAI) => {
|
|
98
|
+
if (context.weakPoints.length === 0) {
|
|
99
|
+
return { success: false, taskType: task.type, error: '没有薄弱点数据,无法生成测验' };
|
|
100
|
+
}
|
|
101
|
+
const targets = context.weakPoints.slice(0, 3);
|
|
102
|
+
const prompt = `你是个性化学习辅助 AI PersonalAC。请针对以下薄弱知识点生成专项测验。
|
|
103
|
+
|
|
104
|
+
## 薄弱知识点
|
|
105
|
+
${targets
|
|
106
|
+
.map((p, i) => `${i + 1}. [${p.subject}] ${p.topic}(薄弱度 ${(p.weakness_score * 100).toFixed(0)}%,练习 ${p.attempt_count} 次)`)
|
|
107
|
+
.join('\n')}
|
|
108
|
+
|
|
109
|
+
## 要求
|
|
110
|
+
- 每个知识点出 1-2 道题(选择题或简答题)
|
|
111
|
+
- 每题附标准答案和解析
|
|
112
|
+
- 难度适中,侧重理解而非死记${RICH_OUTPUT_HINT}`;
|
|
113
|
+
const response = await callAI(prompt, aiConfig.modelId, aiConfig.apiKey, aiConfig.baseUrl);
|
|
114
|
+
if (!response)
|
|
115
|
+
return { success: false, taskType: task.type, error: 'AI 无响应' };
|
|
116
|
+
const output = parseOutput(response);
|
|
117
|
+
return { success: true, taskType: task.type, output };
|
|
118
|
+
};
|
|
119
|
+
exports.weaknessQuizExecutor = weaknessQuizExecutor;
|
|
120
|
+
// ─────────────────────────────────────────────
|
|
121
|
+
// Resource Brief Executor
|
|
122
|
+
// ─────────────────────────────────────────────
|
|
123
|
+
const resourceBriefExecutor = async (task, _context, aiConfig, callAI) => {
|
|
124
|
+
const { fileName, subject, fileType } = (task.params ?? {});
|
|
125
|
+
const prompt = `你是个性化学习辅助 AI PersonalAC。请为以下学习资源生成一份简报。
|
|
126
|
+
|
|
127
|
+
文件名:${fileName || '未知'}
|
|
128
|
+
科目:${subject || '通用'}
|
|
129
|
+
类型:${fileType || '未知'}
|
|
130
|
+
|
|
131
|
+
请生成:
|
|
132
|
+
1. 资源内容概述(150 字以内)
|
|
133
|
+
2. 主要知识点(3-5 条)
|
|
134
|
+
3. 学习建议${RICH_OUTPUT_HINT}`;
|
|
135
|
+
const response = await callAI(prompt, aiConfig.modelId, aiConfig.apiKey, aiConfig.baseUrl);
|
|
136
|
+
if (!response)
|
|
137
|
+
return { success: false, taskType: task.type, error: 'AI 无响应' };
|
|
138
|
+
const output = parseOutput(response);
|
|
139
|
+
return { success: true, taskType: task.type, output };
|
|
140
|
+
};
|
|
141
|
+
exports.resourceBriefExecutor = resourceBriefExecutor;
|
|
142
|
+
// ─────────────────────────────────────────────
|
|
143
|
+
// Schedule Executor (no AI call needed)
|
|
144
|
+
// ─────────────────────────────────────────────
|
|
145
|
+
const scheduleExecutor = async (task, context, _aiConfig, _callAI) => {
|
|
146
|
+
const cron = task.params?.cron || '0 20 * * *';
|
|
147
|
+
const description = task.params?.description || '学习提醒';
|
|
148
|
+
console.log(`Schedule executor: creating schedule "${description}" (${cron}) for student ${context.studentId}`);
|
|
149
|
+
return {
|
|
150
|
+
success: true,
|
|
151
|
+
taskType: task.type,
|
|
152
|
+
output: { type: 'text', content: `已安排定时任务:${description}(${cron})` },
|
|
153
|
+
sideEffects: [
|
|
154
|
+
{
|
|
155
|
+
type: 'set_schedule',
|
|
156
|
+
studentId: context.studentId,
|
|
157
|
+
cron,
|
|
158
|
+
description
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
exports.scheduleExecutor = scheduleExecutor;
|
|
164
|
+
// ─────────────────────────────────────────────
|
|
165
|
+
// Executor registry
|
|
166
|
+
// ─────────────────────────────────────────────
|
|
167
|
+
const registry = {
|
|
168
|
+
push_suggestion: exports.suggestionExecutor,
|
|
169
|
+
daily_review: exports.dailyReviewExecutor,
|
|
170
|
+
weakness_quiz: exports.weaknessQuizExecutor,
|
|
171
|
+
resource_brief: exports.resourceBriefExecutor,
|
|
172
|
+
set_schedule: exports.scheduleExecutor
|
|
173
|
+
};
|
|
174
|
+
function getExecutor(type) {
|
|
175
|
+
return registry[type] ?? null;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=executors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executors.js","sourceRoot":"","sources":["../../src/agent/executors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { AgentScheduler } from './scheduler';
|
|
2
|
+
export interface AgentEvent {
|
|
3
|
+
type: 'new_learning_data' | 'new_resource' | 'plan_changed' | 'bot_message' | 'workspace_full' | 'workspace_update';
|
|
4
|
+
studentId?: string;
|
|
5
|
+
userId?: string;
|
|
6
|
+
username?: string;
|
|
7
|
+
role?: string;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
export declare function getAgentEngine(): AgentEngine | null;
|
|
11
|
+
export declare class AgentEngine {
|
|
12
|
+
private context;
|
|
13
|
+
scheduler: AgentScheduler;
|
|
14
|
+
private doNotDisturb;
|
|
15
|
+
private processingStudents;
|
|
16
|
+
private dailyCronJob;
|
|
17
|
+
private sobrietyCronJob;
|
|
18
|
+
constructor();
|
|
19
|
+
init(): void;
|
|
20
|
+
private refreshAllSobrietySnapshots;
|
|
21
|
+
private createTask;
|
|
22
|
+
private updateTask;
|
|
23
|
+
callAI(prompt: string, model?: string, apiKey?: string, baseUrl?: string): Promise<string | null>;
|
|
24
|
+
runAutonomousCycle(studentId: string): Promise<void>;
|
|
25
|
+
private runExecutorTask;
|
|
26
|
+
private applySideEffect;
|
|
27
|
+
generateResourceBrief(resourceInfo: {
|
|
28
|
+
resourceId?: string;
|
|
29
|
+
fileName?: string;
|
|
30
|
+
subject?: string;
|
|
31
|
+
fileType?: string;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
generateDailyReview(studentId: string): Promise<void>;
|
|
34
|
+
generateWeaknessQuiz(studentId: string): Promise<void>;
|
|
35
|
+
handleEvent(event: AgentEvent): Promise<void>;
|
|
36
|
+
generateBotResponse(userId: string, userMessage: string): Promise<string | null>;
|
|
37
|
+
private buildChatConfig;
|
|
38
|
+
private buildSystemPrompt;
|
|
39
|
+
private callOnce;
|
|
40
|
+
private streamText;
|
|
41
|
+
streamChatResponse(userId: string, messages: Array<{
|
|
42
|
+
role: 'user' | 'assistant';
|
|
43
|
+
content: unknown;
|
|
44
|
+
}>, onToken: (token: string) => void, onDone: () => void, onError: (err: string) => void, onThinking?: (toolName: string, display: string) => void): Promise<void>;
|
|
45
|
+
logAction(studentId: string | null, actionType: string, actionDetail: string | null, triggerType: string, modelUsed: string | null, status?: 'success' | 'failed' | 'pending', errorMessage?: string): Promise<void>;
|
|
46
|
+
getRecentLogs(studentId: string, limit?: number): Array<{
|
|
47
|
+
id: string;
|
|
48
|
+
action_type: string;
|
|
49
|
+
action_detail: string | null;
|
|
50
|
+
trigger_type: string;
|
|
51
|
+
model_used: string | null;
|
|
52
|
+
status: string;
|
|
53
|
+
create_time: number;
|
|
54
|
+
}>;
|
|
55
|
+
setDoNotDisturb(start: string, end: string): void;
|
|
56
|
+
clearDoNotDisturb(): void;
|
|
57
|
+
private isDoNotDisturb;
|
|
58
|
+
getScheduler(): AgentScheduler;
|
|
59
|
+
destroy(): void;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}
|