Overview

A project is a collection of tasks, stories, and metadata related to an ongoing project. It tracks which step the pilot is on.

It persists this information in a local DB to recall at a later point, and for internal consistency for recovery if an error state is found.

Members

start

A Project includes all the agents used to interact with the project. They are initialized and call the following methods in the following order:

At the end of this function we have generated a fully fleshed out plan of attack for developing the application.

We then call start_coding

ask_for_human_intervention

This traps the user in an input loop, continuously asking them for feedback about the state of the application. This is leveraged by step_human_intervention to prompt the user for input after the LLM determines it needs human clarification.

It takes a series of callbacks that map from the user’s input to the function to be called, for example during step_human_intervention it asks the user to type r to execute the command to run the project for debugging.

finish

Steps

database.py: 275

Of interest

Checkpoints:

The member checkpoints has three entries, last_user_input, last_command_run, and last_development_step . They are only set during DB writes for consistency

last_command_run: str is just the text of the last command run like npm install

last_user_input: str is as you’d guess, the last user input

last_development_step: DevelopmentSteps is the model used to store metadata about the last development step. It includes the prompt used, previous step, agent response, etc.