Matt Vaughn Claude Sonnet 4.5 commited on
Commit
607f8aa
·
2 Parent(s): c73525dad42a50

Merge develop into main

Browse files

Includes fix for recall and remember tool loading.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

reachy_mini_language_tutor/profiles/german_tutor/recall.py DELETED
@@ -1,50 +0,0 @@
1
- """Recall tool for searching learner memories."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RecallTool(Tool):
10
- """Search persistent memory for information about the learner."""
11
-
12
- name = "recall"
13
- description = (
14
- "Search your memory for information about this learner from previous sessions. "
15
- "Use this to check their progress, preferences, or past struggles before giving advice."
16
- )
17
- parameters_schema: dict[str, Any] = {
18
- "type": "object",
19
- "properties": {
20
- "query": {
21
- "type": "string",
22
- "description": (
23
- "What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
24
- "'last session progress', 'grammar they find difficult'"
25
- ),
26
- },
27
- },
28
- "required": ["query"],
29
- }
30
-
31
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
32
- """Search memories for the given query.
33
-
34
- Args:
35
- deps: Tool dependencies including memory_manager.
36
- **kwargs: Tool arguments including 'query'.
37
-
38
- Returns:
39
- Dictionary with search results or error.
40
-
41
- """
42
- if not deps.memory_manager:
43
- return {"error": "Memory not available", "memories": []}
44
-
45
- query = kwargs.get("query", "")
46
- if not query:
47
- return {"error": "No query provided", "memories": []}
48
-
49
- results = await deps.memory_manager.search(query)
50
- return {"memories": results, "count": len(results)}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/german_tutor/remember.py DELETED
@@ -1,63 +0,0 @@
1
- """Remember tool for storing learner facts in persistent memory."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RememberTool(Tool):
10
- """Store important facts about the learner for future sessions."""
11
-
12
- name = "remember"
13
- description = (
14
- "Store an important fact about this learner for future sessions. "
15
- "Use this to record progress, struggles, preferences, successes, or personal information "
16
- "so you can provide personalized tutoring next time."
17
- )
18
- parameters_schema: dict[str, Any] = {
19
- "type": "object",
20
- "properties": {
21
- "fact": {
22
- "type": "string",
23
- "description": (
24
- "The fact to remember, e.g., 'Learner struggles with passe compose', "
25
- "'Prefers topics about travel', 'Successfully used subjunctive today', "
26
- "'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
27
- ),
28
- },
29
- "category": {
30
- "type": "string",
31
- "enum": ["progress", "preference", "struggle", "success", "personal"],
32
- "description": (
33
- "Category of the memory: progress (general notes), preference (what they like), "
34
- "struggle (what's difficult), success (what they mastered), "
35
- "personal (identity, interests, background, goals)"
36
- ),
37
- },
38
- },
39
- "required": ["fact", "category"],
40
- }
41
-
42
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
43
- """Store a fact in memory.
44
-
45
- Args:
46
- deps: Tool dependencies including memory_manager.
47
- **kwargs: Tool arguments including 'fact' and 'category'.
48
-
49
- Returns:
50
- Dictionary with confirmation or error.
51
-
52
- """
53
- if not deps.memory_manager:
54
- return {"error": "Memory not available", "stored": False}
55
-
56
- fact = kwargs.get("fact", "")
57
- category = kwargs.get("category", "progress")
58
-
59
- if not fact:
60
- return {"error": "No fact provided", "stored": False}
61
-
62
- await deps.memory_manager.store(fact, category)
63
- return {"stored": True, "fact": fact, "category": category}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/italian_tutor/recall.py DELETED
@@ -1,50 +0,0 @@
1
- """Recall tool for searching learner memories."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RecallTool(Tool):
10
- """Search persistent memory for information about the learner."""
11
-
12
- name = "recall"
13
- description = (
14
- "Search your memory for information about this learner from previous sessions. "
15
- "Use this to check their progress, preferences, or past struggles before giving advice."
16
- )
17
- parameters_schema: dict[str, Any] = {
18
- "type": "object",
19
- "properties": {
20
- "query": {
21
- "type": "string",
22
- "description": (
23
- "What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
24
- "'last session progress', 'grammar they find difficult'"
25
- ),
26
- },
27
- },
28
- "required": ["query"],
29
- }
30
-
31
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
32
- """Search memories for the given query.
33
-
34
- Args:
35
- deps: Tool dependencies including memory_manager.
36
- **kwargs: Tool arguments including 'query'.
37
-
38
- Returns:
39
- Dictionary with search results or error.
40
-
41
- """
42
- if not deps.memory_manager:
43
- return {"error": "Memory not available", "memories": []}
44
-
45
- query = kwargs.get("query", "")
46
- if not query:
47
- return {"error": "No query provided", "memories": []}
48
-
49
- results = await deps.memory_manager.search(query)
50
- return {"memories": results, "count": len(results)}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/italian_tutor/remember.py DELETED
@@ -1,63 +0,0 @@
1
- """Remember tool for storing learner facts in persistent memory."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RememberTool(Tool):
10
- """Store important facts about the learner for future sessions."""
11
-
12
- name = "remember"
13
- description = (
14
- "Store an important fact about this learner for future sessions. "
15
- "Use this to record progress, struggles, preferences, successes, or personal information "
16
- "so you can provide personalized tutoring next time."
17
- )
18
- parameters_schema: dict[str, Any] = {
19
- "type": "object",
20
- "properties": {
21
- "fact": {
22
- "type": "string",
23
- "description": (
24
- "The fact to remember, e.g., 'Learner struggles with passe compose', "
25
- "'Prefers topics about travel', 'Successfully used subjunctive today', "
26
- "'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
27
- ),
28
- },
29
- "category": {
30
- "type": "string",
31
- "enum": ["progress", "preference", "struggle", "success", "personal"],
32
- "description": (
33
- "Category of the memory: progress (general notes), preference (what they like), "
34
- "struggle (what's difficult), success (what they mastered), "
35
- "personal (identity, interests, background, goals)"
36
- ),
37
- },
38
- },
39
- "required": ["fact", "category"],
40
- }
41
-
42
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
43
- """Store a fact in memory.
44
-
45
- Args:
46
- deps: Tool dependencies including memory_manager.
47
- **kwargs: Tool arguments including 'fact' and 'category'.
48
-
49
- Returns:
50
- Dictionary with confirmation or error.
51
-
52
- """
53
- if not deps.memory_manager:
54
- return {"error": "Memory not available", "stored": False}
55
-
56
- fact = kwargs.get("fact", "")
57
- category = kwargs.get("category", "progress")
58
-
59
- if not fact:
60
- return {"error": "No fact provided", "stored": False}
61
-
62
- await deps.memory_manager.store(fact, category)
63
- return {"stored": True, "fact": fact, "category": category}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/portuguese_tutor/recall.py DELETED
@@ -1,50 +0,0 @@
1
- """Recall tool for searching learner memories."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RecallTool(Tool):
10
- """Search persistent memory for information about the learner."""
11
-
12
- name = "recall"
13
- description = (
14
- "Search your memory for information about this learner from previous sessions. "
15
- "Use this to check their progress, preferences, or past struggles before giving advice."
16
- )
17
- parameters_schema: dict[str, Any] = {
18
- "type": "object",
19
- "properties": {
20
- "query": {
21
- "type": "string",
22
- "description": (
23
- "What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
24
- "'last session progress', 'grammar they find difficult'"
25
- ),
26
- },
27
- },
28
- "required": ["query"],
29
- }
30
-
31
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
32
- """Search memories for the given query.
33
-
34
- Args:
35
- deps: Tool dependencies including memory_manager.
36
- **kwargs: Tool arguments including 'query'.
37
-
38
- Returns:
39
- Dictionary with search results or error.
40
-
41
- """
42
- if not deps.memory_manager:
43
- return {"error": "Memory not available", "memories": []}
44
-
45
- query = kwargs.get("query", "")
46
- if not query:
47
- return {"error": "No query provided", "memories": []}
48
-
49
- results = await deps.memory_manager.search(query)
50
- return {"memories": results, "count": len(results)}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/portuguese_tutor/remember.py DELETED
@@ -1,63 +0,0 @@
1
- """Remember tool for storing learner facts in persistent memory."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RememberTool(Tool):
10
- """Store important facts about the learner for future sessions."""
11
-
12
- name = "remember"
13
- description = (
14
- "Store an important fact about this learner for future sessions. "
15
- "Use this to record progress, struggles, preferences, successes, or personal information "
16
- "so you can provide personalized tutoring next time."
17
- )
18
- parameters_schema: dict[str, Any] = {
19
- "type": "object",
20
- "properties": {
21
- "fact": {
22
- "type": "string",
23
- "description": (
24
- "The fact to remember, e.g., 'Learner struggles with passe compose', "
25
- "'Prefers topics about travel', 'Successfully used subjunctive today', "
26
- "'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
27
- ),
28
- },
29
- "category": {
30
- "type": "string",
31
- "enum": ["progress", "preference", "struggle", "success", "personal"],
32
- "description": (
33
- "Category of the memory: progress (general notes), preference (what they like), "
34
- "struggle (what's difficult), success (what they mastered), "
35
- "personal (identity, interests, background, goals)"
36
- ),
37
- },
38
- },
39
- "required": ["fact", "category"],
40
- }
41
-
42
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
43
- """Store a fact in memory.
44
-
45
- Args:
46
- deps: Tool dependencies including memory_manager.
47
- **kwargs: Tool arguments including 'fact' and 'category'.
48
-
49
- Returns:
50
- Dictionary with confirmation or error.
51
-
52
- """
53
- if not deps.memory_manager:
54
- return {"error": "Memory not available", "stored": False}
55
-
56
- fact = kwargs.get("fact", "")
57
- category = kwargs.get("category", "progress")
58
-
59
- if not fact:
60
- return {"error": "No fact provided", "stored": False}
61
-
62
- await deps.memory_manager.store(fact, category)
63
- return {"stored": True, "fact": fact, "category": category}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/spanish_tutor/recall.py DELETED
@@ -1,50 +0,0 @@
1
- """Recall tool for searching learner memories."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RecallTool(Tool):
10
- """Search persistent memory for information about the learner."""
11
-
12
- name = "recall"
13
- description = (
14
- "Search your memory for information about this learner from previous sessions. "
15
- "Use this to check their progress, preferences, or past struggles before giving advice."
16
- )
17
- parameters_schema: dict[str, Any] = {
18
- "type": "object",
19
- "properties": {
20
- "query": {
21
- "type": "string",
22
- "description": (
23
- "What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
24
- "'last session progress', 'grammar they find difficult'"
25
- ),
26
- },
27
- },
28
- "required": ["query"],
29
- }
30
-
31
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
32
- """Search memories for the given query.
33
-
34
- Args:
35
- deps: Tool dependencies including memory_manager.
36
- **kwargs: Tool arguments including 'query'.
37
-
38
- Returns:
39
- Dictionary with search results or error.
40
-
41
- """
42
- if not deps.memory_manager:
43
- return {"error": "Memory not available", "memories": []}
44
-
45
- query = kwargs.get("query", "")
46
- if not query:
47
- return {"error": "No query provided", "memories": []}
48
-
49
- results = await deps.memory_manager.search(query)
50
- return {"memories": results, "count": len(results)}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/profiles/spanish_tutor/remember.py DELETED
@@ -1,63 +0,0 @@
1
- """Remember tool for storing learner facts in persistent memory."""
2
-
3
- from __future__ import annotations
4
- from typing import Any
5
-
6
- from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
7
-
8
-
9
- class RememberTool(Tool):
10
- """Store important facts about the learner for future sessions."""
11
-
12
- name = "remember"
13
- description = (
14
- "Store an important fact about this learner for future sessions. "
15
- "Use this to record progress, struggles, preferences, successes, or personal information "
16
- "so you can provide personalized tutoring next time."
17
- )
18
- parameters_schema: dict[str, Any] = {
19
- "type": "object",
20
- "properties": {
21
- "fact": {
22
- "type": "string",
23
- "description": (
24
- "The fact to remember, e.g., 'Learner struggles with subjunctive', "
25
- "'Prefers topics about Mexican culture', 'Successfully used preterite vs imperfect today', "
26
- "'Learner's name is Carlos', 'Lives in Austin', 'Planning trip to Mexico City'"
27
- ),
28
- },
29
- "category": {
30
- "type": "string",
31
- "enum": ["progress", "preference", "struggle", "success", "personal"],
32
- "description": (
33
- "Category of the memory: progress (general notes), preference (what they like), "
34
- "struggle (what's difficult), success (what they mastered), "
35
- "personal (identity, interests, background, goals)"
36
- ),
37
- },
38
- },
39
- "required": ["fact", "category"],
40
- }
41
-
42
- async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
43
- """Store a fact in memory.
44
-
45
- Args:
46
- deps: Tool dependencies including memory_manager.
47
- **kwargs: Tool arguments including 'fact' and 'category'.
48
-
49
- Returns:
50
- Dictionary with confirmation or error.
51
-
52
- """
53
- if not deps.memory_manager:
54
- return {"error": "Memory not available", "stored": False}
55
-
56
- fact = kwargs.get("fact", "")
57
- category = kwargs.get("category", "progress")
58
-
59
- if not fact:
60
- return {"error": "No fact provided", "stored": False}
61
-
62
- await deps.memory_manager.store(fact, category)
63
- return {"stored": True, "fact": fact, "category": category}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
reachy_mini_language_tutor/{profiles/french_tutor → tools}/recall.py RENAMED
File without changes
reachy_mini_language_tutor/{profiles/french_tutor → tools}/remember.py RENAMED
@@ -21,9 +21,9 @@ class RememberTool(Tool):
21
  "fact": {
22
  "type": "string",
23
  "description": (
24
- "The fact to remember, e.g., 'Learner struggles with passe compose', "
25
- "'Prefers topics about travel', 'Successfully used subjunctive today', "
26
- "'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
27
  ),
28
  },
29
  "category": {
 
21
  "fact": {
22
  "type": "string",
23
  "description": (
24
+ "The fact to remember, e.g., 'Learner struggles with verb conjugation', "
25
+ "'Prefers topics about travel and culture', 'Successfully used past tense today', "
26
+ "'Learner's name is Alex', 'Lives in Boston', 'Works as an engineer'"
27
  ),
28
  },
29
  "category": {