execute method

  1. @override
Future<int> execute()
override

Implementation

@override
Future<int> execute() async {
  _agent = PubMindAgent(
    apiKey: apiKey!,
    model: model,
    temperature: 0.5,
    maxIterations: 100,
    tools: [
      createRecommendPackagesTool(),
      createTaskDoneTool(),
      createSearchPackagesTool(),
      createGetPackageInfoTool(),
      createCheckCompatibilityTool(
        processRunner: ProcessRunner(
            workingDirectory: projectDirectory, verbose: verbose),
        projectDirectory: projectDirectory,
      ),
      createReadPubspecTool(projectDirectory: projectDirectory),
      createSequentialThinkingTool(),
      createInstallPackageTool(
        processRunner: ProcessRunner(
            workingDirectory: projectDirectory, verbose: verbose),
        projectDirectory: projectDirectory,
      ),
      createRunCommandTool(
        commandService: CommandService(
          processRunner: ProcessRunner(
              workingDirectory: projectDirectory, verbose: verbose),
        ),
      ),
    ],
  );

  LoggerUtils.printWelcomeBanner(logger, model, projectDirectory, withTools);
  LoggerUtils.printCommands(logger);

  _isRunning = true;

  ProcessSignal.sigint.watch().listen((_) {
    _handleExit();
  });

  await _chatLoop();

  return ExitCode.success.code;
}