Main entry point for parallel orchestration.
()
| 1708 | |
| 1709 | |
| 1710 | def main(): |
| 1711 | """Main entry point for parallel orchestration.""" |
| 1712 | import argparse |
| 1713 | |
| 1714 | from dotenv import load_dotenv |
| 1715 | |
| 1716 | from registry import DEFAULT_MODEL, get_project_path |
| 1717 | |
| 1718 | load_dotenv() |
| 1719 | |
| 1720 | parser = argparse.ArgumentParser( |
| 1721 | description="Parallel Feature Orchestrator - Run multiple agent instances", |
| 1722 | ) |
| 1723 | parser.add_argument( |
| 1724 | "--project-dir", |
| 1725 | type=str, |
| 1726 | required=True, |
| 1727 | help="Project directory path (absolute) or registered project name", |
| 1728 | ) |
| 1729 | parser.add_argument( |
| 1730 | "--max-concurrency", |
| 1731 | "-p", |
| 1732 | type=int, |
| 1733 | default=DEFAULT_CONCURRENCY, |
| 1734 | help=f"Maximum concurrent agents (1-{MAX_PARALLEL_AGENTS}, default: {DEFAULT_CONCURRENCY})", |
| 1735 | ) |
| 1736 | parser.add_argument( |
| 1737 | "--model", |
| 1738 | type=str, |
| 1739 | default=DEFAULT_MODEL, |
| 1740 | help=f"Claude model to use (default: {DEFAULT_MODEL})", |
| 1741 | ) |
| 1742 | parser.add_argument( |
| 1743 | "--yolo", |
| 1744 | action="store_true", |
| 1745 | default=False, |
| 1746 | help="Enable YOLO mode: rapid prototyping without browser testing", |
| 1747 | ) |
| 1748 | parser.add_argument( |
| 1749 | "--testing-agent-ratio", |
| 1750 | type=int, |
| 1751 | default=1, |
| 1752 | help="Number of regression testing agents (0-3, default: 1). Set to 0 to disable testing agents.", |
| 1753 | ) |
| 1754 | parser.add_argument( |
| 1755 | "--testing-batch-size", |
| 1756 | type=int, |
| 1757 | default=DEFAULT_TESTING_BATCH_SIZE, |
| 1758 | help=f"Number of features per testing batch (1-5, default: {DEFAULT_TESTING_BATCH_SIZE})", |
| 1759 | ) |
| 1760 | parser.add_argument( |
| 1761 | "--batch-size", |
| 1762 | type=int, |
| 1763 | default=3, |
| 1764 | help="Max features per coding agent batch (1-5, default: 3)", |
| 1765 | ) |
| 1766 | |
| 1767 | args = parser.parse_args() |
no test coverage detected