handleCall method

  1. @override
Future<String> handleCall({
  1. required AgentEngine engine,
  2. required ToolRunCommandsRequest result,
})
override

Implementation

@override
Future<String> handleCall({
  required AgentEngine engine,
  required ToolRunCommandsRequest result,
}) async {
  StringBuffer buf = StringBuffer();
  for (String i in result.commands) {
    print("&2[Agent]: &aRunning &b${i}".chatColor);
    (int, String, String) r = await engine.cmdRawSpy(i);
    buf.writeln("$i: exit code ${r.$1}");

    if (r.$2.trim().isNotEmpty) {
      buf.writeln("  stdout: ");
      for (String j in r.$2.trim().split("\n")) {
        buf.writeln("    $j");
      }
    }

    if (r.$3.trim().isNotEmpty) {
      buf.writeln("  stderr: ");
      for (String j in r.$3.trim().split("\n")) {
        buf.writeln("    $j");
      }
    }

    if (r.$1 != 0) {
      buf.writeln("Stopped execution due to command failure.");
      break;
    }
  }

  return buf.toString();
}