Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Contributors add user-facing entries under `[Unreleased]` in the same PR. Mainta
- **CLI:** User-configurable `pastel`, `ocean`, and `mono` presentation themes; interactive menu selection persists globally, project config can override it, and unknown values fall back to `pastel` (#248).
- **CLI:** The mail submenu and direct mail commands now follow the active presentation theme (#248).

### Fixed

- **Examples:** Derive agent-loop tool dispatch names from the loaded manifest in `claude_tos_evaluator.py`, `ollama_tos_evaluator.py`, and `ollama_novelty_extractor.py` (#178).

## [0.5.3] - 2026-09-01

### Added
Expand Down
5 changes: 3 additions & 2 deletions examples/claude_tos_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
load_env_file()

bundle = SkillLoader.load_skill("compliance/tos_evaluator")
print(f"Loaded Skill: {bundle['manifest']['name']}")
TOOL_NAME = bundle["manifest"]["name"]
print(f"Loaded Skill: {TOOL_NAME}")

TOSEvaluatorSkill = bundle["module"].TOSEvaluatorSkill
tos_skill = TOSEvaluatorSkill()
Expand Down Expand Up @@ -39,7 +40,7 @@
print(f"Claude requested tool: {tool_name}")
print(f"Input: {tool_input}")

if tool_name == "compliance/tos_evaluator":
if tool_name == TOOL_NAME:
result = tos_skill.execute(tool_input)
print(json.dumps(result, indent=2))

Expand Down
5 changes: 3 additions & 2 deletions examples/ollama_novelty_extractor.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
load_env_file()

bundle = SkillLoader.load_skill("data_engineering/novelty_extractor")
TOOL_NAME = bundle["manifest"]["name"]
NoveltyExtractor = bundle["module"].NoveltyExtractor
skill = NoveltyExtractor()

Expand All @@ -17,7 +18,7 @@
To use a skill, output exactly one JSON code block:
```json
{{
"tool": "the_tool_name",
"tool": "{TOOL_NAME}",
"arguments": {{
"param_name": "value"
}}
Expand Down Expand Up @@ -54,7 +55,7 @@
fn_name = tool_call.get("tool")
fn_args = tool_call.get("arguments", {})

if fn_name == "data_engineering/novelty_extractor":
if fn_name == TOOL_NAME:
result = skill.execute(fn_args)
print(json.dumps(result, indent=2))
messages.append({"role": "assistant", "content": message_content})
Expand Down
5 changes: 3 additions & 2 deletions examples/ollama_tos_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
load_env_file()

bundle = SkillLoader.load_skill("compliance/tos_evaluator")
TOOL_NAME = bundle["manifest"]["name"]
TOSEvaluatorSkill = bundle["module"].TOSEvaluatorSkill
tos_skill = TOSEvaluatorSkill()

Expand All @@ -19,7 +20,7 @@
To use a skill, output exactly one JSON code block:
```json
{{
"tool": "the_tool_name",
"tool": "{TOOL_NAME}",
"arguments": {{
"param_name": "value"
}}
Expand Down Expand Up @@ -53,7 +54,7 @@
fn_name = tool_call.get("tool")
fn_args = tool_call.get("arguments", {})

if fn_name == "compliance/tos_evaluator":
if fn_name == TOOL_NAME:
result = tos_skill.execute(fn_args)
print(json.dumps(result, indent=2))
messages.append({"role": "assistant", "content": message_content})
Expand Down
Loading