clawed 2.0.2__tar.gz → 2.0.4__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.
Files changed (227) hide show
  1. {clawed-2.0.2 → clawed-2.0.4}/PKG-INFO +1 -1
  2. {clawed-2.0.2 → clawed-2.0.4}/clawed/__init__.py +1 -1
  3. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/generate.py +50 -1
  4. {clawed-2.0.2 → clawed-2.0.4}/pyproject.toml +1 -1
  5. {clawed-2.0.2 → clawed-2.0.4}/.gitignore +0 -0
  6. {clawed-2.0.2 → clawed-2.0.4}/LICENSE +0 -0
  7. {clawed-2.0.2 → clawed-2.0.4}/README.md +0 -0
  8. {clawed-2.0.2 → clawed-2.0.4}/clawed/__main__.py +0 -0
  9. {clawed-2.0.2 → clawed-2.0.4}/clawed/_legacy_gateway.py +0 -0
  10. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent.py +0 -0
  11. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/__init__.py +0 -0
  12. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/approvals.py +0 -0
  13. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/autonomy.py +0 -0
  14. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/context.py +0 -0
  15. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/core.py +0 -0
  16. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/custom_tools.py +0 -0
  17. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/drive/__init__.py +0 -0
  18. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/drive/auth.py +0 -0
  19. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/drive/client.py +0 -0
  20. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/fake_llm.py +0 -0
  21. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/loop.py +0 -0
  22. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/__init__.py +0 -0
  23. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/curriculum.py +0 -0
  24. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/curriculum_kb.py +0 -0
  25. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/embeddings.py +0 -0
  26. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/episodes.py +0 -0
  27. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/identity.py +0 -0
  28. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/loader.py +0 -0
  29. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/memory/preferences.py +0 -0
  30. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/planner.py +0 -0
  31. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/prompt.py +0 -0
  32. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/scheduler.py +0 -0
  33. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/__init__.py +0 -0
  34. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/base.py +0 -0
  35. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/configure_profile.py +0 -0
  36. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/curriculum_map.py +0 -0
  37. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/drive_create_doc.py +0 -0
  38. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/drive_create_slides.py +0 -0
  39. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/drive_list.py +0 -0
  40. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/drive_organize.py +0 -0
  41. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/drive_read.py +0 -0
  42. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/drive_upload.py +0 -0
  43. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/export_document.py +0 -0
  44. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/gap_analysis.py +0 -0
  45. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/generate_assessment.py +0 -0
  46. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/generate_lesson.py +0 -0
  47. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/generate_lesson_bundle.py +0 -0
  48. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/generate_materials.py +0 -0
  49. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/generate_unit.py +0 -0
  50. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/ingest_materials.py +0 -0
  51. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/parent_comm.py +0 -0
  52. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/read_heartbeat.py +0 -0
  53. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/read_workspace.py +0 -0
  54. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/request_approval.py +0 -0
  55. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/schedule_task.py +0 -0
  56. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/search_lessons.py +0 -0
  57. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/search_my_materials.py +0 -0
  58. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/search_standards.py +0 -0
  59. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/student_insights.py +0 -0
  60. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/sub_packet.py +0 -0
  61. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/switch_model.py +0 -0
  62. {clawed-2.0.2 → clawed-2.0.4}/clawed/agent_core/tools/update_soul.py +0 -0
  63. {clawed-2.0.2 → clawed-2.0.4}/clawed/analytics.py +0 -0
  64. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/__init__.py +0 -0
  65. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/deps.py +0 -0
  66. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/__init__.py +0 -0
  67. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/chat.py +0 -0
  68. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/export.py +0 -0
  69. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/feedback.py +0 -0
  70. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/gateway_chat.py +0 -0
  71. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/generate.py +0 -0
  72. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/ingest.py +0 -0
  73. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/lessons.py +0 -0
  74. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/school.py +0 -0
  75. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/settings.py +0 -0
  76. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/routes/tools.py +0 -0
  77. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/server.py +0 -0
  78. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/static/app.js +0 -0
  79. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/static/style.css +0 -0
  80. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/static/widget.js +0 -0
  81. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/analytics.html +0 -0
  82. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/base.html +0 -0
  83. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/dashboard.html +0 -0
  84. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/generate.html +0 -0
  85. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/index.html +0 -0
  86. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/lesson.html +0 -0
  87. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/profile.html +0 -0
  88. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/settings.html +0 -0
  89. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/stats.html +0 -0
  90. {clawed-2.0.2 → clawed-2.0.4}/clawed/api/templates/students.html +0 -0
  91. {clawed-2.0.2 → clawed-2.0.4}/clawed/assessment.py +0 -0
  92. {clawed-2.0.2 → clawed-2.0.4}/clawed/auth/__init__.py +0 -0
  93. {clawed-2.0.2 → clawed-2.0.4}/clawed/auth/google_auth.py +0 -0
  94. {clawed-2.0.2 → clawed-2.0.4}/clawed/bot_state.py +0 -0
  95. {clawed-2.0.2 → clawed-2.0.4}/clawed/chat.py +0 -0
  96. {clawed-2.0.2 → clawed-2.0.4}/clawed/cli.py +0 -0
  97. {clawed-2.0.2 → clawed-2.0.4}/clawed/cli_chat.py +0 -0
  98. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/__init__.py +0 -0
  99. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/_helpers.py +0 -0
  100. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/bot.py +0 -0
  101. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/config.py +0 -0
  102. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/config_llm.py +0 -0
  103. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/config_profile.py +0 -0
  104. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/export.py +0 -0
  105. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/generate_assessment.py +0 -0
  106. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/generate_unit.py +0 -0
  107. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/queue.py +0 -0
  108. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/schedule_cmd.py +0 -0
  109. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/sub.py +0 -0
  110. {clawed-2.0.2 → clawed-2.0.4}/clawed/commands/workspace_cmd.py +0 -0
  111. {clawed-2.0.2 → clawed-2.0.4}/clawed/config.py +0 -0
  112. {clawed-2.0.2 → clawed-2.0.4}/clawed/corpus.py +0 -0
  113. {clawed-2.0.2 → clawed-2.0.4}/clawed/curriculum_map.py +0 -0
  114. {clawed-2.0.2 → clawed-2.0.4}/clawed/database.py +0 -0
  115. {clawed-2.0.2 → clawed-2.0.4}/clawed/demo/__init__.py +0 -0
  116. {clawed-2.0.2 → clawed-2.0.4}/clawed/demo/demo_assessment.json +0 -0
  117. {clawed-2.0.2 → clawed-2.0.4}/clawed/demo/demo_lesson_science_g6.json +0 -0
  118. {clawed-2.0.2 → clawed-2.0.4}/clawed/demo/demo_lesson_social_studies_g8.json +0 -0
  119. {clawed-2.0.2 → clawed-2.0.4}/clawed/demo/demo_unit_plan.json +0 -0
  120. {clawed-2.0.2 → clawed-2.0.4}/clawed/differentiation.py +0 -0
  121. {clawed-2.0.2 → clawed-2.0.4}/clawed/doc_export.py +0 -0
  122. {clawed-2.0.2 → clawed-2.0.4}/clawed/drive.py +0 -0
  123. {clawed-2.0.2 → clawed-2.0.4}/clawed/evaluation.py +0 -0
  124. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_docx.py +0 -0
  125. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_handout.py +0 -0
  126. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_markdown.py +0 -0
  127. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_pdf.py +0 -0
  128. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_pptx.py +0 -0
  129. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_templates.py +0 -0
  130. {clawed-2.0.2 → clawed-2.0.4}/clawed/export_theme.py +0 -0
  131. {clawed-2.0.2 → clawed-2.0.4}/clawed/exporter.py +0 -0
  132. {clawed-2.0.2 → clawed-2.0.4}/clawed/feedback.py +0 -0
  133. {clawed-2.0.2 → clawed-2.0.4}/clawed/formats/__init__.py +0 -0
  134. {clawed-2.0.2 → clawed-2.0.4}/clawed/formats/flipchart.py +0 -0
  135. {clawed-2.0.2 → clawed-2.0.4}/clawed/formats/notebook.py +0 -0
  136. {clawed-2.0.2 → clawed-2.0.4}/clawed/formats/xbk.py +0 -0
  137. {clawed-2.0.2 → clawed-2.0.4}/clawed/gateway.py +0 -0
  138. {clawed-2.0.2 → clawed-2.0.4}/clawed/gateway_response.py +0 -0
  139. {clawed-2.0.2 → clawed-2.0.4}/clawed/generation.py +0 -0
  140. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/__init__.py +0 -0
  141. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/export.py +0 -0
  142. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/feedback.py +0 -0
  143. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/gaps.py +0 -0
  144. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/generate.py +0 -0
  145. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/ingest.py +0 -0
  146. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/misc.py +0 -0
  147. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/onboard.py +0 -0
  148. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/schedule.py +0 -0
  149. {clawed-2.0.2 → clawed-2.0.4}/clawed/handlers/standards.py +0 -0
  150. {clawed-2.0.2 → clawed-2.0.4}/clawed/improver.py +0 -0
  151. {clawed-2.0.2 → clawed-2.0.4}/clawed/ingestor.py +0 -0
  152. {clawed-2.0.2 → clawed-2.0.4}/clawed/io.py +0 -0
  153. {clawed-2.0.2 → clawed-2.0.4}/clawed/lesson.py +0 -0
  154. {clawed-2.0.2 → clawed-2.0.4}/clawed/llm.py +0 -0
  155. {clawed-2.0.2 → clawed-2.0.4}/clawed/materials.py +0 -0
  156. {clawed-2.0.2 → clawed-2.0.4}/clawed/mcp_server.py +0 -0
  157. {clawed-2.0.2 → clawed-2.0.4}/clawed/memory_engine.py +0 -0
  158. {clawed-2.0.2 → clawed-2.0.4}/clawed/model_router.py +0 -0
  159. {clawed-2.0.2 → clawed-2.0.4}/clawed/models.py +0 -0
  160. {clawed-2.0.2 → clawed-2.0.4}/clawed/onboarding.py +0 -0
  161. {clawed-2.0.2 → clawed-2.0.4}/clawed/openclaw_plugin.py +0 -0
  162. {clawed-2.0.2 → clawed-2.0.4}/clawed/parent_comm.py +0 -0
  163. {clawed-2.0.2 → clawed-2.0.4}/clawed/persona.py +0 -0
  164. {clawed-2.0.2 → clawed-2.0.4}/clawed/planner.py +0 -0
  165. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/504_accommodations.txt +0 -0
  166. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/assessment.txt +0 -0
  167. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/curriculum_gaps.txt +0 -0
  168. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/dbq_assessment.txt +0 -0
  169. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/differentiation.txt +0 -0
  170. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/formative_assessment.txt +0 -0
  171. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/iep_modification.txt +0 -0
  172. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/lesson_plan.txt +0 -0
  173. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/pacing_guide.txt +0 -0
  174. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/parent_note.txt +0 -0
  175. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/persona_extract.txt +0 -0
  176. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/quiz.txt +0 -0
  177. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/rubric.txt +0 -0
  178. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/sub_packet.txt +0 -0
  179. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/summative_assessment.txt +0 -0
  180. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/tiered_assignments.txt +0 -0
  181. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/unit_plan.txt +0 -0
  182. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/worksheet.txt +0 -0
  183. {clawed-2.0.2 → clawed-2.0.4}/clawed/prompts/year_map.txt +0 -0
  184. {clawed-2.0.2 → clawed-2.0.4}/clawed/quality.py +0 -0
  185. {clawed-2.0.2 → clawed-2.0.4}/clawed/reading_report.py +0 -0
  186. {clawed-2.0.2 → clawed-2.0.4}/clawed/router.py +0 -0
  187. {clawed-2.0.2 → clawed-2.0.4}/clawed/sanitize.py +0 -0
  188. {clawed-2.0.2 → clawed-2.0.4}/clawed/scheduler.py +0 -0
  189. {clawed-2.0.2 → clawed-2.0.4}/clawed/school.py +0 -0
  190. {clawed-2.0.2 → clawed-2.0.4}/clawed/search.py +0 -0
  191. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/__init__.py +0 -0
  192. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/art.py +0 -0
  193. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/base.py +0 -0
  194. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/computer_science.py +0 -0
  195. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/ela.py +0 -0
  196. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/foreign_language.py +0 -0
  197. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/history.py +0 -0
  198. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/library.py +0 -0
  199. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/math.py +0 -0
  200. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/music.py +0 -0
  201. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/physical_education.py +0 -0
  202. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/science.py +0 -0
  203. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/social_studies.py +0 -0
  204. {clawed-2.0.2 → clawed-2.0.4}/clawed/skills/special_education.py +0 -0
  205. {clawed-2.0.2 → clawed-2.0.4}/clawed/slide_images.py +0 -0
  206. {clawed-2.0.2 → clawed-2.0.4}/clawed/standards.py +0 -0
  207. {clawed-2.0.2 → clawed-2.0.4}/clawed/state.py +0 -0
  208. {clawed-2.0.2 → clawed-2.0.4}/clawed/state_standards.py +0 -0
  209. {clawed-2.0.2 → clawed-2.0.4}/clawed/student_bot.py +0 -0
  210. {clawed-2.0.2 → clawed-2.0.4}/clawed/student_cli.py +0 -0
  211. {clawed-2.0.2 → clawed-2.0.4}/clawed/student_telegram_bot.py +0 -0
  212. {clawed-2.0.2 → clawed-2.0.4}/clawed/sub_packet.py +0 -0
  213. {clawed-2.0.2 → clawed-2.0.4}/clawed/task_queue.py +0 -0
  214. {clawed-2.0.2 → clawed-2.0.4}/clawed/templates_lib.py +0 -0
  215. {clawed-2.0.2 → clawed-2.0.4}/clawed/tools.py +0 -0
  216. {clawed-2.0.2 → clawed-2.0.4}/clawed/transports/__init__.py +0 -0
  217. {clawed-2.0.2 → clawed-2.0.4}/clawed/transports/cli.py +0 -0
  218. {clawed-2.0.2 → clawed-2.0.4}/clawed/transports/openclaw.py +0 -0
  219. {clawed-2.0.2 → clawed-2.0.4}/clawed/transports/student_telegram.py +0 -0
  220. {clawed-2.0.2 → clawed-2.0.4}/clawed/transports/telegram.py +0 -0
  221. {clawed-2.0.2 → clawed-2.0.4}/clawed/transports/web.py +0 -0
  222. {clawed-2.0.2 → clawed-2.0.4}/clawed/tui.py +0 -0
  223. {clawed-2.0.2 → clawed-2.0.4}/clawed/tui_chat.py +0 -0
  224. {clawed-2.0.2 → clawed-2.0.4}/clawed/voice.py +0 -0
  225. {clawed-2.0.2 → clawed-2.0.4}/clawed/workspace.py +0 -0
  226. {clawed-2.0.2 → clawed-2.0.4}/eduagent/__init__.py +0 -0
  227. {clawed-2.0.2 → clawed-2.0.4}/eduagent/_compat.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clawed
3
- Version: 2.0.2
3
+ Version: 2.0.4
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.2"
20
+ __version__ = "2.0.4"
21
21
  __author__ = "Jon Maccarello & Claw-ED contributors"
22
22
  __description__ = "Personal AI teaching agent. Learns your voice, works while you sleep."
23
23
 
@@ -131,13 +131,37 @@ def ingest(
131
131
  progress.update(task, description="Persona extracted!")
132
132
 
133
133
  out = save_persona(persona, _output_dir())
134
+
135
+ # Index documents into curriculum knowledge base for KB search
136
+ try:
137
+ from clawed.agent_core.memory.curriculum_kb import CurriculumKB
138
+ kb = CurriculumKB()
139
+ total_chunks = 0
140
+ for doc in documents:
141
+ doc_type_val = doc.doc_type.value if hasattr(doc.doc_type, "value") else str(doc.doc_type)
142
+ total_chunks += kb.index(
143
+ teacher_id="default",
144
+ doc_title=doc.title,
145
+ source_path=doc.source_path or "",
146
+ full_text=doc.content,
147
+ metadata={"doc_type": doc_type_val},
148
+ )
149
+ stats = kb.stats("default")
150
+ kb_msg = (
151
+ f"[bold]Knowledge base:[/bold] {stats['doc_count']} documents, "
152
+ f"{stats['chunk_count']} searchable sections"
153
+ )
154
+ except Exception:
155
+ kb_msg = ""
156
+
134
157
  console.print(
135
158
  Panel(
136
159
  f"[green]Persona saved to {out}[/green]\n\n"
137
160
  f"[bold]Style:[/bold] {persona.teaching_style.value.replace('_', ' ').title()}\n"
138
161
  f"[bold]Tone:[/bold] {persona.tone}\n"
139
162
  f"[bold]Subject:[/bold] {persona.subject_area}\n"
140
- f"[bold]Format:[/bold] {persona.preferred_lesson_format}",
163
+ f"[bold]Format:[/bold] {persona.preferred_lesson_format}"
164
+ + (f"\n{kb_msg}" if kb_msg else ""),
141
165
  title="Teacher Persona",
142
166
  )
143
167
  )
@@ -246,6 +270,30 @@ def lesson(
246
270
  )
247
271
  lesson_num = 1
248
272
 
273
+ # ── Search curriculum KB for teacher's existing materials ──────
274
+ kb_prompt_section = ""
275
+ try:
276
+ from clawed.agent_core.memory.curriculum_kb import CurriculumKB
277
+ kb = CurriculumKB()
278
+ kb_results = kb.search("default", topic, top_k=3)
279
+ if kb_results:
280
+ kb_parts = [r for r in kb_results if r.get("similarity", 0) > 0.1]
281
+ if kb_parts:
282
+ kb_prompt_section = (
283
+ "Teacher's Existing Materials on This Topic\n"
284
+ "The teacher has created content on this topic before. "
285
+ "Reference and build on their existing work:\n\n"
286
+ + "\n\n".join(
287
+ f"From \"{r['doc_title']}\":\n{r['chunk_text'][:500]}"
288
+ for r in kb_parts
289
+ )
290
+ + "\n\nUse these materials as a foundation. Reference the teacher's existing "
291
+ "lessons, reuse their graphic organizer formats, build on their approach."
292
+ )
293
+ console.print(f"[dim]Found {len(kb_parts)} existing materials on this topic[/dim]")
294
+ except Exception:
295
+ pass
296
+
249
297
  with _safe_progress(console=console) as progress:
250
298
  task = progress.add_task(
251
299
  f"Generating lesson {lesson_num}...", total=None
@@ -256,6 +304,7 @@ def lesson(
256
304
  unit=unit_plan,
257
305
  persona=persona,
258
306
  include_homework=homework,
307
+ teacher_materials=kb_prompt_section,
259
308
  )
260
309
  )
261
310
  progress.update(task, description="Lesson plan complete!")
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "clawed"
7
- version = "2.0.2"
7
+ version = "2.0.4"
8
8
  description = "Claw-ED — personal AI teaching agent. Learns your voice, works while you sleep."
9
9
  readme = "README.md"
10
10
  license = "MIT"
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