Restore research as first-class tool, remove research skill

Restores the research tool that was previously externalized as a skill:

- Add pending_research.rs: PendingResearchManager with thread-safe task tracking
- Add tools/research.rs: execute_research (async), execute_research_status
- Add research/research_status tool definitions with exclude_research config
- Integrate PendingResearchManager into Agent and ToolContext
- Inject completed research results in streaming loop

Remove research skill:
- Clear EMBEDDED_SKILLS array in embedded.rs
- Delete skills/research/ directory
- Update all tests expecting embedded research skill
- Update docs and memory to reflect the change

The research tool now:
- Spawns scout agent in background tokio task
- Returns immediately with research_id
- Automatically injects results into conversation when ready
- Supports status checks via research_status tool
This commit is contained in:
Dhanji R. Prasanna
2026-02-06 07:38:06 +11:00
parent b673827076
commit ff15db44c0
17 changed files with 1240 additions and 285 deletions

View File

@@ -259,14 +259,13 @@ Key modules in `crates/g3-core/src/skills/`:
Core skills are embedded at compile time using `include_str!`, ensuring g3 works anywhere without external files:
```rust
// Currently empty - skills can be added here as needed
static EMBEDDED_SKILLS: &[EmbeddedSkill] = &[
EmbeddedSkill {
name: "research",
skill_md: include_str!("../../../../skills/research/SKILL.md"),
scripts: &[
("g3-research", include_str!("../../../../skills/research/g3-research")),
],
},
// Example:
// EmbeddedSkill {
// name: "example-skill",
// skill_md: include_str!("../../../../skills/example-skill/SKILL.md"),
// },
];
```