empathy-framework 4.6.6__py3-none-any.whl → 4.7.1__py3-none-any.whl
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.
- empathy_framework-4.7.1.dist-info/METADATA +690 -0
- empathy_framework-4.7.1.dist-info/RECORD +379 -0
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/top_level.txt +1 -2
- empathy_healthcare_plugin/monitors/monitoring/__init__.py +9 -9
- empathy_llm_toolkit/agent_factory/__init__.py +6 -6
- empathy_llm_toolkit/agent_factory/adapters/wizard_adapter.py +7 -10
- empathy_llm_toolkit/agents_md/__init__.py +22 -0
- empathy_llm_toolkit/agents_md/loader.py +218 -0
- empathy_llm_toolkit/agents_md/parser.py +271 -0
- empathy_llm_toolkit/agents_md/registry.py +307 -0
- empathy_llm_toolkit/commands/__init__.py +51 -0
- empathy_llm_toolkit/commands/context.py +375 -0
- empathy_llm_toolkit/commands/loader.py +301 -0
- empathy_llm_toolkit/commands/models.py +231 -0
- empathy_llm_toolkit/commands/parser.py +371 -0
- empathy_llm_toolkit/commands/registry.py +429 -0
- empathy_llm_toolkit/config/__init__.py +8 -8
- empathy_llm_toolkit/config/unified.py +3 -7
- empathy_llm_toolkit/context/__init__.py +22 -0
- empathy_llm_toolkit/context/compaction.py +455 -0
- empathy_llm_toolkit/context/manager.py +434 -0
- empathy_llm_toolkit/hooks/__init__.py +24 -0
- empathy_llm_toolkit/hooks/config.py +306 -0
- empathy_llm_toolkit/hooks/executor.py +289 -0
- empathy_llm_toolkit/hooks/registry.py +302 -0
- empathy_llm_toolkit/hooks/scripts/__init__.py +39 -0
- empathy_llm_toolkit/hooks/scripts/evaluate_session.py +201 -0
- empathy_llm_toolkit/hooks/scripts/first_time_init.py +285 -0
- empathy_llm_toolkit/hooks/scripts/pre_compact.py +207 -0
- empathy_llm_toolkit/hooks/scripts/session_end.py +183 -0
- empathy_llm_toolkit/hooks/scripts/session_start.py +163 -0
- empathy_llm_toolkit/hooks/scripts/suggest_compact.py +225 -0
- empathy_llm_toolkit/learning/__init__.py +30 -0
- empathy_llm_toolkit/learning/evaluator.py +438 -0
- empathy_llm_toolkit/learning/extractor.py +514 -0
- empathy_llm_toolkit/learning/storage.py +560 -0
- empathy_llm_toolkit/providers.py +4 -11
- empathy_llm_toolkit/security/__init__.py +17 -17
- empathy_llm_toolkit/utils/tokens.py +2 -5
- empathy_os/__init__.py +202 -70
- empathy_os/cache_monitor.py +5 -3
- empathy_os/cli/__init__.py +11 -55
- empathy_os/cli/__main__.py +29 -15
- empathy_os/cli/commands/inspection.py +21 -12
- empathy_os/cli/commands/memory.py +4 -12
- empathy_os/cli/commands/profiling.py +198 -0
- empathy_os/cli/commands/utilities.py +27 -7
- empathy_os/cli.py +28 -57
- empathy_os/cli_unified.py +525 -1164
- empathy_os/cost_tracker.py +9 -3
- empathy_os/dashboard/server.py +200 -2
- empathy_os/hot_reload/__init__.py +7 -7
- empathy_os/hot_reload/config.py +6 -7
- empathy_os/hot_reload/integration.py +35 -35
- empathy_os/hot_reload/reloader.py +57 -57
- empathy_os/hot_reload/watcher.py +28 -28
- empathy_os/hot_reload/websocket.py +2 -2
- empathy_os/memory/__init__.py +11 -4
- empathy_os/memory/claude_memory.py +1 -1
- empathy_os/memory/cross_session.py +8 -12
- empathy_os/memory/edges.py +6 -6
- empathy_os/memory/file_session.py +770 -0
- empathy_os/memory/graph.py +30 -30
- empathy_os/memory/nodes.py +6 -6
- empathy_os/memory/short_term.py +15 -9
- empathy_os/memory/unified.py +606 -140
- empathy_os/meta_workflows/agent_creator.py +3 -9
- empathy_os/meta_workflows/cli_meta_workflows.py +113 -53
- empathy_os/meta_workflows/form_engine.py +6 -18
- empathy_os/meta_workflows/intent_detector.py +64 -24
- empathy_os/meta_workflows/models.py +3 -1
- empathy_os/meta_workflows/pattern_learner.py +13 -31
- empathy_os/meta_workflows/plan_generator.py +55 -47
- empathy_os/meta_workflows/session_context.py +2 -3
- empathy_os/meta_workflows/workflow.py +20 -51
- empathy_os/models/cli.py +2 -2
- empathy_os/models/tasks.py +1 -2
- empathy_os/models/telemetry.py +4 -1
- empathy_os/models/token_estimator.py +3 -1
- empathy_os/monitoring/alerts.py +938 -9
- empathy_os/monitoring/alerts_cli.py +346 -183
- empathy_os/orchestration/execution_strategies.py +12 -29
- empathy_os/orchestration/pattern_learner.py +20 -26
- empathy_os/orchestration/real_tools.py +6 -15
- empathy_os/platform_utils.py +2 -1
- empathy_os/plugins/__init__.py +2 -2
- empathy_os/plugins/base.py +64 -64
- empathy_os/plugins/registry.py +32 -32
- empathy_os/project_index/index.py +49 -15
- empathy_os/project_index/models.py +1 -2
- empathy_os/project_index/reports.py +1 -1
- empathy_os/project_index/scanner.py +1 -0
- empathy_os/redis_memory.py +10 -7
- empathy_os/resilience/__init__.py +1 -1
- empathy_os/resilience/health.py +10 -10
- empathy_os/routing/__init__.py +7 -7
- empathy_os/routing/chain_executor.py +37 -37
- empathy_os/routing/classifier.py +36 -36
- empathy_os/routing/smart_router.py +40 -40
- empathy_os/routing/{wizard_registry.py → workflow_registry.py} +47 -47
- empathy_os/scaffolding/__init__.py +8 -8
- empathy_os/scaffolding/__main__.py +1 -1
- empathy_os/scaffolding/cli.py +28 -28
- empathy_os/socratic/__init__.py +3 -19
- empathy_os/socratic/ab_testing.py +25 -36
- empathy_os/socratic/blueprint.py +38 -38
- empathy_os/socratic/cli.py +34 -20
- empathy_os/socratic/collaboration.py +30 -28
- empathy_os/socratic/domain_templates.py +9 -1
- empathy_os/socratic/embeddings.py +17 -13
- empathy_os/socratic/engine.py +135 -70
- empathy_os/socratic/explainer.py +70 -60
- empathy_os/socratic/feedback.py +24 -19
- empathy_os/socratic/forms.py +15 -10
- empathy_os/socratic/generator.py +51 -35
- empathy_os/socratic/llm_analyzer.py +25 -23
- empathy_os/socratic/mcp_server.py +99 -159
- empathy_os/socratic/session.py +19 -13
- empathy_os/socratic/storage.py +98 -67
- empathy_os/socratic/success.py +38 -27
- empathy_os/socratic/visual_editor.py +51 -39
- empathy_os/socratic/web_ui.py +99 -66
- empathy_os/telemetry/cli.py +3 -1
- empathy_os/telemetry/usage_tracker.py +1 -3
- empathy_os/test_generator/__init__.py +3 -3
- empathy_os/test_generator/cli.py +28 -28
- empathy_os/test_generator/generator.py +64 -66
- empathy_os/test_generator/risk_analyzer.py +11 -11
- empathy_os/vscode_bridge 2.py +173 -0
- empathy_os/vscode_bridge.py +173 -0
- empathy_os/workflows/__init__.py +212 -120
- empathy_os/workflows/batch_processing.py +8 -24
- empathy_os/workflows/bug_predict.py +1 -1
- empathy_os/workflows/code_review.py +20 -5
- empathy_os/workflows/code_review_pipeline.py +13 -8
- empathy_os/workflows/keyboard_shortcuts/workflow.py +6 -2
- empathy_os/workflows/manage_documentation.py +1 -0
- empathy_os/workflows/orchestrated_health_check.py +6 -11
- empathy_os/workflows/orchestrated_release_prep.py +3 -3
- empathy_os/workflows/pr_review.py +18 -10
- empathy_os/workflows/progressive/README 2.md +454 -0
- empathy_os/workflows/progressive/__init__ 2.py +92 -0
- empathy_os/workflows/progressive/__init__.py +2 -12
- empathy_os/workflows/progressive/cli 2.py +242 -0
- empathy_os/workflows/progressive/cli.py +14 -37
- empathy_os/workflows/progressive/core 2.py +488 -0
- empathy_os/workflows/progressive/core.py +12 -12
- empathy_os/workflows/progressive/orchestrator 2.py +701 -0
- empathy_os/workflows/progressive/orchestrator.py +166 -144
- empathy_os/workflows/progressive/reports 2.py +528 -0
- empathy_os/workflows/progressive/reports.py +22 -31
- empathy_os/workflows/progressive/telemetry 2.py +280 -0
- empathy_os/workflows/progressive/telemetry.py +8 -14
- empathy_os/workflows/progressive/test_gen 2.py +514 -0
- empathy_os/workflows/progressive/test_gen.py +29 -48
- empathy_os/workflows/progressive/workflow 2.py +628 -0
- empathy_os/workflows/progressive/workflow.py +31 -70
- empathy_os/workflows/release_prep.py +21 -6
- empathy_os/workflows/release_prep_crew.py +1 -0
- empathy_os/workflows/secure_release.py +13 -6
- empathy_os/workflows/security_audit.py +8 -3
- empathy_os/workflows/test_coverage_boost_crew.py +3 -2
- empathy_os/workflows/test_maintenance_crew.py +1 -0
- empathy_os/workflows/test_runner.py +16 -12
- empathy_software_plugin/SOFTWARE_PLUGIN_README.md +25 -703
- empathy_software_plugin/cli.py +0 -122
- patterns/README.md +119 -0
- patterns/__init__.py +95 -0
- patterns/behavior.py +298 -0
- patterns/code_review_memory.json +441 -0
- patterns/core.py +97 -0
- patterns/debugging.json +3763 -0
- patterns/empathy.py +268 -0
- patterns/health_check_memory.json +505 -0
- patterns/input.py +161 -0
- patterns/memory_graph.json +8 -0
- patterns/refactoring_memory.json +1113 -0
- patterns/registry.py +663 -0
- patterns/security_memory.json +8 -0
- patterns/structural.py +415 -0
- patterns/validation.py +194 -0
- coach_wizards/__init__.py +0 -45
- coach_wizards/accessibility_wizard.py +0 -91
- coach_wizards/api_wizard.py +0 -91
- coach_wizards/base_wizard.py +0 -209
- coach_wizards/cicd_wizard.py +0 -91
- coach_wizards/code_reviewer_README.md +0 -60
- coach_wizards/code_reviewer_wizard.py +0 -180
- coach_wizards/compliance_wizard.py +0 -91
- coach_wizards/database_wizard.py +0 -91
- coach_wizards/debugging_wizard.py +0 -91
- coach_wizards/documentation_wizard.py +0 -91
- coach_wizards/generate_wizards.py +0 -347
- coach_wizards/localization_wizard.py +0 -173
- coach_wizards/migration_wizard.py +0 -91
- coach_wizards/monitoring_wizard.py +0 -91
- coach_wizards/observability_wizard.py +0 -91
- coach_wizards/performance_wizard.py +0 -91
- coach_wizards/prompt_engineering_wizard.py +0 -661
- coach_wizards/refactoring_wizard.py +0 -91
- coach_wizards/scaling_wizard.py +0 -90
- coach_wizards/security_wizard.py +0 -92
- coach_wizards/testing_wizard.py +0 -91
- empathy_framework-4.6.6.dist-info/METADATA +0 -1597
- empathy_framework-4.6.6.dist-info/RECORD +0 -410
- empathy_llm_toolkit/wizards/__init__.py +0 -43
- empathy_llm_toolkit/wizards/base_wizard.py +0 -364
- empathy_llm_toolkit/wizards/customer_support_wizard.py +0 -190
- empathy_llm_toolkit/wizards/healthcare_wizard.py +0 -378
- empathy_llm_toolkit/wizards/patient_assessment_README.md +0 -64
- empathy_llm_toolkit/wizards/patient_assessment_wizard.py +0 -193
- empathy_llm_toolkit/wizards/technology_wizard.py +0 -209
- empathy_os/wizard_factory_cli.py +0 -170
- empathy_software_plugin/wizards/__init__.py +0 -42
- empathy_software_plugin/wizards/advanced_debugging_wizard.py +0 -395
- empathy_software_plugin/wizards/agent_orchestration_wizard.py +0 -511
- empathy_software_plugin/wizards/ai_collaboration_wizard.py +0 -503
- empathy_software_plugin/wizards/ai_context_wizard.py +0 -441
- empathy_software_plugin/wizards/ai_documentation_wizard.py +0 -503
- empathy_software_plugin/wizards/base_wizard.py +0 -288
- empathy_software_plugin/wizards/book_chapter_wizard.py +0 -519
- empathy_software_plugin/wizards/code_review_wizard.py +0 -604
- empathy_software_plugin/wizards/debugging/__init__.py +0 -50
- empathy_software_plugin/wizards/debugging/bug_risk_analyzer.py +0 -414
- empathy_software_plugin/wizards/debugging/config_loaders.py +0 -446
- empathy_software_plugin/wizards/debugging/fix_applier.py +0 -469
- empathy_software_plugin/wizards/debugging/language_patterns.py +0 -385
- empathy_software_plugin/wizards/debugging/linter_parsers.py +0 -470
- empathy_software_plugin/wizards/debugging/verification.py +0 -369
- empathy_software_plugin/wizards/enhanced_testing_wizard.py +0 -537
- empathy_software_plugin/wizards/memory_enhanced_debugging_wizard.py +0 -816
- empathy_software_plugin/wizards/multi_model_wizard.py +0 -501
- empathy_software_plugin/wizards/pattern_extraction_wizard.py +0 -422
- empathy_software_plugin/wizards/pattern_retriever_wizard.py +0 -400
- empathy_software_plugin/wizards/performance/__init__.py +0 -9
- empathy_software_plugin/wizards/performance/bottleneck_detector.py +0 -221
- empathy_software_plugin/wizards/performance/profiler_parsers.py +0 -278
- empathy_software_plugin/wizards/performance/trajectory_analyzer.py +0 -429
- empathy_software_plugin/wizards/performance_profiling_wizard.py +0 -305
- empathy_software_plugin/wizards/prompt_engineering_wizard.py +0 -425
- empathy_software_plugin/wizards/rag_pattern_wizard.py +0 -461
- empathy_software_plugin/wizards/security/__init__.py +0 -32
- empathy_software_plugin/wizards/security/exploit_analyzer.py +0 -290
- empathy_software_plugin/wizards/security/owasp_patterns.py +0 -241
- empathy_software_plugin/wizards/security/vulnerability_scanner.py +0 -604
- empathy_software_plugin/wizards/security_analysis_wizard.py +0 -322
- empathy_software_plugin/wizards/security_learning_wizard.py +0 -740
- empathy_software_plugin/wizards/tech_debt_wizard.py +0 -726
- empathy_software_plugin/wizards/testing/__init__.py +0 -27
- empathy_software_plugin/wizards/testing/coverage_analyzer.py +0 -459
- empathy_software_plugin/wizards/testing/quality_analyzer.py +0 -525
- empathy_software_plugin/wizards/testing/test_suggester.py +0 -533
- empathy_software_plugin/wizards/testing_wizard.py +0 -274
- wizards/__init__.py +0 -82
- wizards/admission_assessment_wizard.py +0 -644
- wizards/care_plan.py +0 -321
- wizards/clinical_assessment.py +0 -769
- wizards/discharge_planning.py +0 -77
- wizards/discharge_summary_wizard.py +0 -468
- wizards/dosage_calculation.py +0 -497
- wizards/incident_report_wizard.py +0 -454
- wizards/medication_reconciliation.py +0 -85
- wizards/nursing_assessment.py +0 -171
- wizards/patient_education.py +0 -654
- wizards/quality_improvement.py +0 -705
- wizards/sbar_report.py +0 -324
- wizards/sbar_wizard.py +0 -608
- wizards/shift_handoff_wizard.py +0 -535
- wizards/soap_note_wizard.py +0 -679
- wizards/treatment_plan.py +0 -15
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/WHEEL +0 -0
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/entry_points.txt +0 -0
- {empathy_framework-4.6.6.dist-info → empathy_framework-4.7.1.dist-info}/licenses/LICENSE +0 -0
wizards/nursing_assessment.py
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Nursing Assessment Wizard - AI Nurse Florence
|
|
3
|
-
Following Wizard Pattern Implementation from coding instructions
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from datetime import datetime
|
|
7
|
-
from typing import Any
|
|
8
|
-
from uuid import uuid4
|
|
9
|
-
|
|
10
|
-
from fastapi import APIRouter, HTTPException, status
|
|
11
|
-
from pydantic import BaseModel, Field
|
|
12
|
-
from src.utils.config import get_educational_banner
|
|
13
|
-
|
|
14
|
-
router = APIRouter(
|
|
15
|
-
prefix="/wizard/nursing-assessment",
|
|
16
|
-
tags=["wizards", "nursing-assessment"],
|
|
17
|
-
responses={
|
|
18
|
-
404: {"description": "Wizard session not found"},
|
|
19
|
-
422: {"description": "Invalid step data"},
|
|
20
|
-
},
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
# In-memory session storage (Redis in production)
|
|
24
|
-
_wizard_sessions: dict[str, dict[str, Any]] = {}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class NursingAssessmentStep(BaseModel):
|
|
28
|
-
"""Pydantic model for nursing assessment step following API Design Standards."""
|
|
29
|
-
|
|
30
|
-
patient_id: str | None = Field(None, description="Patient identifier")
|
|
31
|
-
assessment_type: str = Field(..., description="Type of assessment (initial, focused, etc.)")
|
|
32
|
-
vital_signs: dict[str, Any] | None = Field(None, description="Vital signs data")
|
|
33
|
-
pain_assessment: dict[str, Any] | None = Field(None, description="Pain assessment data")
|
|
34
|
-
mobility_status: str | None = Field(None, description="Patient mobility status")
|
|
35
|
-
cognitive_status: str | None = Field(None, description="Cognitive assessment")
|
|
36
|
-
notes: str | None = Field(None, description="Additional assessment notes")
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class WizardResponse(BaseModel):
|
|
40
|
-
"""Wizard response following API Design Standards."""
|
|
41
|
-
|
|
42
|
-
wizard_id: str
|
|
43
|
-
current_step: int
|
|
44
|
-
total_steps: int
|
|
45
|
-
step_name: str
|
|
46
|
-
prompt: str
|
|
47
|
-
completed: bool = False
|
|
48
|
-
banner: str = Field(default_factory=get_educational_banner)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@router.post("/start", response_model=WizardResponse)
|
|
52
|
-
async def start_nursing_assessment():
|
|
53
|
-
"""
|
|
54
|
-
Start nursing assessment wizard following Wizard Pattern Implementation.
|
|
55
|
-
Creates new wizard session with UUID-based tracking.
|
|
56
|
-
"""
|
|
57
|
-
wizard_id = str(uuid4())
|
|
58
|
-
|
|
59
|
-
# Initialize session following session state pattern
|
|
60
|
-
_wizard_sessions[wizard_id] = {
|
|
61
|
-
"created_at": datetime.now().isoformat(),
|
|
62
|
-
"current_step": 1,
|
|
63
|
-
"total_steps": 5,
|
|
64
|
-
"completed": False,
|
|
65
|
-
"data": {},
|
|
66
|
-
"step_names": [
|
|
67
|
-
"Patient Information",
|
|
68
|
-
"Vital Signs Assessment",
|
|
69
|
-
"Pain & Comfort Assessment",
|
|
70
|
-
"Mobility & Safety Assessment",
|
|
71
|
-
"Review & Documentation",
|
|
72
|
-
],
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return WizardResponse(
|
|
76
|
-
wizard_id=wizard_id,
|
|
77
|
-
current_step=1,
|
|
78
|
-
total_steps=5,
|
|
79
|
-
step_name="Patient Information",
|
|
80
|
-
prompt="Please provide patient identification and assessment type. What type of nursing assessment are you conducting?",
|
|
81
|
-
banner=get_educational_banner(),
|
|
82
|
-
)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
@router.post("/{wizard_id}/step", response_model=WizardResponse)
|
|
86
|
-
async def submit_assessment_step(wizard_id: str, step_data: NursingAssessmentStep):
|
|
87
|
-
"""
|
|
88
|
-
Submit nursing assessment step following Wizard Pattern Implementation.
|
|
89
|
-
Validates step data and advances wizard state.
|
|
90
|
-
"""
|
|
91
|
-
if wizard_id not in _wizard_sessions:
|
|
92
|
-
raise HTTPException(
|
|
93
|
-
status_code=status.HTTP_404_NOT_FOUND, detail="Wizard session not found"
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
session = _wizard_sessions[wizard_id]
|
|
97
|
-
|
|
98
|
-
if session["completed"]:
|
|
99
|
-
raise HTTPException(
|
|
100
|
-
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, detail="Wizard already completed"
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
# Store step data following session state pattern
|
|
104
|
-
current_step = session["current_step"]
|
|
105
|
-
session["data"][f"step_{current_step}"] = step_data.model_dump(exclude_none=True)
|
|
106
|
-
|
|
107
|
-
# Advance to next step
|
|
108
|
-
next_step = current_step + 1
|
|
109
|
-
|
|
110
|
-
if next_step > session["total_steps"]:
|
|
111
|
-
# Mark as completed
|
|
112
|
-
session["completed"] = True
|
|
113
|
-
session["completed_at"] = datetime.now().isoformat()
|
|
114
|
-
|
|
115
|
-
return WizardResponse(
|
|
116
|
-
wizard_id=wizard_id,
|
|
117
|
-
current_step=session["total_steps"],
|
|
118
|
-
total_steps=session["total_steps"],
|
|
119
|
-
step_name="Assessment Complete",
|
|
120
|
-
prompt="Nursing assessment completed successfully. Review documentation for accuracy.",
|
|
121
|
-
completed=True,
|
|
122
|
-
banner=get_educational_banner(),
|
|
123
|
-
)
|
|
124
|
-
|
|
125
|
-
# Continue to next step
|
|
126
|
-
session["current_step"] = next_step
|
|
127
|
-
step_prompts = [
|
|
128
|
-
"Enter vital signs (temperature, pulse, respirations, blood pressure, oxygen saturation)",
|
|
129
|
-
"Assess pain level using appropriate pain scale and comfort measures",
|
|
130
|
-
"Evaluate mobility status, fall risk, and safety considerations",
|
|
131
|
-
"Review all assessment data and add final documentation notes",
|
|
132
|
-
]
|
|
133
|
-
|
|
134
|
-
return WizardResponse(
|
|
135
|
-
wizard_id=wizard_id,
|
|
136
|
-
current_step=next_step,
|
|
137
|
-
total_steps=session["total_steps"],
|
|
138
|
-
step_name=session["step_names"][next_step - 1],
|
|
139
|
-
prompt=(
|
|
140
|
-
step_prompts[next_step - 2]
|
|
141
|
-
if next_step <= len(step_prompts) + 1
|
|
142
|
-
else "Complete assessment"
|
|
143
|
-
),
|
|
144
|
-
banner=get_educational_banner(),
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
@router.get("/{wizard_id}/status", response_model=WizardResponse)
|
|
149
|
-
async def get_assessment_status(wizard_id: str):
|
|
150
|
-
"""Get current wizard status following Wizard Pattern Implementation."""
|
|
151
|
-
if wizard_id not in _wizard_sessions:
|
|
152
|
-
raise HTTPException(
|
|
153
|
-
status_code=status.HTTP_404_NOT_FOUND, detail="Wizard session not found"
|
|
154
|
-
)
|
|
155
|
-
|
|
156
|
-
session = _wizard_sessions[wizard_id]
|
|
157
|
-
current_step = session["current_step"]
|
|
158
|
-
|
|
159
|
-
return WizardResponse(
|
|
160
|
-
wizard_id=wizard_id,
|
|
161
|
-
current_step=current_step,
|
|
162
|
-
total_steps=session["total_steps"],
|
|
163
|
-
step_name=(
|
|
164
|
-
session["step_names"][current_step - 1]
|
|
165
|
-
if current_step <= len(session["step_names"])
|
|
166
|
-
else "Complete"
|
|
167
|
-
),
|
|
168
|
-
prompt=f"Currently on step {current_step} of {session['total_steps']}",
|
|
169
|
-
completed=session["completed"],
|
|
170
|
-
banner=get_educational_banner(),
|
|
171
|
-
)
|