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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +69 -0
  3. data/lib/aidp/cli.rb +43 -2
  4. data/lib/aidp/config.rb +9 -14
  5. data/lib/aidp/execute/prompt_manager.rb +128 -1
  6. data/lib/aidp/execute/repl_macros.rb +555 -0
  7. data/lib/aidp/execute/work_loop_runner.rb +108 -1
  8. data/lib/aidp/harness/ai_decision_engine.rb +376 -0
  9. data/lib/aidp/harness/capability_registry.rb +273 -0
  10. data/lib/aidp/harness/config_schema.rb +305 -1
  11. data/lib/aidp/harness/configuration.rb +452 -0
  12. data/lib/aidp/harness/enhanced_runner.rb +7 -1
  13. data/lib/aidp/harness/provider_factory.rb +0 -2
  14. data/lib/aidp/harness/runner.rb +7 -1
  15. data/lib/aidp/harness/thinking_depth_manager.rb +335 -0
  16. data/lib/aidp/harness/zfc_condition_detector.rb +395 -0
  17. data/lib/aidp/init/devcontainer_generator.rb +274 -0
  18. data/lib/aidp/init/runner.rb +37 -10
  19. data/lib/aidp/init.rb +1 -0
  20. data/lib/aidp/prompt_optimization/context_composer.rb +286 -0
  21. data/lib/aidp/prompt_optimization/optimizer.rb +335 -0
  22. data/lib/aidp/prompt_optimization/prompt_builder.rb +309 -0
  23. data/lib/aidp/prompt_optimization/relevance_scorer.rb +256 -0
  24. data/lib/aidp/prompt_optimization/source_code_fragmenter.rb +308 -0
  25. data/lib/aidp/prompt_optimization/style_guide_indexer.rb +240 -0
  26. data/lib/aidp/prompt_optimization/template_indexer.rb +250 -0
  27. data/lib/aidp/provider_manager.rb +0 -2
  28. data/lib/aidp/providers/anthropic.rb +19 -0
  29. data/lib/aidp/setup/wizard.rb +299 -4
  30. data/lib/aidp/utils/devcontainer_detector.rb +166 -0
  31. data/lib/aidp/version.rb +1 -1
  32. data/lib/aidp/watch/build_processor.rb +72 -6
  33. data/lib/aidp/watch/repository_client.rb +2 -1
  34. data/lib/aidp.rb +0 -1
  35. data/templates/aidp.yml.example +128 -0
  36. metadata +14 -2
  37. 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,