aidp 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +69 -0
- data/lib/aidp/cli.rb +43 -2
- data/lib/aidp/config.rb +9 -14
- data/lib/aidp/execute/prompt_manager.rb +128 -1
- data/lib/aidp/execute/repl_macros.rb +555 -0
- data/lib/aidp/execute/work_loop_runner.rb +108 -1
- data/lib/aidp/harness/ai_decision_engine.rb +376 -0
- data/lib/aidp/harness/capability_registry.rb +273 -0
- data/lib/aidp/harness/config_schema.rb +305 -1
- data/lib/aidp/harness/configuration.rb +452 -0
- data/lib/aidp/harness/enhanced_runner.rb +7 -1
- data/lib/aidp/harness/provider_factory.rb +0 -2
- data/lib/aidp/harness/runner.rb +7 -1
- data/lib/aidp/harness/thinking_depth_manager.rb +335 -0
- data/lib/aidp/harness/zfc_condition_detector.rb +395 -0
- data/lib/aidp/init/devcontainer_generator.rb +274 -0
- data/lib/aidp/init/runner.rb +37 -10
- data/lib/aidp/init.rb +1 -0
- data/lib/aidp/prompt_optimization/context_composer.rb +286 -0
- data/lib/aidp/prompt_optimization/optimizer.rb +335 -0
- data/lib/aidp/prompt_optimization/prompt_builder.rb +309 -0
- data/lib/aidp/prompt_optimization/relevance_scorer.rb +256 -0
- data/lib/aidp/prompt_optimization/source_code_fragmenter.rb +308 -0
- data/lib/aidp/prompt_optimization/style_guide_indexer.rb +240 -0
- data/lib/aidp/prompt_optimization/template_indexer.rb +250 -0
- data/lib/aidp/provider_manager.rb +0 -2
- data/lib/aidp/providers/anthropic.rb +19 -0
- data/lib/aidp/setup/wizard.rb +299 -4
- data/lib/aidp/utils/devcontainer_detector.rb +166 -0
- data/lib/aidp/version.rb +1 -1
- data/lib/aidp/watch/build_processor.rb +72 -6
- data/lib/aidp/watch/repository_client.rb +2 -1
- data/lib/aidp.rb +0 -1
- data/templates/aidp.yml.example +128 -0
- metadata +14 -2
- data/lib/aidp/providers/macos_ui.rb +0 -102
| @@ -375,7 +375,11 @@ module Aidp | |
| 375 375 | 
             
                            max_iterations: 50,
         | 
| 376 376 | 
             
                            test_commands: [],
         | 
| 377 377 | 
             
                            lint_commands: [],
         | 
| 378 | 
            -
                            units: {}
         | 
| 378 | 
            +
                            units: {},
         | 
| 379 | 
            +
                            guards: {enabled: false},
         | 
| 380 | 
            +
                            version_control: {tool: "git", behavior: "nothing", conventional_commits: false},
         | 
| 381 | 
            +
                            coverage: {enabled: false},
         | 
| 382 | 
            +
                            interactive_testing: {enabled: false, app_type: "web"}
         | 
| 379 383 | 
             
                          },
         | 
| 380 384 | 
             
                          properties: {
         | 
| 381 385 | 
             
                            enabled: {
         | 
| @@ -543,6 +547,300 @@ module Aidp | |
| 543 547 | 
             
                                  default: false
         | 
| 544 548 | 
             
                                }
         | 
| 545 549 | 
             
                              }
         | 
| 550 | 
            +
                            },
         | 
| 551 | 
            +
                            version_control: {
         | 
| 552 | 
            +
                              type: :hash,
         | 
| 553 | 
            +
                              required: false,
         | 
| 554 | 
            +
                              default: {
         | 
| 555 | 
            +
                                tool: "git",
         | 
| 556 | 
            +
                                behavior: "nothing",
         | 
| 557 | 
            +
                                conventional_commits: false
         | 
| 558 | 
            +
                              },
         | 
| 559 | 
            +
                              properties: {
         | 
| 560 | 
            +
                                tool: {
         | 
| 561 | 
            +
                                  type: :string,
         | 
| 562 | 
            +
                                  required: false,
         | 
| 563 | 
            +
                                  default: "git",
         | 
| 564 | 
            +
                                  enum: ["git", "svn", "none"]
         | 
| 565 | 
            +
                                },
         | 
| 566 | 
            +
                                behavior: {
         | 
| 567 | 
            +
                                  type: :string,
         | 
| 568 | 
            +
                                  required: false,
         | 
| 569 | 
            +
                                  default: "nothing",
         | 
| 570 | 
            +
                                  enum: ["stage", "commit", "nothing"]
         | 
| 571 | 
            +
                                },
         | 
| 572 | 
            +
                                conventional_commits: {
         | 
| 573 | 
            +
                                  type: :boolean,
         | 
| 574 | 
            +
                                  required: false,
         | 
| 575 | 
            +
                                  default: false
         | 
| 576 | 
            +
                                }
         | 
| 577 | 
            +
                              }
         | 
| 578 | 
            +
                            },
         | 
| 579 | 
            +
                            coverage: {
         | 
| 580 | 
            +
                              type: :hash,
         | 
| 581 | 
            +
                              required: false,
         | 
| 582 | 
            +
                              default: {
         | 
| 583 | 
            +
                                enabled: false
         | 
| 584 | 
            +
                              },
         | 
| 585 | 
            +
                              properties: {
         | 
| 586 | 
            +
                                enabled: {
         | 
| 587 | 
            +
                                  type: :boolean,
         | 
| 588 | 
            +
                                  required: false,
         | 
| 589 | 
            +
                                  default: false
         | 
| 590 | 
            +
                                },
         | 
| 591 | 
            +
                                tool: {
         | 
| 592 | 
            +
                                  type: :string,
         | 
| 593 | 
            +
                                  required: false,
         | 
| 594 | 
            +
                                  enum: ["simplecov", "nyc", "istanbul", "coverage.py", "go-cover", "jest", "other"]
         | 
| 595 | 
            +
                                },
         | 
| 596 | 
            +
                                run_command: {
         | 
| 597 | 
            +
                                  type: :string,
         | 
| 598 | 
            +
                                  required: false
         | 
| 599 | 
            +
                                },
         | 
| 600 | 
            +
                                report_paths: {
         | 
| 601 | 
            +
                                  type: :array,
         | 
| 602 | 
            +
                                  required: false,
         | 
| 603 | 
            +
                                  default: [],
         | 
| 604 | 
            +
                                  items: {
         | 
| 605 | 
            +
                                    type: :string
         | 
| 606 | 
            +
                                  }
         | 
| 607 | 
            +
                                },
         | 
| 608 | 
            +
                                fail_on_drop: {
         | 
| 609 | 
            +
                                  type: :boolean,
         | 
| 610 | 
            +
                                  required: false,
         | 
| 611 | 
            +
                                  default: false
         | 
| 612 | 
            +
                                },
         | 
| 613 | 
            +
                                minimum_coverage: {
         | 
| 614 | 
            +
                                  type: :number,
         | 
| 615 | 
            +
                                  required: false,
         | 
| 616 | 
            +
                                  min: 0.0,
         | 
| 617 | 
            +
                                  max: 100.0
         | 
| 618 | 
            +
                                }
         | 
| 619 | 
            +
                              }
         | 
| 620 | 
            +
                            },
         | 
| 621 | 
            +
                            interactive_testing: {
         | 
| 622 | 
            +
                              type: :hash,
         | 
| 623 | 
            +
                              required: false,
         | 
| 624 | 
            +
                              default: {
         | 
| 625 | 
            +
                                enabled: false,
         | 
| 626 | 
            +
                                app_type: "web"
         | 
| 627 | 
            +
                              },
         | 
| 628 | 
            +
                              properties: {
         | 
| 629 | 
            +
                                enabled: {
         | 
| 630 | 
            +
                                  type: :boolean,
         | 
| 631 | 
            +
                                  required: false,
         | 
| 632 | 
            +
                                  default: false
         | 
| 633 | 
            +
                                },
         | 
| 634 | 
            +
                                app_type: {
         | 
| 635 | 
            +
                                  type: :string,
         | 
| 636 | 
            +
                                  required: false,
         | 
| 637 | 
            +
                                  default: "web",
         | 
| 638 | 
            +
                                  enum: ["web", "cli", "desktop"]
         | 
| 639 | 
            +
                                },
         | 
| 640 | 
            +
                                tools: {
         | 
| 641 | 
            +
                                  type: :hash,
         | 
| 642 | 
            +
                                  required: false,
         | 
| 643 | 
            +
                                  default: {},
         | 
| 644 | 
            +
                                  properties: {
         | 
| 645 | 
            +
                                    web: {
         | 
| 646 | 
            +
                                      type: :hash,
         | 
| 647 | 
            +
                                      required: false,
         | 
| 648 | 
            +
                                      default: {},
         | 
| 649 | 
            +
                                      properties: {
         | 
| 650 | 
            +
                                        playwright_mcp: {
         | 
| 651 | 
            +
                                          type: :hash,
         | 
| 652 | 
            +
                                          required: false,
         | 
| 653 | 
            +
                                          default: {enabled: false},
         | 
| 654 | 
            +
                                          properties: {
         | 
| 655 | 
            +
                                            enabled: {
         | 
| 656 | 
            +
                                              type: :boolean,
         | 
| 657 | 
            +
                                              required: false,
         | 
| 658 | 
            +
                                              default: false
         | 
| 659 | 
            +
                                            },
         | 
| 660 | 
            +
                                            run: {
         | 
| 661 | 
            +
                                              type: :string,
         | 
| 662 | 
            +
                                              required: false
         | 
| 663 | 
            +
                                            },
         | 
| 664 | 
            +
                                            specs_dir: {
         | 
| 665 | 
            +
                                              type: :string,
         | 
| 666 | 
            +
                                              required: false,
         | 
| 667 | 
            +
                                              default: ".aidp/tests/web"
         | 
| 668 | 
            +
                                            }
         | 
| 669 | 
            +
                                          }
         | 
| 670 | 
            +
                                        },
         | 
| 671 | 
            +
                                        chrome_devtools_mcp: {
         | 
| 672 | 
            +
                                          type: :hash,
         | 
| 673 | 
            +
                                          required: false,
         | 
| 674 | 
            +
                                          default: {enabled: false},
         | 
| 675 | 
            +
                                          properties: {
         | 
| 676 | 
            +
                                            enabled: {
         | 
| 677 | 
            +
                                              type: :boolean,
         | 
| 678 | 
            +
                                              required: false,
         | 
| 679 | 
            +
                                              default: false
         | 
| 680 | 
            +
                                            },
         | 
| 681 | 
            +
                                            run: {
         | 
| 682 | 
            +
                                              type: :string,
         | 
| 683 | 
            +
                                              required: false
         | 
| 684 | 
            +
                                            },
         | 
| 685 | 
            +
                                            specs_dir: {
         | 
| 686 | 
            +
                                              type: :string,
         | 
| 687 | 
            +
                                              required: false,
         | 
| 688 | 
            +
                                              default: ".aidp/tests/web"
         | 
| 689 | 
            +
                                            }
         | 
| 690 | 
            +
                                          }
         | 
| 691 | 
            +
                                        }
         | 
| 692 | 
            +
                                      }
         | 
| 693 | 
            +
                                    },
         | 
| 694 | 
            +
                                    cli: {
         | 
| 695 | 
            +
                                      type: :hash,
         | 
| 696 | 
            +
                                      required: false,
         | 
| 697 | 
            +
                                      default: {},
         | 
| 698 | 
            +
                                      properties: {
         | 
| 699 | 
            +
                                        expect: {
         | 
| 700 | 
            +
                                          type: :hash,
         | 
| 701 | 
            +
                                          required: false,
         | 
| 702 | 
            +
                                          default: {enabled: false},
         | 
| 703 | 
            +
                                          properties: {
         | 
| 704 | 
            +
                                            enabled: {
         | 
| 705 | 
            +
                                              type: :boolean,
         | 
| 706 | 
            +
                                              required: false,
         | 
| 707 | 
            +
                                              default: false
         | 
| 708 | 
            +
                                            },
         | 
| 709 | 
            +
                                            run: {
         | 
| 710 | 
            +
                                              type: :string,
         | 
| 711 | 
            +
                                              required: false
         | 
| 712 | 
            +
                                            },
         | 
| 713 | 
            +
                                            specs_dir: {
         | 
| 714 | 
            +
                                              type: :string,
         | 
| 715 | 
            +
                                              required: false,
         | 
| 716 | 
            +
                                              default: ".aidp/tests/cli"
         | 
| 717 | 
            +
                                            }
         | 
| 718 | 
            +
                                          }
         | 
| 719 | 
            +
                                        }
         | 
| 720 | 
            +
                                      }
         | 
| 721 | 
            +
                                    },
         | 
| 722 | 
            +
                                    desktop: {
         | 
| 723 | 
            +
                                      type: :hash,
         | 
| 724 | 
            +
                                      required: false,
         | 
| 725 | 
            +
                                      default: {},
         | 
| 726 | 
            +
                                      properties: {
         | 
| 727 | 
            +
                                        applescript: {
         | 
| 728 | 
            +
                                          type: :hash,
         | 
| 729 | 
            +
                                          required: false,
         | 
| 730 | 
            +
                                          default: {enabled: false},
         | 
| 731 | 
            +
                                          properties: {
         | 
| 732 | 
            +
                                            enabled: {
         | 
| 733 | 
            +
                                              type: :boolean,
         | 
| 734 | 
            +
                                              required: false,
         | 
| 735 | 
            +
                                              default: false
         | 
| 736 | 
            +
                                            },
         | 
| 737 | 
            +
                                            run: {
         | 
| 738 | 
            +
                                              type: :string,
         | 
| 739 | 
            +
                                              required: false
         | 
| 740 | 
            +
                                            },
         | 
| 741 | 
            +
                                            specs_dir: {
         | 
| 742 | 
            +
                                              type: :string,
         | 
| 743 | 
            +
                                              required: false,
         | 
| 744 | 
            +
                                              default: ".aidp/tests/desktop"
         | 
| 745 | 
            +
                                            }
         | 
| 746 | 
            +
                                          }
         | 
| 747 | 
            +
                                        },
         | 
| 748 | 
            +
                                        screen_reader: {
         | 
| 749 | 
            +
                                          type: :hash,
         | 
| 750 | 
            +
                                          required: false,
         | 
| 751 | 
            +
                                          default: {enabled: false},
         | 
| 752 | 
            +
                                          properties: {
         | 
| 753 | 
            +
                                            enabled: {
         | 
| 754 | 
            +
                                              type: :boolean,
         | 
| 755 | 
            +
                                              required: false,
         | 
| 756 | 
            +
                                              default: false
         | 
| 757 | 
            +
                                            },
         | 
| 758 | 
            +
                                            notes: {
         | 
| 759 | 
            +
                                              type: :string,
         | 
| 760 | 
            +
                                              required: false
         | 
| 761 | 
            +
                                            }
         | 
| 762 | 
            +
                                          }
         | 
| 763 | 
            +
                                        }
         | 
| 764 | 
            +
                                      }
         | 
| 765 | 
            +
                                    }
         | 
| 766 | 
            +
                                  }
         | 
| 767 | 
            +
                                }
         | 
| 768 | 
            +
                              }
         | 
| 769 | 
            +
                            }
         | 
| 770 | 
            +
                          }
         | 
| 771 | 
            +
                        }
         | 
| 772 | 
            +
                      }
         | 
| 773 | 
            +
                    },
         | 
| 774 | 
            +
                    thinking: {
         | 
| 775 | 
            +
                      type: :hash,
         | 
| 776 | 
            +
                      required: false,
         | 
| 777 | 
            +
                      properties: {
         | 
| 778 | 
            +
                        default_tier: {
         | 
| 779 | 
            +
                          type: :string,
         | 
| 780 | 
            +
                          required: false,
         | 
| 781 | 
            +
                          default: "standard",
         | 
| 782 | 
            +
                          enum: ["mini", "standard", "thinking", "pro", "max"]
         | 
| 783 | 
            +
                        },
         | 
| 784 | 
            +
                        max_tier: {
         | 
| 785 | 
            +
                          type: :string,
         | 
| 786 | 
            +
                          required: false,
         | 
| 787 | 
            +
                          default: "standard",
         | 
| 788 | 
            +
                          enum: ["mini", "standard", "thinking", "pro", "max"]
         | 
| 789 | 
            +
                        },
         | 
| 790 | 
            +
                        allow_provider_switch: {
         | 
| 791 | 
            +
                          type: :boolean,
         | 
| 792 | 
            +
                          required: false,
         | 
| 793 | 
            +
                          default: true
         | 
| 794 | 
            +
                        },
         | 
| 795 | 
            +
                        escalation: {
         | 
| 796 | 
            +
                          type: :hash,
         | 
| 797 | 
            +
                          required: false,
         | 
| 798 | 
            +
                          properties: {
         | 
| 799 | 
            +
                            on_fail_attempts: {
         | 
| 800 | 
            +
                              type: :integer,
         | 
| 801 | 
            +
                              required: false,
         | 
| 802 | 
            +
                              default: 2,
         | 
| 803 | 
            +
                              min: 1,
         | 
| 804 | 
            +
                              max: 10
         | 
| 805 | 
            +
                            },
         | 
| 806 | 
            +
                            on_complexity_threshold: {
         | 
| 807 | 
            +
                              type: :hash,
         | 
| 808 | 
            +
                              required: false,
         | 
| 809 | 
            +
                              default: {},
         | 
| 810 | 
            +
                              properties: {
         | 
| 811 | 
            +
                                files_changed: {
         | 
| 812 | 
            +
                                  type: :integer,
         | 
| 813 | 
            +
                                  required: false,
         | 
| 814 | 
            +
                                  min: 1
         | 
| 815 | 
            +
                                },
         | 
| 816 | 
            +
                                modules_touched: {
         | 
| 817 | 
            +
                                  type: :integer,
         | 
| 818 | 
            +
                                  required: false,
         | 
| 819 | 
            +
                                  min: 1
         | 
| 820 | 
            +
                                }
         | 
| 821 | 
            +
                              }
         | 
| 822 | 
            +
                            }
         | 
| 823 | 
            +
                          }
         | 
| 824 | 
            +
                        },
         | 
| 825 | 
            +
                        permissions_by_tier: {
         | 
| 826 | 
            +
                          type: :hash,
         | 
| 827 | 
            +
                          required: false,
         | 
| 828 | 
            +
                          default: {},
         | 
| 829 | 
            +
                          pattern_properties: {
         | 
| 830 | 
            +
                            /^(mini|standard|thinking|pro|max)$/ => {
         | 
| 831 | 
            +
                              type: :string,
         | 
| 832 | 
            +
                              enum: ["safe", "tools", "dangerous"]
         | 
| 833 | 
            +
                            }
         | 
| 834 | 
            +
                          }
         | 
| 835 | 
            +
                        },
         | 
| 836 | 
            +
                        overrides: {
         | 
| 837 | 
            +
                          type: :hash,
         | 
| 838 | 
            +
                          required: false,
         | 
| 839 | 
            +
                          default: {},
         | 
| 840 | 
            +
                          pattern_properties: {
         | 
| 841 | 
            +
                            /^(skill|template)\..+$/ => {
         | 
| 842 | 
            +
                              type: :string,
         | 
| 843 | 
            +
                              enum: ["mini", "standard", "thinking", "pro", "max"]
         | 
| 546 844 | 
             
                            }
         | 
| 547 845 | 
             
                          }
         | 
| 548 846 | 
             
                        }
         | 
| @@ -568,6 +866,12 @@ module Aidp | |
| 568 866 | 
             
                              min: 1,
         | 
| 569 867 | 
             
                              max: 10
         | 
| 570 868 | 
             
                            },
         | 
| 869 | 
            +
                            model_family: {
         | 
| 870 | 
            +
                              type: :string,
         | 
| 871 | 
            +
                              required: false,
         | 
| 872 | 
            +
                              default: "auto",
         | 
| 873 | 
            +
                              enum: ["auto", "openai_o", "claude", "mistral", "local"]
         | 
| 874 | 
            +
                            },
         | 
| 571 875 | 
             
                            max_tokens: {
         | 
| 572 876 | 
             
                              type: :integer,
         | 
| 573 877 | 
             
                              required: false,
         |