pdd-cli 0.0.238__tar.gz → 0.0.239__tar.gz
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.
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/PKG-INFO +3 -3
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/README.md +6 -5
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_checkup.py +7 -1
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_common.py +20 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_sync.py +82 -6
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/checkup_review_loop.py +355 -20
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/ci_drift_heal.py +243 -18
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/checkup.py +16 -1
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/metadata_sync.py +7 -5
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/pdd_completion.fish +1 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/pdd_completion.sh +2 -2
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/pdd_completion.zsh +1 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd_cli.egg-info/PKG-INFO +3 -3
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd_cli.egg-info/SOURCES.txt +1 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pypi_description.rst +2 -2
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pyproject.toml +2 -2
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_common.py +134 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_sync.py +230 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_checkup_review_loop.py +1389 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_ci_drift_heal.py +160 -22
- pdd_cli-0.0.239/tests/test_issue_1021_reproduction.py +584 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/LICENSE +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/__init__.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/__main__.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/_keyring_timeout.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_architecture_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_bug.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_bug_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_change_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_checkup_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_common_worktree.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_crash.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_e2e_fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_e2e_fix_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_langtest.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_split.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_split_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_sync_runner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_test.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_test_generate.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_test_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_update.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/agentic_verify.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/api_key_scanner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/architecture_include_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/architecture_registry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/architecture_sync.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/architecture_sync_helper.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/auth_service.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/auto_deps_architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/auto_deps_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/auto_include.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/auto_update.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/bug_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/bug_to_unit_test.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/change_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/ci_detect_changed_modules.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/ci_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/cli.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/cli_detector.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/cmd_test_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/code_generator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/code_generator_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/__init__.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/analysis.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/auth.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/connect.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/extracts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/firecrawl.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/generate.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/maintenance.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/misc.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/modify.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/report.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/sessions.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/templates.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/utility.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/commands/which.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/comment_line.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/config_resolution.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/conflicts_in_prompts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/conflicts_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/construct_paths.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/content_selector.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/context_generator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/context_generator_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/continue_generation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/__init__.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/cli.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/cloud.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/dump.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/duplicate_cli_guard.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/errors.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/llm_trace.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/remote_session.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/core/utils.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/crash_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/data/arena_elo_manifest.json +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/data/language_format.csv +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/data/llm_model.csv +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/detect_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/detect_change_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/docs/prompting_guide.md +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/durable_sync_runner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/edit_file.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/embed_retrieve.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/extracts_prune.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/failure_classification.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/find_section.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/firecrawl_cache.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_code_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_code_module_errors.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_error_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_errors_from_unit_tests.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_verification_errors.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_verification_errors_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/fix_verification_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/generate_model_catalog.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/generate_output_paths.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/generate_test.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/generation_completion.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_comment.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_extension.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_jwt_token.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_language.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_lint_commands.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_run_command.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/get_test_command.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/git_update.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/include_query_extractor.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/increase_tests.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/incremental_code_generator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/incremental_prd_architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/insert_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/install_completion.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/json_atomic.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/list_drift_detection.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/llm_invoke.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/load_prompt_template.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/logo_animation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/mcp_config.json +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/model_tester.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/one_session_sync.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/operation_log.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/path_resolution.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/pddrc_initializer.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/pin_example_hack.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/postprocess.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/postprocess_0.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/preprocess.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/preprocess_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/process_csv_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step10_completeness_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step11_sync_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step12_deps_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step13_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step1_analyze_prd_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step1b_complexity_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step2_analyze_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step2b_codebase_scan_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step3_research_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step4_data_model_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step5_design_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step5b_completeness_gate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step5b_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step6_research_deps_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step7_generate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step7b_review_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step8_5_context_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step8_pddrc_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step9_prompts_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_arch_step9b_cross_audit_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step10_verify_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step11_e2e_test_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step12_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step1_duplicate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step2_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step3_triage_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step4_api_research_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step5_reproduce_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step6_root_cause_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step7_prompt_classification_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step8_test_plan_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_bug_step9_generate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step10_architecture_update_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step11_identify_issues_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step12_fix_issues_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step13_create_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step1_duplicate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step2_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step3_research_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step4_clarify_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step5_docs_change_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step6_devunits_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step7_architecture_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step8_analyze_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_change_step9_implement_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step1_discover_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step2_deps_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step3_build_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step4_interfaces_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step5_test_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step6_1_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step6_2_regression_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step6_3_e2e_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step7_verify_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_checkup_step8_create_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_crash_explore_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step10_ci_validation_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step11_code_cleanup_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step1_unit_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step2_e2e_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step3_root_cause_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step4_fix_e2e_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step5_identify_devunits_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step6_create_unit_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step7_verify_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step8_run_pdd_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_e2e_fix_step9_verify_all_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_fix_explore_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_fix_nonpython_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_fix_primary_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step0_intent_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step1_survey_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step2_diagnose_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step3_investigate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step4_propose_options_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step6_extract_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step6a_phase_extract_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step7_assess_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step8_repair_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_split_step9_refine_check_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_sync_fix_dry_run_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_sync_identify_modules_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_generate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step10_validate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step11_loop_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step15_plan_validation_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step16_run_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step1_duplicate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step2_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step3_clarify_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step4_detect_frontend_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step5_test_plan_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step5b_enhance_plan_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step6_coverage_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step6_generate_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step7_checklist_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step7_run_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step8_fix_iterate_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step8_manual_test_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step9_regression_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_test_step9_submit_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_update_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/agentic_verify_explore_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/arrange_graph_layout_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/auto_include_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/bug_to_unit_test_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/change_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/code_patcher_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/conflict_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/continue_generation_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/core_dump_requirements_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/cross_issue_reconcile_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/detect_change_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/diff_analyzer_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/example_generator_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_code_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_conflict_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_detect_change_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_program_code_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_prompt_change_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_prompt_split_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_prompt_update_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_promptline_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_unit_code_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/extract_xml_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/find_verification_errors_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/fix_code_module_errors_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/fix_errors_from_unit_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/fix_verification_errors_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/generate_test_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/generate_test_from_example_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/include_query_extractor_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/increase_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/incremental_prd_architecture_patch_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/insert_includes_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/one_session_agent_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/post_gen_verify_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/prompt_code_diff_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/prompt_diff_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/split_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/summarize_file_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/sync_analysis_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/trace_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/trim_results_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/trim_results_start_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/unfinished_prompt_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/update_prompt_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/prompts/xml_convertor_LLM.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/provider_manager.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/pytest_output.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/python_env_detector.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/reasoning.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/remote_session.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/render_mermaid.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/__init__.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/app.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/click_executor.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/executor.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/jobs.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/models.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/__init__.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/auth.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/commands.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/config.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/extracts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/files.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/prompts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/routes/websocket.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/security.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/terminal_spawner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/server/token_counter.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/setup_tool.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/split.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/split_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/split_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/summarize_directory.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_animation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_determine_operation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_graph_order_consistency.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_orchestration.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_order.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/sync_tui.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/template_expander.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/template_registry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/templates/architecture/architecture_json.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/templates/architecture/example_nextjs_task_notes.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/templates/architecture/example_python_backend.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/templates/architecture/pdd_path_construction_guide.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/templates/generic/generate_pddrc_YAML.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/templates/generic/generate_prompt.prompt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/test_result.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/trace.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/trace_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/track_cost.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/unfinished_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/update_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/update_model_costs.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/update_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/user_story_tests.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/validate_prompt_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd/xml_tagger.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd_cli.egg-info/dependency_links.txt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd_cli.egg-info/entry_points.txt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd_cli.egg-info/requires.txt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/pdd_cli.egg-info/top_level.txt +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/setup.cfg +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_739_complete.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_739_e2e_synthetic.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_739_fixtures.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_arch_complexity_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_architecture_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug_orchestrator_1.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug_orchestrator_step_comments.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug_step10_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug_step11_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_bug_step7_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_change_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_checkup.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_checkup_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_common_issue_813_anthropic_api_key_oauth_shadow.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_common_worktree.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_crash.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_e2e_fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_e2e_fix_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_e2e_fix_step10_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_langtest.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_split.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_split_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_split_real.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_split_v2.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_sync_nearest_config.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_sync_runner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_test.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_test_generate.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_test_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_update.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_agentic_verify.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_api_key_scanner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_architecture_include_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_architecture_registry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_architecture_sync.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auth_service.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_deps_architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_deps_entry_wipe.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_deps_lock.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_deps_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_heal_workflow.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_include.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_auto_update.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_bug_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_bug_to_unit_test.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_change_call_site_and_retry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_change_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_checkup_pr_mode.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_ci_detect_changed_modules.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_ci_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_circular_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_cli.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_cli_binary_isolation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_cli_detector.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_cloud_noninteractive_auth.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_cmd_test_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_code_generator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_code_generator_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_code_patcher_prompt_json_example.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_auth.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_firecrawl.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_generate.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_maintenance.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_modify.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_templates.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_commands_utility.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_comment_line.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_conflicts_in_prompts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_conflicts_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_construct_paths.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_content_selector.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_context_example_isolation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_context_generator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_context_generator_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_continue_generation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_copy_package_data_to_public.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_core_dump.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_core_errors.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_core_utils.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_crash_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_cross_step_consistency_prompts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_detect_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_detect_change_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_discover_associated_documents.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_duplicate_cli_guard.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_durable_sync_runner.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_auto_deps_pipeline.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_bug_step9_verification.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_219_duplicate_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_295_openai_schema.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_296_custom_csv.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_305_false_success.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_309_oauth_rate_limit.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_319_json_braces.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_340_report_core_no_default.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_342_syspath_isolation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_349_sys_modules_pollution.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_357_step9_keyerror.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_358_jwt_cache_null.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_364_cumulative_cost.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_373_step5_keyerror.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_375_malformed_json.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_379_auth_null_expires.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_383_commit_intermediate_files.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_399_ssh_url_message.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_419_cli_unpushed_commits.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_419_unpushed_commits.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_426_include_path_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_429_prompt_files_in_pr.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_445_worktree_resume.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_448_change_orchestrator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_448_step5_keyerror.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_449_auth_logout_message.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_467_false_cached_steps.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_468_not_a_bug_early_exit.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_469_cleanup_messages.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_469_duplicate_unresolved.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_470_sessions_cleanup_auth_message.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_481_pagination.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_485_warning_false_negative.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_493_update_output_subdir.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_508_budget_test_cost.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_508_sync_budget_tracking.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_509_retry_cost.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_521_circular_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_522_include_fingerprint.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_545_no_changes_to_commit.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_549_format_double_escaping.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_549_other_orchestrators.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_553_circular_includes_non_recursive.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_557_codex_ndjson.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_566_code_fence_tags.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_579_bug_worktree_rerun.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_579_orchestrator_rerun.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_594_preamble_imports.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_604_handler_wiring.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_620_hallucinated_imports.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_626_nextjs_rendering_model.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_686_anthropic_cost_double_count.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_687_postprocess_model_name.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_737_step_completion_markers.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_745_initial_cost_tracking.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_773_hard_stop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_791_e2e_timeout_retry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_796_typescript_python_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_797_typescript_verification.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_817_step5_degenerate_cli.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_824_artifact_filtering.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_825_param_drop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_830_workflow_stall.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_894.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_902_provider_fallback.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_issue_903_convergence.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_openai_required_array.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_pattern_verification.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_selective_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_selective_includes_integration.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_step11_cleanup_revert.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_subprocess_issue_399_ssh_url_message.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_subprocess_issue_541_quiet_flag.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_e2e_subprocess_issue_593_bug_exit_code.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_embed_retrieve.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_example_error_detection.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_explicit_output_paths.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_extracts_prune.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_failure_classification.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_find_prompt_file.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_find_section.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_firecrawl_cache.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_code_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_code_module_errors.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_error_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_error_loop_failure_aware.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_errors_from_unit_tests.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_main_issue_232.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_verification_errors.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_verification_errors_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_fix_verification_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_generate_model_catalog.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_generate_output_paths.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_generate_output_paths_regression.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_generate_test.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_generation_completion.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_comment.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_extension.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_jwt_token.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_language.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_lint_commands.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_run_command.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_get_test_command.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_git_update.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_include_query_extractor.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_increase_tests.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_incremental_code_generator.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_incremental_prd_architecture.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_incremental_prd_architecture_real.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_insert_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_install_completion.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_1049_reproduction.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_1240_generate_prompt_meta_framing.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_1272_cloud_timeout.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_225_paths_and_includes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_237.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_467_all_orchestrators.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_469_duplicate_unresolved.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_592_failing_case.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_600_agentic_weaknesses.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_633_reproduction.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_686_post_process_args_braces.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_737_step_completion_markers.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_791_reproduction.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_794_anti_tdd_and_test_discovery.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_794_repro.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_830_remaining_fixes.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_865_reproduction.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_894_pytest_output_deadlock.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_902.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_902_prompt_sync.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_926_preserve_comments_directive.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_issue_953_directory_scan_regression.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_jobs_sync_failure_detection.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_list_drift_detection.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_llm_invoke.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_llm_invoke_csv_model_registration.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_llm_invoke_integration.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_llm_invoke_nested_schema.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_llm_invoke_retry_cost.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_llm_invoke_vertex_retry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_load_prompt_template.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_logo_animation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_metadata_sync.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_mock_vs_production_fix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_model_tester.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_nextjs_rendering_model.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_one_session_eval.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_one_session_sync.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_opencode_provider.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_operation_log.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_operation_logging_e2e.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_path_resolution.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_pattern_completeness_verification.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_pddrc_initializer.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_pddrc_true_e2e.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_pin_example_hack.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_postprocess.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_postprocess_0.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_preprocess.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_preprocess_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_preprocess_main_pdd_tags.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_process_csv_change.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_prompt_contract_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_provider_env_isolation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_provider_manager.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_pytest_output.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_quiet_flag.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_reasoning.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_remote_command_completion.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_remote_session.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_render_mermaid.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_report.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_research_prompt_web_tools.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_server_routes_prompts.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_server_spawn.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_setup_tool.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_split.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_split_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_split_seam_resolution.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_split_validation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_step11_api_mocking_guidance.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_structural_test_guard.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_structural_test_guard_integration.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_summarize_directory.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_animation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_animation_0.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_backward_compat.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_code_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_contract_matrix.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_determine_operation.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_graph_order_consistency.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_orchestration.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_order.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_target_coverage_infinite_loop.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_template_prompt_discovery.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_sync_tui.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_template_expander.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_template_registry.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_thread_safe_redirector.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_time_reasoning_effort_env.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_trace.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_trace_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_track_cost.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_unfinished_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_update_command.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_update_main.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_update_model_costs.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_update_prompt.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_user_story_tests.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_version.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_which.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_xml_tagger.py +0 -0
- {pdd_cli-0.0.238 → pdd_cli-0.0.239}/tests/test_z3_prompt_test_correspondence.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pdd-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.239
|
|
4
4
|
Summary: PDD (Prompt-Driven Development) Command Line Interface
|
|
5
5
|
Author: Greg Tanaka
|
|
6
6
|
Author-email: glt@alumni.caltech.edu
|
|
@@ -65,7 +65,7 @@ Requires-Dist: twine; extra == "dev"
|
|
|
65
65
|
Requires-Dist: httpx==0.28.1; extra == "dev"
|
|
66
66
|
Dynamic: license-file
|
|
67
67
|
|
|
68
|
-
.. image:: https://img.shields.io/badge/pdd--cli-v0.0.
|
|
68
|
+
.. image:: https://img.shields.io/badge/pdd--cli-v0.0.239-blue
|
|
69
69
|
:alt: PDD-CLI Version
|
|
70
70
|
|
|
71
71
|
.. image:: https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord&logoColor=white&link=https://discord.gg/Yp4RTh8bG7
|
|
@@ -142,7 +142,7 @@ After installation, verify:
|
|
|
142
142
|
|
|
143
143
|
pdd --version
|
|
144
144
|
|
|
145
|
-
You'll see the current PDD version (e.g., 0.0.
|
|
145
|
+
You'll see the current PDD version (e.g., 0.0.239).
|
|
146
146
|
|
|
147
147
|
Getting Started with Examples
|
|
148
148
|
-----------------------------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# PDD (Prompt-Driven Development) Command Line Interface
|
|
2
2
|
|
|
3
|
-
 [](https://discord.gg/Yp4RTh8bG7)
|
|
4
4
|
|
|
5
5
|
## Introduction
|
|
6
6
|
|
|
@@ -362,7 +362,7 @@ For proper model identifiers to use in your custom configuration, refer to the [
|
|
|
362
362
|
|
|
363
363
|
## Version
|
|
364
364
|
|
|
365
|
-
Current version: 0.0.
|
|
365
|
+
Current version: 0.0.239
|
|
366
366
|
|
|
367
367
|
To check your installed version, run:
|
|
368
368
|
```
|
|
@@ -864,7 +864,7 @@ Options:
|
|
|
864
864
|
- `--skip-verify`: Skip the functional verification step
|
|
865
865
|
- `--skip-tests`: Skip unit test generation and fixing
|
|
866
866
|
- `--target-coverage FLOAT`: Desired code coverage percentage (default is 90.0)
|
|
867
|
-
- `--dry-run`: Display real-time sync analysis instead of running sync operations. For no-argument project-wide sync, this prints the dependency-ordered module list and estimated cost without executing any module syncs. For single-module sync, it performs the same state analysis as a normal sync run but without acquiring exclusive locks or executing operations.
|
|
867
|
+
- `--dry-run`: Display real-time sync analysis instead of running sync operations. For no-argument project-wide sync, this prints the dependency-ordered module list and estimated cost without executing any module syncs, plus a single compact roll-up of modules outside the Tier 1 (`generate` / `auto-deps`) scope — bucketed by reason (e.g. `Out of Tier 1 scope: 42 example, 31 test, 18 verify, 12 update, 74 no-prompt fixture`) instead of one warning line per skipped entry. When zero modules are stale, the `0 stale module(s)` fragment is rendered in green so the success signal is visually unambiguous. Actionable architecture-graph warnings (ambiguous or unresolved cross-arch dependencies) are still printed individually in yellow. For single-module sync, it performs the same state analysis as a normal sync run but without acquiring exclusive locks or executing operations. Passing the top-level `pdd --verbose` flag (see above) restores the legacy per-module enumeration after the compact roll-up — one yellow warning line per module outside the Tier 1 scope — for debugging.
|
|
868
868
|
- `--one-session / --no-one-session`: Run sync in a single agentic session instead of separate sessions for each step. Cannot be combined with `--skip-tests` or `--skip-verify`.
|
|
869
869
|
- `--no-steer`: Disable interactive steering of sync operations.
|
|
870
870
|
- `--steer-timeout FLOAT`: Timeout in seconds for steering prompts (default: 8.0).
|
|
@@ -2745,8 +2745,9 @@ Options:
|
|
|
2745
2745
|
- `--fixer ROLE`: Fixer role for `--review-loop` (for example, `claude`). The fixer must be different from the reviewer unless `--review-only` is used.
|
|
2746
2746
|
- `--reviewers ROLES`: Legacy comma-separated review-loop role order, interpreted as `reviewer,fixer` (default: `codex,claude`).
|
|
2747
2747
|
- `--reviewer-fallback ROLE`: Optional secondary reviewer role to invoke once if the primary reviewer cannot complete (for example, because of auth, network, sandbox, or CLI failures). The fallback must resolve to a role different from the reviewer and fixer; if it succeeds, it becomes the active reviewer for the remaining loop and the superseded primary's row in the final report is annotated `(optional, superseded by <fallback>)` so downstream verdict adapters drop the failed primary from the required-reviewer set and resolve to `ship_degraded` instead of `unknown`.
|
|
2748
|
+
- `--fixer-fallback ROLE`: Optional secondary fixer role to invoke once if the primary fixer cannot complete (for example, Claude Code subscription-tier `credential-limit` failures). Role aliases are normalized so `claude` and `anthropic` resolve to the same identity; the fallback must resolve to a role different from the active fixer, the active reviewer, AND the originally configured reviewer (so `--reviewer codex --reviewer-fallback gemini --fixer-fallback codex` is skipped even after gemini takes over reviewing). Before the fallback runs the worktree is reset so the primary fixer's partial edits do not leak; on success the fallback takes over as the active fixer for the remaining rounds.
|
|
2748
2749
|
- `--max-review-rounds INT`: Maximum primary-reviewer/fixer rounds (default: 5).
|
|
2749
|
-
- `--max-review-cost FLOAT`: Maximum review-loop LLM cost in USD (default:
|
|
2750
|
+
- `--max-review-cost FLOAT`: Maximum review-loop LLM cost in USD (default: 50.0).
|
|
2750
2751
|
- `--max-review-minutes FLOAT`: Maximum review-loop wall-clock minutes (default: 90.0).
|
|
2751
2752
|
- `--blocking-severities LIST`: Comma-separated severity names used for review-loop reporting and prompt guidance (default: `blocker,critical,medium`). The fixer still receives every valid reviewer finding.
|
|
2752
2753
|
- `--continue-on-reviewer-limit`: Report provider, rate, context-window, timeout, auth, network, sandbox, permission, and non-zero-exit reviewer failures as `degraded` instead of `failed`. Degraded reviewers are still not clean unless a configured fallback reviewer completes successfully and takes over as the active reviewer.
|
|
@@ -3512,7 +3513,7 @@ PDD can be integrated into various development workflows. Here are the conceptua
|
|
|
3512
3513
|
4. Stage and commit healed files with a descriptive message — partial metadata state (any stage reporting `failed`) blocks the commit/checkpoint in PR mode. `skipped` is permitted for legitimate cases (no `architecture.json`, unregistered modules, LLM-first tag generation pending #870) and does not block.
|
|
3513
3514
|
5. Push changes to the current branch
|
|
3514
3515
|
|
|
3515
|
-
**Metadata Finalization**: The CI auto-heal `update` branch and the preflight drift-heal path both call the same `run_metadata_sync` orchestrator that `pdd update --sync-metadata` uses, so all three workflows share one finalization surface. The orchestrator runs in a fixed order — prompt → tags → architecture → run-report cleanup → fingerprint last. **Within `run_metadata_sync`** a `failed` upstream stage gates every later write-bearing stage (architecture, run_report, fingerprint), so a tags failure cannot drag architecture or fingerprint state out of sync. `skipped` upstream (no `architecture.json`, unregistered modules, LLM-first tag refresh pending #870) is acceptable and does not gate later stages. **The orchestrator is not transactional across stages**: if e.g. tags + architecture succeed and fingerprint then fails, the prompt and `architecture.json` writes have already landed on disk and `run_metadata_sync` itself does not roll them back. End-to-end rollback for a failing module is handled by the CI auto-heal layer — on a sync failure, `pdd.ci_drift_heal` calls `_revert_prompt_file` and the module-scoped `_snapshot_metadata_state_for(drift)` / `_restore_metadata_state_for(snapshot)` pair (which captures this module's `architecture.json` bytes + `.pdd/meta/<basename>_<language>.json` pre-sync and writes them back on failure, never touching other modules' state). A repo-scoped `git restore -- .pdd` / `git restore -- architecture.json` is explicitly NOT used because in a multi-module push-to-main heal it would wipe earlier successful modules' writes from the same run; the legacy `_cleanup_metadata_artifacts` symbol is kept only as a no-op import shim.
|
|
3516
|
+
**Metadata Finalization**: The CI auto-heal `update` branch and the preflight drift-heal path both call the same `run_metadata_sync` orchestrator that `pdd update --sync-metadata` uses, so all three workflows share one finalization surface. The orchestrator runs in a fixed order — prompt → tags → architecture → run-report cleanup → fingerprint last. **Within `run_metadata_sync`** a `failed` upstream stage gates every later write-bearing stage (architecture, run_report, fingerprint), so a tags failure cannot drag architecture or fingerprint state out of sync. `skipped` upstream (no `architecture.json`, unregistered modules, LLM-first tag refresh pending #870) is acceptable and does not gate later stages. **The orchestrator is not transactional across stages**: if e.g. tags + architecture succeed and fingerprint then fails, the prompt and `architecture.json` writes have already landed on disk and `run_metadata_sync` itself does not roll them back. End-to-end rollback for a failing module is handled by the CI auto-heal layer — on a sync failure, `pdd.ci_drift_heal` calls `_revert_prompt_file` and the module-scoped `_snapshot_metadata_state_for(drift)` / `_restore_metadata_state_for(snapshot)` pair (which captures this module's `architecture.json` bytes + `.pdd/meta/<basename>_<language>.json` pre-sync and writes them back on failure, never touching other modules' state). A repo-scoped `git restore -- .pdd` / `git restore -- architecture.json` is explicitly NOT used because in a multi-module push-to-main heal it would wipe earlier successful modules' writes from the same run; the legacy `_cleanup_metadata_artifacts` symbol is kept only as a no-op import shim. **Staging is scoped, not blanket** — `commit_and_push` runs `git add -u` for tracked updates plus explicit per-module pathspecs (computed from each `DriftInfo`'s `prompt_path`/`code_path`/`example_path`/`test_path` and `_operation_log_metadata_relpaths(basename, language)`), filters out gitignored paths via `git check-ignore`, and adds `project_dependencies.csv` only when a healed module ran `auto-deps`; `git add -A` is explicitly rejected because it sweeps unrelated `.pdd/meta/*.json` fingerprints from out-of-scope modules into the heal commit (issue #1021) and could publish a failed module's partial metadata alongside another module's successful heal. The combined invariant: auto-heal never commits a half-synced state, and preflight never leaves stale fingerprints after a successful update.
|
|
3516
3517
|
|
|
3517
3518
|
**Usage:**
|
|
3518
3519
|
```bash
|
|
@@ -321,8 +321,9 @@ def run_agentic_checkup(
|
|
|
321
321
|
reviewer: Optional[str] = None,
|
|
322
322
|
fixer: Optional[str] = None,
|
|
323
323
|
reviewer_fallback: Optional[str] = None,
|
|
324
|
+
fixer_fallback: Optional[str] = None,
|
|
324
325
|
max_review_rounds: int = 5,
|
|
325
|
-
max_review_cost: float =
|
|
326
|
+
max_review_cost: float = 50.0,
|
|
326
327
|
max_review_minutes: float = 90.0,
|
|
327
328
|
require_all_reviewers_clean: bool = True,
|
|
328
329
|
continue_on_reviewer_limit: bool = False,
|
|
@@ -349,6 +350,10 @@ def run_agentic_checkup(
|
|
|
349
350
|
reviewer first pass and do not invoke the fixer or push changes.
|
|
350
351
|
reviewer_fallback: Optional secondary reviewer role to try once when
|
|
351
352
|
the primary reviewer cannot complete.
|
|
353
|
+
fixer_fallback: Optional secondary fixer role to try once when the
|
|
354
|
+
primary fixer cannot address the reviewer's findings (e.g. a
|
|
355
|
+
subscription-tier credential is exhausted). Must differ from
|
|
356
|
+
both the primary fixer and the active reviewer.
|
|
352
357
|
|
|
353
358
|
Returns:
|
|
354
359
|
Tuple of (success, message, total_cost, model_used).
|
|
@@ -452,6 +457,7 @@ def run_agentic_checkup(
|
|
|
452
457
|
reviewer=reviewer,
|
|
453
458
|
fixer=fixer,
|
|
454
459
|
reviewer_fallback=reviewer_fallback,
|
|
460
|
+
fixer_fallback=fixer_fallback,
|
|
455
461
|
review_only=review_only,
|
|
456
462
|
max_rounds=max_review_rounds,
|
|
457
463
|
max_cost=max_review_cost,
|
|
@@ -388,6 +388,26 @@ _PERMANENT_ERROR_CLASSES: Tuple[Tuple[str, Tuple[str, ...]], ...] = (
|
|
|
388
388
|
r"model\s+not\s+found(?!\s+in\s+provider)",
|
|
389
389
|
),
|
|
390
390
|
),
|
|
391
|
+
(
|
|
392
|
+
# Issue (this PR): Claude Code subscription-tier weekly limit ("You've
|
|
393
|
+
# hit your limit · resets [TIME]"). Distinct from API-tier 429 because
|
|
394
|
+
# the reset window is hours-to-days, not seconds-to-minutes — retrying
|
|
395
|
+
# on the 60s rate-limit floor wastes minutes. Stable token
|
|
396
|
+
# `credential-limit` lets pdd_cloud's OAuth-token waterfall detect this
|
|
397
|
+
# and rotate to a different credential instead of retrying the dead one.
|
|
398
|
+
"credential-limit",
|
|
399
|
+
(
|
|
400
|
+
# Proximity + time-token guard. Requires "hit your limit" and
|
|
401
|
+
# "resets" within 40 chars (typical envelope is "... limit ·
|
|
402
|
+
# resets May 18, 11pm (UTC) ...") AND requires a time-token
|
|
403
|
+
# OR delimiter immediately after "resets" so distant prose
|
|
404
|
+
# like "if you hit your limit, nothing resets automatically"
|
|
405
|
+
# does NOT classify as credential-limit. Without the time
|
|
406
|
+
# token, any sentence stringing both phrases together would
|
|
407
|
+
# short-circuit the rate-limit retry path on benign text.
|
|
408
|
+
r"hit\s+your\s+limit[^\n]{0,40}?\bresets?\b\s*(?:[·:|\-]|in\s|at\s|on\s|\d|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)",
|
|
409
|
+
),
|
|
410
|
+
),
|
|
391
411
|
(
|
|
392
412
|
# Issue #1072: quota exhaustion (permanent even when 429 is present)
|
|
393
413
|
"quota",
|
|
@@ -725,9 +725,14 @@ def _analyze_global_sync_modules(
|
|
|
725
725
|
|
|
726
726
|
if not quiet:
|
|
727
727
|
skipped_count = len(modules) - len(modules_to_sync)
|
|
728
|
+
stale_count = len(modules_to_sync)
|
|
729
|
+
if stale_count == 0:
|
|
730
|
+
stale_fragment = f"[green]0 stale module(s)[/green]"
|
|
731
|
+
else:
|
|
732
|
+
stale_fragment = f"{stale_count} stale module(s)"
|
|
728
733
|
console.print(
|
|
729
|
-
f"[bold]Global sync analysis:[/bold] {
|
|
730
|
-
f"
|
|
734
|
+
f"[bold]Global sync analysis:[/bold] {stale_fragment}, "
|
|
735
|
+
f"{skipped_count} already synced or skipped."
|
|
731
736
|
)
|
|
732
737
|
|
|
733
738
|
return GlobalSyncAnalysis(
|
|
@@ -839,15 +844,79 @@ def _build_scoped_global_dep_graph(
|
|
|
839
844
|
return graph, warnings
|
|
840
845
|
|
|
841
846
|
|
|
847
|
+
_SKIPPED_BUCKET_ORDER: Tuple[str, ...] = (
|
|
848
|
+
"example",
|
|
849
|
+
"test",
|
|
850
|
+
"verify",
|
|
851
|
+
"update",
|
|
852
|
+
"fix",
|
|
853
|
+
"crash",
|
|
854
|
+
"no-prompt fixture",
|
|
855
|
+
"other",
|
|
856
|
+
)
|
|
857
|
+
_SKIPPED_OPERATION_BUCKETS: Tuple[str, ...] = (
|
|
858
|
+
"example",
|
|
859
|
+
"test",
|
|
860
|
+
"verify",
|
|
861
|
+
"update",
|
|
862
|
+
"fix",
|
|
863
|
+
"crash",
|
|
864
|
+
)
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
def _bucket_skipped_reasons(skipped_modules: List[str]) -> Dict[str, int]:
|
|
868
|
+
"""Bucket skipped-module entries by reason for the dry-run roll-up.
|
|
869
|
+
|
|
870
|
+
Entries flagged "no syncable prompt file found" go into `no-prompt fixture`;
|
|
871
|
+
entries shaped "{key}: {language} requires {operation}; outside Tier 1 ..."
|
|
872
|
+
bucket by `operation` when it matches a known Tier-1-out-of-scope op,
|
|
873
|
+
otherwise into `other`.
|
|
874
|
+
"""
|
|
875
|
+
buckets: Dict[str, int] = {name: 0 for name in _SKIPPED_BUCKET_ORDER}
|
|
876
|
+
for entry in skipped_modules:
|
|
877
|
+
lower = entry.lower()
|
|
878
|
+
if "no syncable prompt file found" in lower:
|
|
879
|
+
buckets["no-prompt fixture"] += 1
|
|
880
|
+
continue
|
|
881
|
+
matched = False
|
|
882
|
+
for op in _SKIPPED_OPERATION_BUCKETS:
|
|
883
|
+
if f"requires {op}" in lower:
|
|
884
|
+
buckets[op] += 1
|
|
885
|
+
matched = True
|
|
886
|
+
break
|
|
887
|
+
if not matched:
|
|
888
|
+
buckets["other"] += 1
|
|
889
|
+
return buckets
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
def _format_skipped_bucket_summary(skipped_modules: List[str]) -> Optional[str]:
|
|
893
|
+
"""Return a stable single-line roll-up of skipped buckets, or None if empty."""
|
|
894
|
+
if not skipped_modules:
|
|
895
|
+
return None
|
|
896
|
+
buckets = _bucket_skipped_reasons(skipped_modules)
|
|
897
|
+
parts = [
|
|
898
|
+
f"{count} {name}"
|
|
899
|
+
for name in _SKIPPED_BUCKET_ORDER
|
|
900
|
+
if (count := buckets.get(name, 0)) > 0
|
|
901
|
+
]
|
|
902
|
+
if not parts:
|
|
903
|
+
return None
|
|
904
|
+
return "Out of Tier 1 scope: " + ", ".join(parts)
|
|
905
|
+
|
|
906
|
+
|
|
842
907
|
def _print_global_sync_plan(
|
|
843
908
|
analysis: GlobalSyncAnalysis,
|
|
844
909
|
ordered_modules: List[str],
|
|
845
910
|
warnings: List[str],
|
|
846
911
|
budget: Optional[float] = None,
|
|
912
|
+
verbose: bool = False,
|
|
847
913
|
) -> None:
|
|
848
914
|
"""Render a concise global sync dry-run plan."""
|
|
849
915
|
console.print("[bold]Global sync dry run:[/bold]")
|
|
850
|
-
|
|
916
|
+
if len(ordered_modules) == 0:
|
|
917
|
+
console.print(" Tier 1 (prompt staleness): [green]0 module(s) stale[/green]")
|
|
918
|
+
else:
|
|
919
|
+
console.print(f" Tier 1 (prompt staleness): {len(ordered_modules)} module(s) stale")
|
|
851
920
|
console.print(f" Total architecture modules scanned: {len(analysis.all_modules)}")
|
|
852
921
|
console.print(f" Estimated cost: ${analysis.estimated_cost:.2f}")
|
|
853
922
|
if budget is not None:
|
|
@@ -870,8 +939,13 @@ def _print_global_sync_plan(
|
|
|
870
939
|
for warning in warnings:
|
|
871
940
|
console.print(f"[yellow]Warning: {warning}[/yellow]")
|
|
872
941
|
|
|
873
|
-
|
|
874
|
-
|
|
942
|
+
if analysis.skipped_modules:
|
|
943
|
+
summary = _format_skipped_bucket_summary(analysis.skipped_modules)
|
|
944
|
+
if summary is not None:
|
|
945
|
+
console.print(f" [dim]{summary}[/dim]")
|
|
946
|
+
if verbose:
|
|
947
|
+
for skipped in analysis.skipped_modules:
|
|
948
|
+
console.print(f"[yellow]Warning: {skipped}[/yellow]")
|
|
875
949
|
|
|
876
950
|
|
|
877
951
|
def run_global_sync(
|
|
@@ -930,7 +1004,9 @@ def run_global_sync(
|
|
|
930
1004
|
|
|
931
1005
|
if dry_run:
|
|
932
1006
|
if not quiet:
|
|
933
|
-
_print_global_sync_plan(
|
|
1007
|
+
_print_global_sync_plan(
|
|
1008
|
+
analysis, ordered_modules, dep_warnings, budget, verbose=verbose
|
|
1009
|
+
)
|
|
934
1010
|
return (
|
|
935
1011
|
True,
|
|
936
1012
|
f"Global sync dry run: {len(ordered_modules)} module(s) would sync.",
|