44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# Test Plan: Functions and Tools
|
|
|
|
## Behaviors to test
|
|
|
|
### Function declarations
|
|
- [ ] Functions::init loads from visible_tools config
|
|
- [ ] Tool declarations parsed from bash scripts (argc annotations)
|
|
- [ ] Tool declarations parsed from python scripts (docstrings)
|
|
- [ ] Tool declarations parsed from typescript (JSDoc + type inference)
|
|
- [ ] Each declaration has name, description, parameters
|
|
- [ ] Agent tools loaded via Functions::init_agent
|
|
- [ ] Global tools loaded via build_global_tool_declarations
|
|
|
|
### Tool compilation
|
|
- [ ] Bash tools compiled to bin directory
|
|
- [ ] Python tools compiled to bin directory
|
|
- [ ] TypeScript tools compiled to bin directory
|
|
- [ ] clear_agent_bin_dir removes old binaries
|
|
- [ ] Tool file priority: .sh > .py > .ts > .js
|
|
|
|
### User interaction functions
|
|
- [ ] append_user_interaction_functions adds user__ask/confirm/input/checkbox
|
|
- [ ] Only appended in REPL mode
|
|
- [ ] User interaction tools work at depth 0 (direct prompt)
|
|
- [ ] User interaction tools escalate at depth > 0
|
|
|
|
### MCP meta functions
|
|
- [ ] append_mcp_meta_functions adds invoke/search/describe per server
|
|
- [ ] Meta functions removed when ToolScope rebuilt without those servers
|
|
- [ ] Function names follow mcp_invoke_<server> pattern
|
|
|
|
### Function selection
|
|
- [ ] select_functions filters by role's enabled_tools
|
|
- [ ] "all" enables everything
|
|
- [ ] Specific tool names enabled selectively
|
|
- [ ] mapping_tools aliases resolved
|
|
- [ ] Agent functions included when agent active
|
|
- [ ] MCP meta functions included when servers active
|
|
|
|
## Old code reference
|
|
- `src/function/mod.rs` — Functions struct, init, init_agent
|
|
- `src/config/paths.rs` — agent_functions_file (priority)
|
|
- `src/parsers/` — bash, python, typescript parsers
|