Build API: Add GetToolchainPaths endpoint

This endpoint uses the equery parser to get the immediate dependencies
of the `virtual/toolchain-packages` package in order to determine which
paths count as affecting the toolchain.

BUG=b:147234405
TEST=local call scripts show correct output

Change-Id: Ie32cb475e71f75011c7ff49d60900ffaf8906cf6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1991824
Tested-by: Chris McDonald <cjmcdonald@chromium.org>
Commit-Queue: Chris McDonald <cjmcdonald@chromium.org>
Reviewed-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/dependency.py b/api/controller/dependency.py
index 0645bb5..2f725fb 100644
--- a/api/controller/dependency.py
+++ b/api/controller/dependency.py
@@ -73,3 +73,20 @@
   json_map, sdk_json_map = dependency.GetBuildDependency(board, packages)
   AugmentDepGraphProtoFromJsonMap(json_map, output_proto.dep_graph)
   AugmentDepGraphProtoFromJsonMap(sdk_json_map, output_proto.sdk_dep_graph)
+
+
+def _DummyGetToolchainPathsResponse(_input_proto, output_proto, _config):
+  """Create a fake successful response for GetToolchainPaths."""
+  dummy_entry = output_proto.paths.add()
+  dummy_entry.path = 'src/third_party/dummy-package'
+
+
+@faux.success(_DummyGetToolchainPathsResponse)
+@faux.empty_error
+@validate.validation_complete
+def GetToolchainPaths(_input_proto, output_proto, _config):
+  """Get a list of paths that affect the toolchain."""
+  toolchain_paths = dependency.DetermineToolchainSourcePaths()
+  for p in toolchain_paths:
+    source_path = output_proto.paths.add()
+    source_path.path = p