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.