@sim-design/training 1.0.0 → 1.1.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 +481 -15
- package/dist/{ArrowLeftOutlined-CiSQq3bL.js → ArrowLeftOutlined-BxA84GXs.js} +1 -1
- package/dist/ArrowLeftOutlined-D785XjyB.js +12 -0
- package/dist/{AssessmentPlugin-Bx4VrBdV.js → AssessmentPlugin-D_iesmyg.js} +7 -7
- package/dist/AssessmentPlugin-zRr-IsdA.js +607 -0
- package/dist/CaseAnalysisPlugin-CXuQpkPd.js +2196 -0
- package/dist/CaseAnalysisPlugin-DytlXsRD.js +2196 -0
- package/dist/CaseDetailContent-DT5nCtRT.js +28613 -0
- package/dist/CaseDetailContent-Y7Q430MG.js +28595 -0
- package/dist/{CharacterDialoguePanel-Bvdab3qj.js → CharacterDialoguePanel-CdtUl-Sv.js} +178 -139
- package/dist/CharacterDialoguePanel-D_4YNFZv.js +815 -0
- package/dist/{CheckCircleFilled-Byo8CDfW.js → CheckCircleFilled-CnslIY7j.js} +1 -1
- package/dist/CheckCircleFilled-NvZaC2sk.js +12 -0
- package/dist/DecisionMakingPlugin-B_KQUFzW.js +1385 -0
- package/dist/DecisionMakingPlugin-ILLGek3S.js +1385 -0
- package/dist/{DecisionSelectPlugin-DtQ2KV34.js → DecisionSelectPlugin-BGQiHGBK.js} +20 -11
- package/dist/DecisionSelectPlugin-Bqmh6XGh.js +872 -0
- package/dist/{DecisionShared-Dh9oeQFT.js → DecisionShared-BHq1lEqt.js} +2 -2
- package/dist/DecisionShared-Be-zKZLT.js +65 -0
- package/dist/DeleteOutlined-BvMjU7m5.js +12 -0
- package/dist/DeleteOutlined-Dqy6M2LH.js +12 -0
- package/dist/{CustomLayoutRenderer--rnQrqQ2.js → DialogueFormPlugin-BpCeFadt.js} +22724 -21631
- package/dist/DialogueFormPlugin-CXlbxX-z.js +123617 -0
- package/dist/DialoguePlugin-CO7Nzv0K.js +596 -0
- package/dist/DialoguePlugin-DDNdsylz.js +596 -0
- package/dist/DocumentReviewPlugin-2CnKQwVG.js +1967 -0
- package/dist/DocumentReviewPlugin-qYYrnjvE.js +1967 -0
- package/dist/{EyeOutlined-XvOAKlLs.js → EyeOutlined-BrKCNjui.js} +1 -1
- package/dist/EyeOutlined-CW0tYV0f.js +12 -0
- package/dist/FormFillingPlugin-C3h8ySOZ.js +969 -0
- package/dist/FormFillingPlugin-CPmd76Qr.js +969 -0
- package/dist/HolderOutlined-CH0tShWu.js +12 -0
- package/dist/HolderOutlined-Dm6TBtqf.js +12 -0
- package/dist/ModelEditor-BjEbFloQ.js +11753 -0
- package/dist/ModelEditor-CwR67DFQ.js +11753 -0
- package/dist/{ProcessOperationPlugin-IijngDlX.js → ProcessOperationPlugin-1Lz431aC.js} +12 -12
- package/dist/ProcessOperationPlugin-BkmdG3ch.js +88 -0
- package/dist/QAPlugin-0C4kpq3J.js +172 -0
- package/dist/QAPlugin-UC8uywcg.js +172 -0
- package/dist/{ReloadOutlined-Daor2m11.js → ReloadOutlined-BZ92nlYF.js} +1 -1
- package/dist/ReloadOutlined-CYoPOwLl.js +12 -0
- package/dist/{SettingOutlined-CLEOgXB-.js → SettingOutlined-F466s0Ti.js} +33 -65
- package/dist/SettingOutlined-c2hikCfN.js +60 -0
- package/dist/StarFilled-Bilmj6UK.js +28 -0
- package/dist/StarFilled-CtH30fL0.js +28 -0
- package/dist/StrategyLabPlugin-CvO07sXV.js +12445 -0
- package/dist/StrategyLabPlugin-DUqZYctQ.js +12445 -0
- package/dist/ThunderboltOutlined-BpmoCKdV.js +28 -0
- package/dist/ThunderboltOutlined-DDQFi5Cv.js +28 -0
- package/dist/TrainingModelContainer-DqCsdC7C.js +11241 -0
- package/dist/TrainingModelContainer-yi8W6KFl.js +11241 -0
- package/dist/{UndoOutlined-ChUQYUul.js → UndoOutlined-6JZVzmdX.js} +26 -42
- package/dist/UndoOutlined-Dw6_9_OL.js +68 -0
- package/dist/{WarningFilled-1Rc4hr0C.js → WarningFilled-Cy1tvuQy.js} +1 -1
- package/dist/WarningFilled-lkr453eh.js +12 -0
- package/dist/{adapters-D1FFZFoA.js → adapters-BbCnXSYo.js} +2 -2
- package/dist/{analysisTools-CXyOvSZT.js → analysisTools-Cp5-3DaU.js} +59 -12
- package/dist/creator.js +4 -2
- package/dist/designTokens-walF_QkZ.js +23 -0
- package/dist/images/healthcare/bg.jpg +0 -0
- package/dist/{index-CYjdXPgc.js → index-C71iHgSs.js} +2640 -2722
- package/dist/{index-XuBVjlmu.js → index-CBvqcbIU.js} +7214 -7643
- package/dist/index-D94YNWTb.js +433 -0
- package/dist/index-DSYmOXnQ.js +6486 -0
- package/dist/index-fP97rKeQ.js +433 -0
- package/dist/index.js +8 -6
- package/dist/judgement-xTGXlDcn.js +29 -0
- package/dist/runtime.js +1 -1
- package/dist/sortable.esm-bm_c5vmI.js +3307 -0
- package/dist/types.js +1 -1
- package/dist/useDialogueLogic-D1lkUKUZ.js +576 -0
- package/dist/useDialogueLogic-vOJ9XRNP.js +576 -0
- package/dist-types/client/src/admin/CaseDataEditor.d.ts +20 -0
- package/dist-types/client/src/admin/CaseEditor.d.ts +19 -0
- package/dist-types/client/src/admin/DialogueFormCheckRulesEditor.d.ts +11 -0
- package/dist-types/client/src/admin/DialogueFormInitDataEditor.d.ts +31 -0
- package/dist-types/client/src/admin/InitDataEditors.d.ts +7 -0
- package/dist-types/client/src/admin/ModelEditor.d.ts +11 -0
- package/dist-types/client/src/admin/ModelPreview.d.ts +13 -0
- package/dist-types/client/src/admin/OptionSelector.d.ts +32 -0
- package/dist-types/client/src/admin/StageStepEditor.d.ts +20 -0
- package/dist-types/client/src/admin/StepAnswerKeyEditor.d.ts +19 -0
- package/dist-types/client/src/admin/StepByStepCreator.d.ts +27 -0
- package/dist-types/client/src/admin/components/AbilityMapEditor.d.ts +12 -0
- package/dist-types/client/src/admin/components/CasePreview.d.ts +8 -0
- package/dist-types/client/src/admin/components/StepAbilitySelector.d.ts +9 -0
- package/dist-types/client/src/admin/constants/creatorConstants.d.ts +39 -0
- package/dist-types/client/src/admin/editors/CaseAnalysisEditor.d.ts +11 -0
- package/dist-types/client/src/admin/editors/DecisionMakingEditor.d.ts +7 -0
- package/dist-types/client/src/admin/editors/DialogueEditor.d.ts +12 -0
- package/dist-types/client/src/admin/editors/DocumentReviewEditor.d.ts +7 -0
- package/dist-types/client/src/admin/editors/DocumentReviewRuntimeRulesEditor.d.ts +15 -0
- package/dist-types/client/src/admin/editors/FormFillingEditor.d.ts +33 -0
- package/dist-types/client/src/admin/editors/ModelUIConfigEditor.d.ts +5 -0
- package/dist-types/client/src/admin/editors/QAEditor.d.ts +6 -0
- package/dist-types/client/src/admin/editors/RouterEditors.d.ts +18 -0
- package/dist-types/client/src/admin/editors/StepBriefingEditor.d.ts +14 -0
- package/dist-types/client/src/admin/editors/StrategyLabEditor.d.ts +24 -0
- package/dist-types/client/src/admin/editors/decisionEditorParts.d.ts +18 -0
- package/dist-types/client/src/admin/editors/index.d.ts +8 -0
- package/dist-types/client/src/admin/editors/shared.d.ts +17 -0
- package/dist-types/client/src/admin/hooks/useStep1Intent.d.ts +16 -0
- package/dist-types/client/src/admin/hooks/useStep2Outline.d.ts +41 -0
- package/dist-types/client/src/admin/hooks/useStep3Details.d.ts +123 -0
- package/dist-types/client/src/admin/hooks/useStep4Cases.d.ts +48 -0
- package/dist-types/client/src/admin/hooks/useStep5Validation.d.ts +16 -0
- package/dist-types/client/src/admin/landingValidation.d.ts +74 -0
- package/dist-types/client/src/admin/schemaFieldUtils.d.ts +55 -0
- package/dist-types/client/src/admin/services.d.ts +461 -0
- package/dist-types/client/src/admin/shared-editors.d.ts +31 -0
- package/dist-types/client/src/admin/types/creatorArtifacts.d.ts +140 -0
- package/dist-types/client/src/components/AbilityMapView.d.ts +15 -0
- package/dist-types/client/src/components/CaseDetail/CaseDetailContent.d.ts +12 -0
- package/dist-types/client/src/components/ConversationalDataCollector/IntentConfirmPanel.d.ts +20 -0
- package/dist-types/client/src/components/ConversationalDataCollector/index.d.ts +7 -0
- package/dist-types/client/src/components/ConversationalDataCollector/intentState.d.ts +24 -0
- package/dist-types/client/src/components/ConversationalDataCollector/types.d.ts +95 -0
- package/dist-types/client/src/components/ConversationalDataCollector/utils.d.ts +62 -0
- package/dist-types/client/src/components/CustomLayoutRenderer.d.ts +8 -0
- package/dist-types/client/src/components/MarkdownRenderer.d.ts +15 -0
- package/dist-types/client/src/components/StrategyLabScene/VisualInputComponents.d.ts +85 -0
- package/dist-types/client/src/components/StrategyLabScene/components/AdversarialView.d.ts +18 -0
- package/dist-types/client/src/components/StrategyLabScene/components/BottomBar.d.ts +22 -0
- package/dist-types/client/src/components/StrategyLabScene/components/CharacterCard.d.ts +14 -0
- package/dist-types/client/src/components/StrategyLabScene/components/CharacterDialoguePanel.d.ts +32 -0
- package/dist-types/client/src/components/StrategyLabScene/components/CollaborativeView.d.ts +20 -0
- package/dist-types/client/src/components/StrategyLabScene/components/ComparisonView.d.ts +16 -0
- package/dist-types/client/src/components/StrategyLabScene/components/DecisionInput.d.ts +27 -0
- package/dist-types/client/src/components/StrategyLabScene/components/DecisionSwitcher.d.ts +14 -0
- package/dist-types/client/src/components/StrategyLabScene/components/EvaluationReport.d.ts +13 -0
- package/dist-types/client/src/components/StrategyLabScene/components/NodeChainPanels.d.ts +32 -0
- package/dist-types/client/src/components/StrategyLabScene/components/ProgressSteps.d.ts +15 -0
- package/dist-types/client/src/components/StrategyLabScene/components/SandboxView.d.ts +19 -0
- package/dist-types/client/src/components/StrategyLabScene/components/ScenarioPanel.d.ts +17 -0
- package/dist-types/client/src/components/StrategyLabScene/components/SimulationAnimation.d.ts +13 -0
- package/dist-types/client/src/components/StrategyLabScene/components/SimulationResult.d.ts +15 -0
- package/dist-types/client/src/components/StrategyLabScene/components/StressTestView.d.ts +22 -0
- package/dist-types/client/src/components/StrategyLabScene/themeMatching.d.ts +21 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/education.d.ts +45 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/healthcare.d.ts +7 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/index.d.ts +22 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/professional.d.ts +7 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/technology.d.ts +7 -0
- package/dist-types/client/src/components/StrategyLabScene/types.d.ts +82 -0
- package/dist-types/client/src/components/StrategyLabScene/views/UnifiedStrategyLabView.d.ts +72 -0
- package/dist-types/client/src/components/TrainingEngine/BriefingQAChat.d.ts +19 -0
- package/dist-types/client/src/components/TrainingEngine/CaseInfoModal.d.ts +12 -0
- package/dist-types/client/src/components/TrainingEngine/CaseSelector.d.ts +15 -0
- package/dist-types/client/src/components/TrainingEngine/ClassicView.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/DashboardHomePage.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/EnhancedStudentProfilePanel.d.ts +9 -0
- package/dist-types/client/src/components/TrainingEngine/EvaluationPanel.d.ts +8 -0
- package/dist-types/client/src/components/TrainingEngine/GlobalQAPanel.d.ts +34 -0
- package/dist-types/client/src/components/TrainingEngine/GuidanceHistoryDrawer.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/GuidancePanel.d.ts +3 -0
- package/dist-types/client/src/components/TrainingEngine/ImmersiveGameView.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/PluginRenderer.d.ts +15 -0
- package/dist-types/client/src/components/TrainingEngine/ProgressTracker.d.ts +3 -0
- package/dist-types/client/src/components/TrainingEngine/StageAssessingOverlay.d.ts +17 -0
- package/dist-types/client/src/components/TrainingEngine/StageAssessmentPanel.d.ts +10 -0
- package/dist-types/client/src/components/TrainingEngine/StepExecutor.d.ts +20 -0
- package/dist-types/client/src/components/TrainingEngine/StepNodeMap.d.ts +15 -0
- package/dist-types/client/src/components/TrainingEngine/StudentProfilePanel.d.ts +6 -0
- package/dist-types/client/src/components/TrainingEngine/ThemeContext.d.ts +8 -0
- package/dist-types/client/src/components/TrainingEngine/TrainingMaterialsSidebar.d.ts +21 -0
- package/dist-types/client/src/components/TrainingEngine/TrainingModelContainer.d.ts +42 -0
- package/dist-types/client/src/components/TrainingEngine/ViewProps.d.ts +37 -0
- package/dist-types/client/src/components/TrainingEngine/profileDataSelectors.d.ts +23 -0
- package/dist-types/client/src/components/TrainingEngine/stepInitData.d.ts +42 -0
- package/dist-types/client/src/components/TrainingEngine/targetAbilityUtils.d.ts +11 -0
- package/dist-types/client/src/components/VisualizationRenderer/ChartRenderer.d.ts +12 -0
- package/dist-types/client/src/components/VisualizationRenderer/types.d.ts +41 -0
- package/dist-types/client/src/config/appConfig.d.ts +15 -0
- package/dist-types/client/src/configs/agentConfig.d.ts +66 -0
- package/dist-types/client/src/configs/intentDiscoveryConfig.d.ts +22 -0
- package/dist-types/client/src/data/mockTrainingModel.d.ts +10 -0
- package/dist-types/client/src/hooks/useAIService.d.ts +17 -0
- package/dist-types/client/src/hooks/useDialogueLogic.d.ts +53 -0
- package/dist-types/client/src/hooks/useFormFillingLogic.d.ts +26 -0
- package/dist-types/client/src/hooks/useFormRealtimeGuidance.d.ts +45 -0
- package/dist-types/client/src/hooks/useRealtimeGuidance.d.ts +66 -0
- package/dist-types/client/src/hooks/useStageAssessment.d.ts +8 -0
- package/dist-types/client/src/hooks/useStepExecution.d.ts +14 -0
- package/dist-types/client/src/hooks/useTrainingModel.d.ts +30 -0
- package/dist-types/client/src/lib/creator.d.ts +1 -0
- package/dist-types/client/src/lib/index.d.ts +1 -0
- package/dist-types/client/src/lib/types.d.ts +113 -22
- package/dist-types/client/src/plugins/AssessmentPlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/CaseAnalysisPlugin.d.ts +9 -0
- package/dist-types/client/src/plugins/CaseAnalysisPluginView.d.ts +26 -0
- package/dist-types/client/src/plugins/DecisionSelectPlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/DialogueFormPlugin.d.ts +9 -0
- package/dist-types/client/src/plugins/DialogueFormPluginView.d.ts +37 -0
- package/dist-types/client/src/plugins/DialoguePlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/DialoguePluginView.d.ts +44 -0
- package/dist-types/client/src/plugins/DocumentReview/DocumentCard.d.ts +47 -0
- package/dist-types/client/src/plugins/DocumentReview/LayoutComponents.d.ts +47 -0
- package/dist-types/client/src/plugins/DocumentReview/MarkListPanel.d.ts +51 -0
- package/dist-types/client/src/plugins/DocumentReview/MarkModal.d.ts +37 -0
- package/dist-types/client/src/plugins/DocumentReview/ResultPanel.d.ts +32 -0
- package/dist-types/client/src/plugins/DocumentReview/Toolbar.d.ts +31 -0
- package/dist-types/client/src/plugins/DocumentReview/designTokens.d.ts +76 -0
- package/dist-types/client/src/plugins/DocumentReviewPlugin.d.ts +14 -0
- package/dist-types/client/src/plugins/ProcessOperationPlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/QAPlugin.d.ts +9 -0
- package/dist-types/client/src/plugins/StrategyLabPlugin.d.ts +7 -0
- package/dist-types/client/src/plugins/decision-making/DecisionMakingPlugin.d.ts +4 -0
- package/dist-types/client/src/plugins/decision-making/DecisionWorkspace.d.ts +23 -0
- package/dist-types/client/src/plugins/decision-making/MaterialsPanel.d.ts +18 -0
- package/dist-types/client/src/plugins/decision-making/logic.d.ts +46 -0
- package/dist-types/client/src/plugins/decision-making/scoring.d.ts +79 -0
- package/dist-types/client/src/plugins/decision-making/styles.d.ts +743 -0
- package/dist-types/client/src/plugins/decision-making/types.d.ts +179 -0
- package/dist-types/client/src/plugins/form-filling/DocumentFormLayout.d.ts +22 -0
- package/dist-types/client/src/plugins/form-filling/FormAssistPanel.d.ts +20 -0
- package/dist-types/client/src/plugins/form-filling/FormFillingPlugin.d.ts +15 -0
- package/dist-types/client/src/plugins/form-filling/forms.d.ts +28 -0
- package/dist-types/client/src/plugins/form-filling/scoring.d.ts +86 -0
- package/dist-types/client/src/plugins/form-filling/useFormFilling.d.ts +42 -0
- package/dist-types/client/src/plugins/form-filling/validationRules.d.ts +26 -0
- package/dist-types/client/src/plugins/shared/DecisionShared.d.ts +54 -0
- package/dist-types/client/src/plugins/shared/FrameworkWidget.d.ts +19 -0
- package/dist-types/client/src/plugins/shared/PluginFooter.d.ts +4 -0
- package/dist-types/client/src/plugins/shared/PluginHeader.d.ts +4 -0
- package/dist-types/client/src/plugins/shared/analysisTools.d.ts +30 -0
- package/dist-types/client/src/plugins/shared/disturbanceUtils.d.ts +5 -0
- package/dist-types/client/src/plugins/shared/index.d.ts +5 -0
- package/dist-types/client/src/plugins/shared/jsonRepair.d.ts +39 -0
- package/dist-types/client/src/plugins/shared/judgement.d.ts +46 -0
- package/dist-types/client/src/plugins/shared/nodeChain.d.ts +15 -0
- package/dist-types/client/src/plugins/shared/renderFieldGrid.d.ts +16 -0
- package/dist-types/client/src/plugins/shared/reportBlocks.d.ts +33 -0
- package/dist-types/client/src/plugins/shared/reportEvaluation.d.ts +30 -0
- package/dist-types/client/src/plugins/shared/reportExport.d.ts +12 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/BlockPropertiesPanel.d.ts +9 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/BlockToolbox.d.ts +11 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/ReportWorkbench.d.ts +20 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/SortableBlock.d.ts +15 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/factory.d.ts +14 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/outlineDraft.d.ts +7 -0
- package/dist-types/client/src/plugins/shared/simulationEngine.d.ts +112 -0
- package/dist-types/client/src/plugins/shared/simulationModes.d.ts +21 -0
- package/dist-types/client/src/plugins/shared/themes.d.ts +5 -0
- package/dist-types/client/src/plugins/shared/types.d.ts +1247 -0
- package/dist-types/client/src/services/AICommandHandler.d.ts +68 -0
- package/dist-types/client/src/services/cozeApiClient.d.ts +44 -0
- package/dist-types/client/src/services/mockApi.d.ts +48 -0
- package/dist-types/client/src/services/storageService.d.ts +88 -0
- package/dist-types/client/src/stores/abilityStore.d.ts +33 -0
- package/dist-types/client/src/stores/dialogueStore.d.ts +30 -0
- package/dist-types/client/src/stores/formRegistryStore.d.ts +45 -0
- package/dist-types/client/src/stores/guidanceStore.d.ts +17 -0
- package/dist-types/client/src/stores/stepEvidenceStore.d.ts +14 -0
- package/dist-types/client/src/stores/strategyLabStore.d.ts +46 -0
- package/dist-types/client/src/stores/trainingStore.d.ts +84 -0
- package/dist-types/client/src/types/ai-commands.d.ts +144 -0
- package/dist-types/client/src/types.d.ts +17 -0
- package/dist-types/client/src/utils/abilityMapGenerator.d.ts +27 -0
- package/dist-types/client/src/utils/formUtils.d.ts +66 -0
- package/dist-types/client/src/utils/rule-engine.d.ts +36 -0
- package/dist-types/shared/types/index.d.ts +592 -0
- package/package.json +5 -3
- package/dist/CaseAnalysisPlugin-CQvF9_zr.js +0 -416
- package/dist/DialogueFormPlugin-C9ssnVMr.js +0 -959
- package/dist/DialoguePlugin-DU00QpmQ.js +0 -416
- package/dist/DocumentReviewPlugin-HNOZY1T4.js +0 -977
- package/dist/FormFillingPlugin-DURWsioi.js +0 -445
- package/dist/ModelEditor-BPJsPR0S.js +0 -8264
- package/dist/PluginHeader-B-GESJmT.js +0 -87
- package/dist/QAPlugin-Bh_UjK1N.js +0 -184
- package/dist/RadarChart-C5ZM0kWt.js +0 -24963
- package/dist/StrategyLabPlugin-DGeZsr_7.js +0 -14361
- package/dist/ThunderboltOutlined-nH_FO_4A.js +0 -44
- package/dist/ToolOutlined-DtuNJDB2.js +0 -28
- package/dist/TrainingModelContainer-DpW-uB8O.js +0 -11883
- package/dist/WarningOutlined-5g1d66hO.js +0 -164
- package/dist/judgement-D_9i7x9S.js +0 -20
- package/dist/useDialogueLogic-IHELcN3X.js +0 -368
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI指令处理器
|
|
3
|
+
* 统一处理AI返回的所有指令类型
|
|
4
|
+
*/
|
|
5
|
+
import type { AICommand, AICommandType } from '../types/ai-commands';
|
|
6
|
+
/**
|
|
7
|
+
* 指令处理器函数类型
|
|
8
|
+
*/
|
|
9
|
+
type CommandHandler<T = any> = (command: T) => void | Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* AI指令处理器类
|
|
12
|
+
*/
|
|
13
|
+
export declare class AICommandHandler {
|
|
14
|
+
private handlers;
|
|
15
|
+
private errorHandler?;
|
|
16
|
+
constructor();
|
|
17
|
+
/**
|
|
18
|
+
* 注册指令处理器
|
|
19
|
+
*/
|
|
20
|
+
register<T extends AICommand>(commandType: AICommandType, handler: CommandHandler<T>): void;
|
|
21
|
+
/**
|
|
22
|
+
* 注销指令处理器
|
|
23
|
+
*/
|
|
24
|
+
unregister(commandType: AICommandType): void;
|
|
25
|
+
/**
|
|
26
|
+
* 设置错误处理器
|
|
27
|
+
*/
|
|
28
|
+
setErrorHandler(handler: (error: Error, command: AICommand) => void): void;
|
|
29
|
+
/**
|
|
30
|
+
* 处理单个AI指令
|
|
31
|
+
*/
|
|
32
|
+
handle(command: AICommand): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* 处理多个AI指令(按优先级排序)
|
|
35
|
+
*/
|
|
36
|
+
handleMultiple(commands: AICommand[]): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* 解析AI响应并处理指令
|
|
39
|
+
*/
|
|
40
|
+
parseAndHandle(aiResponse: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* 错误处理
|
|
43
|
+
*/
|
|
44
|
+
private handleError;
|
|
45
|
+
/**
|
|
46
|
+
* 清除所有处理器
|
|
47
|
+
*/
|
|
48
|
+
clear(): void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 创建全局单例
|
|
52
|
+
*/
|
|
53
|
+
export declare const aiCommandHandler: AICommandHandler;
|
|
54
|
+
/**
|
|
55
|
+
* 插件级 AI 回复路由辅助函数
|
|
56
|
+
*
|
|
57
|
+
* - type === expectedType → 返回 { command, cleanContent }
|
|
58
|
+
* - type 存在但不匹配 → 路由到全局 aiCommandHandler,返回 { command: null, cleanContent }
|
|
59
|
+
* - 数组 → 分离本插件指令和其他指令
|
|
60
|
+
* - 解析失败 → 返回 { command: null, cleanContent }(调用方判断为纯文本)
|
|
61
|
+
*
|
|
62
|
+
* @returns { command: 匹配的指令对象或null, cleanContent: 清理后的内容 }
|
|
63
|
+
*/
|
|
64
|
+
export declare function parseAIResponseForPlugin<T extends AICommand>(content: string, expectedType: AICommandType): {
|
|
65
|
+
command: T | null;
|
|
66
|
+
cleanContent: string;
|
|
67
|
+
};
|
|
68
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 可识别的扣子超时错误。
|
|
3
|
+
* 调用方可用 `instanceof CozeTimeoutError`(或 `err.name === 'CozeTimeoutError'`)区分「超时」与「平台错误」。
|
|
4
|
+
*/
|
|
5
|
+
export declare class CozeTimeoutError extends Error {
|
|
6
|
+
readonly timeoutMs: number;
|
|
7
|
+
readonly isCozeTimeout = true;
|
|
8
|
+
constructor(timeoutMs: number);
|
|
9
|
+
}
|
|
10
|
+
/** 注册(或用 null 清除)模块级 token 失效自愈回调。详见 ambientTokenInvalidHandler 说明。 */
|
|
11
|
+
export declare const setTokenInvalidHandler: (handler: (() => Promise<string | null | undefined>) | null) => void;
|
|
12
|
+
export interface StreamUpdateCallback {
|
|
13
|
+
(content: string, isComplete: boolean, eventType: string): void;
|
|
14
|
+
}
|
|
15
|
+
export interface SuggestionCallback {
|
|
16
|
+
(content: string, content_type: string): void;
|
|
17
|
+
}
|
|
18
|
+
export interface FetchCozeOptions {
|
|
19
|
+
botId: string;
|
|
20
|
+
prompt: string;
|
|
21
|
+
token: string;
|
|
22
|
+
conversationId?: string;
|
|
23
|
+
onStreamUpdate?: StreamUpdateCallback;
|
|
24
|
+
autoSaveHistory?: boolean;
|
|
25
|
+
onSuggestionUpdate?: SuggestionCallback;
|
|
26
|
+
/** 空闲超时(ms):流在该时间内无任何新事件即中止并抛 CozeTimeoutError。默认 30000;耗时较长的生成类调用可调大。 */
|
|
27
|
+
idleTimeoutMs?: number;
|
|
28
|
+
/**
|
|
29
|
+
* token 被平台判定失效(4101)时回调:应清除旧缓存并返回一个全新的 token;
|
|
30
|
+
* 返回空值(null/undefined/空串)则不重试。不提供则遇 4101 直接抛出(保持原行为)。
|
|
31
|
+
*/
|
|
32
|
+
onTokenInvalid?: () => Promise<string | null | undefined>;
|
|
33
|
+
/** @internal token 失效自愈的重试标记,防止无限重试,调用方请勿手动设置。 */
|
|
34
|
+
__tokenRetried?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface FetchCozeResult {
|
|
37
|
+
response: string;
|
|
38
|
+
conversationId: string;
|
|
39
|
+
}
|
|
40
|
+
export declare const startHeartbeat: (botId: string, token: string, intervalMs?: number) => void;
|
|
41
|
+
export declare const stopHeartbeat: () => void;
|
|
42
|
+
export declare function getBotInfo(bot_id: string): Promise<import("@coze/api").BotInfo | undefined>;
|
|
43
|
+
export declare const fetchCozeData: (options: FetchCozeOptions) => Promise<FetchCozeResult>;
|
|
44
|
+
export declare const uploadFile: (file: File, cozeToken: string) => Promise<import("@coze/api").FileObject>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { TrainingModel, EvaluationReport } from '@shared/types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Mock API 服务
|
|
4
|
+
* 提供训练模型数据,无需后端依赖
|
|
5
|
+
*/
|
|
6
|
+
export declare const mockApi: {
|
|
7
|
+
/**
|
|
8
|
+
* 获取实训模型
|
|
9
|
+
*/
|
|
10
|
+
getTrainingModel: (modelId: string) => Promise<TrainingModel>;
|
|
11
|
+
/**
|
|
12
|
+
* 获取插件代码
|
|
13
|
+
* 注意:实际实现中,插件是本地组件,不需要动态加载代码
|
|
14
|
+
* 这个方法保留用于未来可能的动态插件加载
|
|
15
|
+
*/
|
|
16
|
+
getPluginCode: (pluginId: string) => Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* 模拟评估步骤
|
|
19
|
+
* 简单的规则评估,用于测试
|
|
20
|
+
*/
|
|
21
|
+
evaluateStep: (stepId: string, studentData: any, evaluationRules: any) => Promise<EvaluationReport>;
|
|
22
|
+
/**
|
|
23
|
+
* 保存学生操作数据(模拟)
|
|
24
|
+
*/
|
|
25
|
+
saveStudentOperation: (data: {
|
|
26
|
+
sessionId: string;
|
|
27
|
+
stepId: string;
|
|
28
|
+
operationData: any;
|
|
29
|
+
}) => Promise<{
|
|
30
|
+
success: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* 保存评估结果(模拟)
|
|
34
|
+
*/
|
|
35
|
+
saveEvaluation: (data: {
|
|
36
|
+
sessionId: string;
|
|
37
|
+
stepId: string;
|
|
38
|
+
evaluation: EvaluationReport;
|
|
39
|
+
}) => Promise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* 初始化会话(模拟)
|
|
44
|
+
*/
|
|
45
|
+
initSession: (studentId: string, modelId: string) => Promise<{
|
|
46
|
+
sessionId: string;
|
|
47
|
+
}>;
|
|
48
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* localStorage持久化服务
|
|
3
|
+
* 管理训练会话数据的保存、加载和清理
|
|
4
|
+
*/
|
|
5
|
+
import type { EvaluationReport } from '@shared/types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* 存储的会话数据结构
|
|
8
|
+
*/
|
|
9
|
+
export interface StoredSessionData {
|
|
10
|
+
studentId: string;
|
|
11
|
+
modelId: string;
|
|
12
|
+
currentStageIndex: number;
|
|
13
|
+
currentStepIndex: number;
|
|
14
|
+
studentData: Record<string, any>;
|
|
15
|
+
operationLog: any[];
|
|
16
|
+
evaluationHistory: EvaluationReport[];
|
|
17
|
+
stageAssessmentHistory?: any[];
|
|
18
|
+
startTime: string;
|
|
19
|
+
lastUpdateTime: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 存储的完整数据结构
|
|
23
|
+
*/
|
|
24
|
+
export interface StoredTrainingData {
|
|
25
|
+
sessions: {
|
|
26
|
+
[sessionId: string]: StoredSessionData;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* localStorage持久化服务
|
|
31
|
+
*/
|
|
32
|
+
export declare class StorageService {
|
|
33
|
+
/**
|
|
34
|
+
* 获取所有存储的数据
|
|
35
|
+
*/
|
|
36
|
+
private getStoredData;
|
|
37
|
+
/**
|
|
38
|
+
* 保存所有数据
|
|
39
|
+
*/
|
|
40
|
+
private setStoredData;
|
|
41
|
+
/**
|
|
42
|
+
* 保存会话数据
|
|
43
|
+
*/
|
|
44
|
+
saveSession(sessionId: string, sessionData: Partial<StoredSessionData>): void;
|
|
45
|
+
/**
|
|
46
|
+
* 加载会话数据
|
|
47
|
+
*/
|
|
48
|
+
loadSession(sessionId: string): StoredSessionData | null;
|
|
49
|
+
/**
|
|
50
|
+
* 清除指定会话
|
|
51
|
+
*/
|
|
52
|
+
clearSession(sessionId: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* 获取所有会话列表
|
|
55
|
+
*/
|
|
56
|
+
getAllSessions(): Array<{
|
|
57
|
+
sessionId: string;
|
|
58
|
+
data: StoredSessionData;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* 获取学生的所有会话
|
|
62
|
+
*/
|
|
63
|
+
getStudentSessions(studentId: string): Array<{
|
|
64
|
+
sessionId: string;
|
|
65
|
+
data: StoredSessionData;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* 清理过期会话
|
|
69
|
+
*/
|
|
70
|
+
cleanupOldSessions(): void;
|
|
71
|
+
/**
|
|
72
|
+
* 清除所有数据
|
|
73
|
+
*/
|
|
74
|
+
clearAll(): void;
|
|
75
|
+
/**
|
|
76
|
+
* 获取存储使用情况
|
|
77
|
+
*/
|
|
78
|
+
getStorageInfo(): {
|
|
79
|
+
sessionCount: number;
|
|
80
|
+
estimatedSize: number;
|
|
81
|
+
oldestSession: string | null;
|
|
82
|
+
newestSession: string | null;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 创建全局单例
|
|
87
|
+
*/
|
|
88
|
+
export declare const storageService: StorageService;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AbilityMap, AbilityNode, AbilityCategory } from '@shared/types/index.js';
|
|
2
|
+
import type { StudentProfile } from './trainingStore';
|
|
3
|
+
/**
|
|
4
|
+
* 能力更新项
|
|
5
|
+
*/
|
|
6
|
+
interface AbilityUpdate {
|
|
7
|
+
abilityId: string;
|
|
8
|
+
delta: number;
|
|
9
|
+
reason: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 能力状态接口
|
|
13
|
+
*/
|
|
14
|
+
interface AbilityState {
|
|
15
|
+
abilityMap: AbilityMap | null;
|
|
16
|
+
studentProfile: StudentProfile | null;
|
|
17
|
+
setAbilityMap: (map: AbilityMap | null) => void;
|
|
18
|
+
initStudentProfile: (studentId: string, abilityMap: AbilityMap) => void;
|
|
19
|
+
updateAbilityValue: (abilityId: string, delta: number, stepId: string, stepName: string, reason: string) => void;
|
|
20
|
+
batchUpdateAbilities: (updates: AbilityUpdate[], stepId: string, stepName: string) => void;
|
|
21
|
+
getAbilityValue: (abilityId: string) => number;
|
|
22
|
+
getCategoryAverage: (category: AbilityCategory) => number;
|
|
23
|
+
getStepAbilities: (stepId: string) => AbilityNode[];
|
|
24
|
+
addCompletedStep: (stepId: string) => void;
|
|
25
|
+
persistToStorage: () => void;
|
|
26
|
+
loadFromStorage: () => void;
|
|
27
|
+
reset: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 能力状态管理 Store
|
|
31
|
+
*/
|
|
32
|
+
export declare const useAbilityStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AbilityState>>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
interface DialogueMessage {
|
|
2
|
+
role: 'customer' | 'teller';
|
|
3
|
+
content: string;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
emotion?: 'neutral' | 'happy' | 'confused' | 'angry';
|
|
6
|
+
feedback?: string;
|
|
7
|
+
}
|
|
8
|
+
interface DialogueCacheEntry {
|
|
9
|
+
messages: DialogueMessage[];
|
|
10
|
+
dialogueLog: DialogueMessage[];
|
|
11
|
+
conversationId: string | null;
|
|
12
|
+
guidanceConversationId?: string | null;
|
|
13
|
+
firedDisturbanceIds?: string[];
|
|
14
|
+
pendingDisturbanceIds?: string[];
|
|
15
|
+
currentPhaseId?: string | null;
|
|
16
|
+
phaseHistory?: string[];
|
|
17
|
+
branchResults?: Record<string, 'positive' | 'negative'>;
|
|
18
|
+
resistanceFaded?: boolean;
|
|
19
|
+
}
|
|
20
|
+
interface DialogueStoreState {
|
|
21
|
+
cache: Record<string, DialogueCacheEntry>;
|
|
22
|
+
saveDialogue: (stepId: string, data: DialogueCacheEntry) => void;
|
|
23
|
+
getDialogue: (stepId: string) => DialogueCacheEntry | undefined;
|
|
24
|
+
clearStep: (stepId: string) => void;
|
|
25
|
+
clearAll: () => void;
|
|
26
|
+
persistToStorage: () => void;
|
|
27
|
+
loadFromStorage: () => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const useDialogueStore: import("zustand").UseBoundStore<import("zustand").StoreApi<DialogueStoreState>>;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { FormField } from '../plugins/shared/types';
|
|
2
|
+
/**
|
|
3
|
+
* 表单模板(缓存用)
|
|
4
|
+
*/
|
|
5
|
+
export interface CachedFormTemplate {
|
|
6
|
+
formName: string;
|
|
7
|
+
fields: FormField[];
|
|
8
|
+
mode?: 'create' | 'edit';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* FormRegistry 状态接口
|
|
12
|
+
*/
|
|
13
|
+
interface FormRegistryState {
|
|
14
|
+
templates: Record<string, CachedFormTemplate>;
|
|
15
|
+
filledData: Record<string, Record<string, any>>;
|
|
16
|
+
registerTemplate: (formName: string, template: CachedFormTemplate) => void;
|
|
17
|
+
getTemplate: (formName: string) => CachedFormTemplate | undefined;
|
|
18
|
+
hasTemplate: (formName: string) => boolean;
|
|
19
|
+
saveFilledData: (formName: string, data: Record<string, any>) => void;
|
|
20
|
+
getFilledData: (formName: string) => Record<string, any> | undefined;
|
|
21
|
+
clearFilledData: () => void;
|
|
22
|
+
reset: () => void;
|
|
23
|
+
persistToStorage: () => void;
|
|
24
|
+
loadFromStorage: (sessionId: string) => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 解析文本中的模板变量引用与表达式
|
|
28
|
+
* - {路径}:字段引用,仅做路径插值
|
|
29
|
+
* - [表达式]:受限表达式语言,支持算术/逻辑/条件/数组函数
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveTemplateText(text: string, caseData: any, filledData?: Record<string, Record<string, any>>): string;
|
|
32
|
+
/**
|
|
33
|
+
* 解析 customerData 中的变量引用
|
|
34
|
+
* 支持:
|
|
35
|
+
* - 常量:直接返回值(如 "身份证")
|
|
36
|
+
* - 案例字段引用:{customerInfo.name} → 从 caseData 中取值
|
|
37
|
+
* - 表单字段引用:{开户申请书.customerName} → 从 filledData 中取值
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveCustomerData(customerData: Record<string, any> | undefined, caseData: any, filledData: Record<string, Record<string, any>>): Record<string, any>;
|
|
40
|
+
/**
|
|
41
|
+
* FormRegistry Store
|
|
42
|
+
* 管理表单模板缓存和已填数据,生命周期与实训会话一致
|
|
43
|
+
*/
|
|
44
|
+
export declare const useFormRegistryStore: import("zustand").UseBoundStore<import("zustand").StoreApi<FormRegistryState>>;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface GuidanceItem {
|
|
2
|
+
id: string;
|
|
3
|
+
severity: 'info' | 'warning' | 'error';
|
|
4
|
+
message: string;
|
|
5
|
+
suggestion?: string;
|
|
6
|
+
fieldName?: string;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
dismissed: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface GuidanceStore {
|
|
11
|
+
items: GuidanceItem[];
|
|
12
|
+
addGuidance(item: Omit<GuidanceItem, 'id' | 'timestamp' | 'dismissed'>): void;
|
|
13
|
+
dismissGuidance(id: string): void;
|
|
14
|
+
clearAll(): void;
|
|
15
|
+
}
|
|
16
|
+
export declare const useGuidanceStore: import("zustand").UseBoundStore<import("zustand").StoreApi<GuidanceStore>>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EvidenceSummary } from '@shared/types/index.js';
|
|
2
|
+
import type { StepEvidenceEntry } from '../plugins/shared/types';
|
|
3
|
+
interface StepEvidenceStoreState {
|
|
4
|
+
cache: Record<string, StepEvidenceEntry>;
|
|
5
|
+
saveStepEvidence: (stepId: string, summary: EvidenceSummary, rawData?: any) => void;
|
|
6
|
+
getStepEvidence: (stepId: string) => StepEvidenceEntry | undefined;
|
|
7
|
+
getAllEvidence: () => StepEvidenceEntry[];
|
|
8
|
+
clearStep: (stepId: string) => void;
|
|
9
|
+
clearAll: () => void;
|
|
10
|
+
persistToStorage: () => void;
|
|
11
|
+
loadFromStorage: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const useStepEvidenceStore: import("zustand").UseBoundStore<import("zustand").StoreApi<StepEvidenceStoreState>>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { DecisionData, SimulationResult, StrategyEvaluationResult, NodeRuntimeState, NodeOutcome } from '../plugins/shared/types';
|
|
2
|
+
/**
|
|
3
|
+
* 角色对话状态
|
|
4
|
+
*/
|
|
5
|
+
interface CharacterDialogueState {
|
|
6
|
+
messages: Array<{
|
|
7
|
+
role: 'user' | 'character';
|
|
8
|
+
content: string;
|
|
9
|
+
timestamp: number;
|
|
10
|
+
}>;
|
|
11
|
+
conversationId: string | null;
|
|
12
|
+
finalStance?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 策略实验室缓存条目
|
|
16
|
+
*/
|
|
17
|
+
interface StrategyLabCacheEntry {
|
|
18
|
+
decisions: DecisionData[];
|
|
19
|
+
simulationResults: SimulationResult[];
|
|
20
|
+
evaluations: StrategyEvaluationResult[];
|
|
21
|
+
conversationId: string | null;
|
|
22
|
+
currentDecisionIndex: number;
|
|
23
|
+
iterationCount: number;
|
|
24
|
+
characterDialogues?: Record<string, CharacterDialogueState>;
|
|
25
|
+
isInCharacterDialogue?: boolean;
|
|
26
|
+
/** 已拍定/跳过节点的归档(按 nodeId)。当前节点的工作态仍在上方零散字段 */
|
|
27
|
+
nodeStates?: NodeRuntimeState[];
|
|
28
|
+
/** 当前激活的节点下标 */
|
|
29
|
+
currentNodeIndex?: number;
|
|
30
|
+
/** 各节点拍定后计算的产出(注入下一节点的前提) */
|
|
31
|
+
nodeOutcomes?: NodeOutcome[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 策略实验室 Store 状态
|
|
35
|
+
*/
|
|
36
|
+
interface StrategyLabStoreState {
|
|
37
|
+
cache: Record<string, StrategyLabCacheEntry>;
|
|
38
|
+
saveStrategyLab: (stepId: string, data: StrategyLabCacheEntry) => void;
|
|
39
|
+
getStrategyLab: (stepId: string) => StrategyLabCacheEntry | undefined;
|
|
40
|
+
clearStep: (stepId: string) => void;
|
|
41
|
+
clearAll: () => void;
|
|
42
|
+
persistToStorage: () => void;
|
|
43
|
+
loadFromStorage: () => void;
|
|
44
|
+
}
|
|
45
|
+
export declare const useStrategyLabStore: import("zustand").UseBoundStore<import("zustand").StoreApi<StrategyLabStoreState>>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { TrainingModel, Stage, Step, EvaluationReport, StageAssessmentReport, Case, AbilityGrowthRecord } from '@shared/types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* 学生能力画像
|
|
4
|
+
*/
|
|
5
|
+
export interface StudentProfile {
|
|
6
|
+
studentId: string;
|
|
7
|
+
abilities: Record<string, number>;
|
|
8
|
+
strengths: string[];
|
|
9
|
+
weakPoints: string[];
|
|
10
|
+
history: ProfileHistory[];
|
|
11
|
+
abilityGrowth: AbilityGrowthRecord[];
|
|
12
|
+
categoryScores: {
|
|
13
|
+
basic: number;
|
|
14
|
+
core: number;
|
|
15
|
+
comprehensive: number;
|
|
16
|
+
};
|
|
17
|
+
completedSteps: string[];
|
|
18
|
+
totalTrainingTime: number;
|
|
19
|
+
}
|
|
20
|
+
interface ProfileHistory {
|
|
21
|
+
timestamp: number;
|
|
22
|
+
stepId: string;
|
|
23
|
+
ability: string;
|
|
24
|
+
oldValue: number;
|
|
25
|
+
newValue: number;
|
|
26
|
+
reason: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 实训状态接口
|
|
30
|
+
*/
|
|
31
|
+
interface TrainingState {
|
|
32
|
+
model: TrainingModel | null;
|
|
33
|
+
loading: boolean;
|
|
34
|
+
error: string | null;
|
|
35
|
+
currentStageIndex: number;
|
|
36
|
+
currentStepIndex: number;
|
|
37
|
+
sessionId: string | null;
|
|
38
|
+
studentData: Record<string, any>;
|
|
39
|
+
operationLog: any[];
|
|
40
|
+
evaluationHistory: EvaluationReport[];
|
|
41
|
+
currentEvaluation: EvaluationReport | null;
|
|
42
|
+
stageAssessing: boolean;
|
|
43
|
+
currentStageAssessment: StageAssessmentReport | null;
|
|
44
|
+
stageAssessmentHistory: StageAssessmentReport[];
|
|
45
|
+
studentProfile: StudentProfile | null;
|
|
46
|
+
currentCase: Case | null;
|
|
47
|
+
loadModel: (modelId: string) => Promise<void>;
|
|
48
|
+
setModel: (model: TrainingModel) => void;
|
|
49
|
+
nextStep: () => void;
|
|
50
|
+
previousStep: () => void;
|
|
51
|
+
nextStage: () => void;
|
|
52
|
+
previousStage: () => void;
|
|
53
|
+
goToStep: (stageIndex: number, stepIndex: number) => void;
|
|
54
|
+
updateStudentData: (stepId: string, data: any) => void;
|
|
55
|
+
addOperationLog: (log: any) => void;
|
|
56
|
+
addEvaluation: (evaluation: EvaluationReport) => void;
|
|
57
|
+
setCurrentEvaluation: (evaluation: EvaluationReport | null) => void;
|
|
58
|
+
initSession: (studentId: string) => Promise<void>;
|
|
59
|
+
saveToStorage: () => void;
|
|
60
|
+
loadFromStorage: (sessionId: string) => boolean;
|
|
61
|
+
reset: () => void;
|
|
62
|
+
initStudentProfile: (studentId: string) => void;
|
|
63
|
+
updateStudentProfile: (updates: Record<string, number>, strengths: string[], weakPoints: string[], stepId: string, reason: string) => void;
|
|
64
|
+
setCurrentCase: (caseData: Case | null) => void;
|
|
65
|
+
setStageAssessing: (assessing: boolean) => void;
|
|
66
|
+
setStageAssessment: (report: StageAssessmentReport | null) => void;
|
|
67
|
+
addStageAssessmentToHistory: (report: StageAssessmentReport) => void;
|
|
68
|
+
getCurrentStage: () => Stage | null;
|
|
69
|
+
getCurrentStep: () => Step | null;
|
|
70
|
+
isLastStep: () => boolean;
|
|
71
|
+
isLastStage: () => boolean;
|
|
72
|
+
isFirstStep: () => boolean;
|
|
73
|
+
isFirstStage: () => boolean;
|
|
74
|
+
getProgress: () => {
|
|
75
|
+
completed: number;
|
|
76
|
+
total: number;
|
|
77
|
+
percentage: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 实训状态管理 Store
|
|
82
|
+
*/
|
|
83
|
+
export declare const useTrainingStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TrainingState>>;
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI智能体指令类型定义
|
|
3
|
+
* AI通过返回结构化JSON指令来控制前端流程
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 评估指令 - 步骤完成后AI评估学生表现
|
|
7
|
+
*/
|
|
8
|
+
export interface EvaluationCommand {
|
|
9
|
+
type: 'evaluation';
|
|
10
|
+
data: {
|
|
11
|
+
stepId: string;
|
|
12
|
+
totalScore: number;
|
|
13
|
+
pass: boolean;
|
|
14
|
+
dimensions: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
score: number;
|
|
17
|
+
feedback: string;
|
|
18
|
+
errors?: string[];
|
|
19
|
+
suggestions?: string[];
|
|
20
|
+
}>;
|
|
21
|
+
highlights: string[];
|
|
22
|
+
improvements: string[];
|
|
23
|
+
nextStepAdvice: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 指导严重程度
|
|
28
|
+
*/
|
|
29
|
+
export type GuidanceSeverity = 'info' | 'warning' | 'error';
|
|
30
|
+
/**
|
|
31
|
+
* 实时指导指令 - 学生操作过程中AI给出提示
|
|
32
|
+
*/
|
|
33
|
+
export interface GuidanceCommand {
|
|
34
|
+
type: 'guidance';
|
|
35
|
+
severity: GuidanceSeverity;
|
|
36
|
+
data: {
|
|
37
|
+
fieldName?: string;
|
|
38
|
+
message: string;
|
|
39
|
+
suggestion?: string;
|
|
40
|
+
autoCorrect?: boolean;
|
|
41
|
+
correctValue?: any;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 对话角色类型
|
|
46
|
+
*/
|
|
47
|
+
export type DialogueRole = 'customer' | 'supervisor' | 'colleague';
|
|
48
|
+
/**
|
|
49
|
+
* 对话情绪
|
|
50
|
+
*/
|
|
51
|
+
export type DialogueEmotion = 'neutral' | 'happy' | 'confused' | 'angry';
|
|
52
|
+
/**
|
|
53
|
+
* 话术质量评价
|
|
54
|
+
*/
|
|
55
|
+
export type TalkQuality = 'excellent' | 'good' | 'average' | 'poor';
|
|
56
|
+
/**
|
|
57
|
+
* 对话指令 - AI陪练场景中AI扮演角色对话
|
|
58
|
+
*/
|
|
59
|
+
export interface DialogueCommand {
|
|
60
|
+
type: 'dialogue';
|
|
61
|
+
data: {
|
|
62
|
+
role: DialogueRole;
|
|
63
|
+
content: string;
|
|
64
|
+
emotion?: DialogueEmotion;
|
|
65
|
+
talkQuality?: TalkQuality;
|
|
66
|
+
feedback?: string;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 案例难度
|
|
71
|
+
*/
|
|
72
|
+
export type CaseDifficulty = 'easy' | 'medium' | 'hard';
|
|
73
|
+
/**
|
|
74
|
+
* 案例生成指令 - 动态生成新的实训案例
|
|
75
|
+
*/
|
|
76
|
+
export interface CaseGenerationCommand {
|
|
77
|
+
type: 'case_generation';
|
|
78
|
+
data: {
|
|
79
|
+
caseId: string;
|
|
80
|
+
caseType: string;
|
|
81
|
+
difficulty: CaseDifficulty;
|
|
82
|
+
scenario: string;
|
|
83
|
+
customerInfo: any;
|
|
84
|
+
businessData: any;
|
|
85
|
+
stepAnswers?: Record<string, any>;
|
|
86
|
+
riskPoints?: string[];
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 能力画像更新指令 - 根据学生表现更新能力画像
|
|
91
|
+
*/
|
|
92
|
+
export interface ProfileUpdateCommand {
|
|
93
|
+
type: 'profile_update';
|
|
94
|
+
data: {
|
|
95
|
+
studentId: string;
|
|
96
|
+
updates: {
|
|
97
|
+
[abilityName: string]: number;
|
|
98
|
+
};
|
|
99
|
+
weakPoints: string[];
|
|
100
|
+
strengths: string[];
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 提示词策略
|
|
105
|
+
*/
|
|
106
|
+
export type PromptStrategy = 'detailed' | 'concise' | 'encouraging' | 'strict';
|
|
107
|
+
/**
|
|
108
|
+
* 提示词优化指令 - AI根据上下文优化后续提示词策略
|
|
109
|
+
*/
|
|
110
|
+
export interface PromptOptimizationCommand {
|
|
111
|
+
type: 'prompt_optimization';
|
|
112
|
+
data: {
|
|
113
|
+
nextPromptStrategy: PromptStrategy;
|
|
114
|
+
reason: string;
|
|
115
|
+
adjustments: {
|
|
116
|
+
increaseHints?: boolean;
|
|
117
|
+
decreaseHints?: boolean;
|
|
118
|
+
focusAreas?: string[];
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* AI指令联合类型
|
|
124
|
+
*/
|
|
125
|
+
export type AICommand = EvaluationCommand | GuidanceCommand | DialogueCommand | CaseGenerationCommand | ProfileUpdateCommand | PromptOptimizationCommand;
|
|
126
|
+
/**
|
|
127
|
+
* 指令类型字符串
|
|
128
|
+
*/
|
|
129
|
+
export type AICommandType = AICommand['type'];
|
|
130
|
+
/**
|
|
131
|
+
* 指令优先级配置
|
|
132
|
+
*/
|
|
133
|
+
export declare const COMMAND_PRIORITY: Record<AICommandType, number>;
|
|
134
|
+
/**
|
|
135
|
+
* 指令验证结果
|
|
136
|
+
*/
|
|
137
|
+
export interface CommandValidationResult {
|
|
138
|
+
valid: boolean;
|
|
139
|
+
error?: string;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 验证AI指令格式
|
|
143
|
+
*/
|
|
144
|
+
export declare function validateAICommand(command: any): CommandValidationResult;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FormField } from './plugins/shared/types';
|
|
2
|
+
export interface FormTemplate {
|
|
3
|
+
formName: string;
|
|
4
|
+
mode: 'create' | 'edit';
|
|
5
|
+
fields?: FormField[];
|
|
6
|
+
}
|
|
7
|
+
export interface TrainingStep {
|
|
8
|
+
stepName: string;
|
|
9
|
+
initData?: any;
|
|
10
|
+
}
|
|
11
|
+
export interface TrainingStage {
|
|
12
|
+
steps: TrainingStep[];
|
|
13
|
+
}
|
|
14
|
+
export interface TrainingModel {
|
|
15
|
+
stages: TrainingStage[];
|
|
16
|
+
}
|
|
17
|
+
export type { FormField };
|