/*
* This file is part of monothink.
*
* monothink is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Foundation,
* either version 3 of the License, or (at your option) any later version.
*
* monothink is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with Wavething.
* If not, see <https://www.gnu.org/licenses/>.
*/
use ;
// if projects are present, tools get a paramter scope that could either be "workspace" or one of the dependency managers (e.g. cargo, npm).
// Tools list the options to the LLM.
// For each project, get the direct (declared) dependencies as well as all dependencies
// list_deps tool just grabs the direct dependencies (i.e. workspace dependencies). could also list all dependencies of a given package
// parameters: package = workspace | name, project: e.g. cargo
// find_deps tool returns all dependencies that match/contain a pattern/name
// for a start, refresh the list on each tool call.
// later watch relevant files and refresh after n (e.g. n=5) calls to outrule missing updates
// cargo: just run `cargo metadata --format-version 1 --no-deps` and see if it works
// if yes, instantiate projects for rust, otherwise disable rust