huskies: merge 544_story_add_run_build_and_run_lint_mcp_tools_backed_by_script_build_and_script_lint

This commit is contained in:
dave
2026-04-12 13:16:45 +00:00
parent cec62dad1c
commit a344cfadee
2 changed files with 185 additions and 1 deletions
+33 -1
View File
@@ -1161,6 +1161,34 @@ fn handle_tools_list(id: Option<Value>) -> JsonRpcResponse {
"required": []
}
},
{
"name": "run_build",
"description": "Run the project's build script (script/build) in the given worktree and return the result as truncated JSON with passed, exit_code, and output fields.",
"inputSchema": {
"type": "object",
"properties": {
"worktree_path": {
"type": "string",
"description": "Optional absolute path to a worktree to run the build in. Must be inside .huskies/worktrees/. Defaults to the project root."
}
},
"required": []
}
},
{
"name": "run_lint",
"description": "Run the project's lint script (script/lint) in the given worktree and return the result as truncated JSON with passed, exit_code, and output fields.",
"inputSchema": {
"type": "object",
"properties": {
"worktree_path": {
"type": "string",
"description": "Optional absolute path to a worktree to run lint in. Must be inside .huskies/worktrees/. Defaults to the project root."
}
},
"required": []
}
},
{
"name": "git_status",
"description": "Return the working tree status of an agent's worktree (staged, unstaged, and untracked files). The worktree_path must be inside .huskies/worktrees/. Push and remote operations are not available.",
@@ -1418,6 +1446,8 @@ async fn handle_tools_call(
"run_command" => shell_tools::tool_run_command(&args, ctx).await,
"run_tests" => shell_tools::tool_run_tests(&args, ctx).await,
"get_test_result" => shell_tools::tool_get_test_result(&args, ctx).await,
"run_build" => shell_tools::tool_run_build(&args, ctx).await,
"run_lint" => shell_tools::tool_run_lint(&args, ctx).await,
// Git operations
"git_status" => git_tools::tool_git_status(&args, ctx).await,
"git_diff" => git_tools::tool_git_diff(&args, ctx).await,
@@ -1543,6 +1573,8 @@ mod tests {
assert!(names.contains(&"run_command"));
assert!(names.contains(&"run_tests"));
assert!(names.contains(&"get_test_result"));
assert!(names.contains(&"run_build"));
assert!(names.contains(&"run_lint"));
assert!(names.contains(&"git_status"));
assert!(names.contains(&"git_diff"));
assert!(names.contains(&"git_add"));
@@ -1551,7 +1583,7 @@ mod tests {
assert!(names.contains(&"status"));
assert!(names.contains(&"loc_file"));
assert!(names.contains(&"dump_crdt"));
assert_eq!(tools.len(), 60);
assert_eq!(tools.len(), 62);
}
#[test]