clawed 2.0.1__tar.gz → 2.0.3__tar.gz
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.
- {clawed-2.0.1 → clawed-2.0.3}/PKG-INFO +1 -1
- {clawed-2.0.1 → clawed-2.0.3}/clawed/__init__.py +1 -1
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/generate.py +25 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/lesson.py +9 -2
- {clawed-2.0.1 → clawed-2.0.3}/pyproject.toml +1 -1
- {clawed-2.0.1 → clawed-2.0.3}/.gitignore +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/LICENSE +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/README.md +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/__main__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/_legacy_gateway.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/approvals.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/autonomy.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/context.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/core.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/custom_tools.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/drive/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/drive/auth.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/drive/client.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/fake_llm.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/loop.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/curriculum.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/curriculum_kb.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/embeddings.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/episodes.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/identity.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/loader.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/memory/preferences.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/planner.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/prompt.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/scheduler.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/base.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/configure_profile.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/curriculum_map.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/drive_create_doc.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/drive_create_slides.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/drive_list.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/drive_organize.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/drive_read.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/drive_upload.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/export_document.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/gap_analysis.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/generate_assessment.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/generate_lesson.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/generate_lesson_bundle.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/generate_materials.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/generate_unit.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/ingest_materials.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/parent_comm.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/read_heartbeat.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/read_workspace.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/request_approval.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/schedule_task.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/search_lessons.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/search_my_materials.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/search_standards.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/student_insights.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/sub_packet.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/switch_model.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/agent_core/tools/update_soul.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/analytics.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/deps.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/chat.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/export.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/feedback.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/gateway_chat.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/generate.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/ingest.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/lessons.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/school.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/settings.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/routes/tools.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/server.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/static/app.js +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/static/style.css +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/static/widget.js +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/analytics.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/base.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/dashboard.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/generate.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/index.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/lesson.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/profile.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/settings.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/stats.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/api/templates/students.html +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/assessment.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/auth/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/auth/google_auth.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/bot_state.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/chat.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/cli.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/cli_chat.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/_helpers.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/bot.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/config.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/config_llm.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/config_profile.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/export.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/generate_assessment.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/generate_unit.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/queue.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/schedule_cmd.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/sub.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/commands/workspace_cmd.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/config.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/corpus.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/curriculum_map.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/database.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/demo/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/demo/demo_assessment.json +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/demo/demo_lesson_science_g6.json +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/demo/demo_lesson_social_studies_g8.json +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/demo/demo_unit_plan.json +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/differentiation.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/doc_export.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/drive.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/evaluation.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_docx.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_handout.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_markdown.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_pdf.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_pptx.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_templates.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/export_theme.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/exporter.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/feedback.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/formats/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/formats/flipchart.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/formats/notebook.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/formats/xbk.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/gateway.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/gateway_response.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/generation.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/export.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/feedback.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/gaps.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/generate.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/ingest.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/misc.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/onboard.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/schedule.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/handlers/standards.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/improver.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/ingestor.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/io.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/llm.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/materials.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/mcp_server.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/memory_engine.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/model_router.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/models.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/onboarding.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/openclaw_plugin.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/parent_comm.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/persona.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/planner.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/504_accommodations.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/assessment.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/curriculum_gaps.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/dbq_assessment.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/differentiation.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/formative_assessment.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/iep_modification.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/lesson_plan.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/pacing_guide.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/parent_note.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/persona_extract.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/quiz.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/rubric.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/sub_packet.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/summative_assessment.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/tiered_assignments.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/unit_plan.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/worksheet.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/prompts/year_map.txt +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/quality.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/reading_report.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/router.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/sanitize.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/scheduler.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/school.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/search.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/art.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/base.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/computer_science.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/ela.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/foreign_language.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/history.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/library.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/math.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/music.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/physical_education.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/science.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/social_studies.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/skills/special_education.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/slide_images.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/standards.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/state.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/state_standards.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/student_bot.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/student_cli.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/student_telegram_bot.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/sub_packet.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/task_queue.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/templates_lib.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/tools.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/transports/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/transports/cli.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/transports/openclaw.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/transports/student_telegram.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/transports/telegram.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/transports/web.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/tui.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/tui_chat.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/voice.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/clawed/workspace.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/eduagent/__init__.py +0 -0
- {clawed-2.0.1 → clawed-2.0.3}/eduagent/_compat.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: clawed
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.3
|
|
4
4
|
Summary: Claw-ED — personal AI teaching agent. Learns your voice, works while you sleep.
|
|
5
5
|
Project-URL: Homepage, https://github.com/SirhanMacx/Claw-ED
|
|
6
6
|
Project-URL: Documentation, https://github.com/SirhanMacx/Claw-ED#readme
|
|
@@ -17,7 +17,7 @@ if hasattr(sys.stderr, "reconfigure"):
|
|
|
17
17
|
except Exception:
|
|
18
18
|
pass
|
|
19
19
|
|
|
20
|
-
__version__ = "2.0.
|
|
20
|
+
__version__ = "2.0.3"
|
|
21
21
|
__author__ = "Jon Maccarello & Claw-ED contributors"
|
|
22
22
|
__description__ = "Personal AI teaching agent. Learns your voice, works while you sleep."
|
|
23
23
|
|
|
@@ -246,6 +246,30 @@ def lesson(
|
|
|
246
246
|
)
|
|
247
247
|
lesson_num = 1
|
|
248
248
|
|
|
249
|
+
# ── Search curriculum KB for teacher's existing materials ──────
|
|
250
|
+
kb_prompt_section = ""
|
|
251
|
+
try:
|
|
252
|
+
from clawed.agent_core.memory.curriculum_kb import CurriculumKB
|
|
253
|
+
kb = CurriculumKB()
|
|
254
|
+
kb_results = kb.search("default", topic, top_k=3)
|
|
255
|
+
if kb_results:
|
|
256
|
+
kb_parts = [r for r in kb_results if r.get("similarity", 0) > 0.1]
|
|
257
|
+
if kb_parts:
|
|
258
|
+
kb_prompt_section = (
|
|
259
|
+
"Teacher's Existing Materials on This Topic\n"
|
|
260
|
+
"The teacher has created content on this topic before. "
|
|
261
|
+
"Reference and build on their existing work:\n\n"
|
|
262
|
+
+ "\n\n".join(
|
|
263
|
+
f"From \"{r['doc_title']}\":\n{r['chunk_text'][:500]}"
|
|
264
|
+
for r in kb_parts
|
|
265
|
+
)
|
|
266
|
+
+ "\n\nUse these materials as a foundation. Reference the teacher's existing "
|
|
267
|
+
"lessons, reuse their graphic organizer formats, build on their approach."
|
|
268
|
+
)
|
|
269
|
+
console.print(f"[dim]Found {len(kb_parts)} existing materials on this topic[/dim]")
|
|
270
|
+
except Exception:
|
|
271
|
+
pass
|
|
272
|
+
|
|
249
273
|
with _safe_progress(console=console) as progress:
|
|
250
274
|
task = progress.add_task(
|
|
251
275
|
f"Generating lesson {lesson_num}...", total=None
|
|
@@ -256,6 +280,7 @@ def lesson(
|
|
|
256
280
|
unit=unit_plan,
|
|
257
281
|
persona=persona,
|
|
258
282
|
include_homework=homework,
|
|
283
|
+
teacher_materials=kb_prompt_section,
|
|
259
284
|
)
|
|
260
285
|
)
|
|
261
286
|
progress.update(task, description="Lesson plan complete!")
|
|
@@ -111,8 +111,15 @@ async def generate_lesson(
|
|
|
111
111
|
pass
|
|
112
112
|
|
|
113
113
|
system_parts = [
|
|
114
|
-
"You are an expert lesson plan writer who EXACTLY
|
|
115
|
-
"
|
|
114
|
+
"You are an expert lesson plan writer who EXACTLY replicates "
|
|
115
|
+
"this teacher's pedagogical fingerprint in EVERY lesson. "
|
|
116
|
+
"This means: use their specific graphic organizers (INSPECT charts, T-charts, etc.), "
|
|
117
|
+
"their activity structures (jigsaw, pair role division, desk islands), "
|
|
118
|
+
"their Do Now format (multi-part visual analysis), their scaffolding moves "
|
|
119
|
+
"(writing frames, sentence starters, pre-taught vocabulary with icons), "
|
|
120
|
+
"and their signature teaching moves. If the persona says they use INSPECT charts, "
|
|
121
|
+
"the lesson MUST include an INSPECT chart. If they cold-call students, script cold calls. "
|
|
122
|
+
"If they say 'what is this source NOT telling us,' include that exact prompt.",
|
|
116
123
|
]
|
|
117
124
|
if persona_context:
|
|
118
125
|
system_parts.append(persona_context)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|