pdd-cli 0.0.241__tar.gz → 0.0.243__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.243/.env.example +18 -0
- pdd_cli-0.0.243/.gitattributes +21 -0
- pdd_cli-0.0.243/.github/workflows/auto-heal.yml +346 -0
- pdd_cli-0.0.243/.github/workflows/pdd-secrets-dispatch.yml +126 -0
- pdd_cli-0.0.243/.github/workflows/release.yml +87 -0
- pdd_cli-0.0.243/.github/workflows/unit-tests.yml +158 -0
- pdd_cli-0.0.243/.gitignore +299 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_architecture_orchestrator_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_bug_orchestrator_python.json +20 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_bug_orchestrator_python_run.json +13 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_bug_python.json +21 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_change_orchestrator_python.json +21 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_change_orchestrator_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_checkup_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_checkup_python_run.json +12 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_common_python.json +20 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_common_python_run.json +13 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_crash_python.json +19 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_e2e_fix_orchestrator_python.json +16 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_e2e_fix_orchestrator_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_fix_python.json +20 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_split_orchestrator_python.json +16 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_split_orchestrator_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_sync_runner_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_update_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/agentic_verify_python.json +18 -0
- pdd_cli-0.0.243/.pdd/meta/architecture_sync_python.json +15 -0
- pdd_cli-0.0.243/.pdd/meta/architecture_sync_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/checkup_review_loop_python.json +15 -0
- pdd_cli-0.0.243/.pdd/meta/checkup_review_loop_python_run.json +12 -0
- pdd_cli-0.0.243/.pdd/meta/ci_drift_heal_python.json +23 -0
- pdd_cli-0.0.243/.pdd/meta/ci_drift_heal_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/code_generator_main_python.json +23 -0
- pdd_cli-0.0.243/.pdd/meta/commands_checkup_python.json +16 -0
- pdd_cli-0.0.243/.pdd/meta/commands_checkup_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/commands_modify_python.json +18 -0
- pdd_cli-0.0.243/.pdd/meta/commands_modify_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/core_cloud_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/fix_code_loop_python.json +19 -0
- pdd_cli-0.0.243/.pdd/meta/get_comment_python.json +15 -0
- pdd_cli-0.0.243/.pdd/meta/get_test_command_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/git_update_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/llm_invoke_python.json +24 -0
- pdd_cli-0.0.243/.pdd/meta/metadata_sync_python.json +19 -0
- pdd_cli-0.0.243/.pdd/meta/metadata_sync_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/pin_example_hack_python.json +24 -0
- pdd_cli-0.0.243/.pdd/meta/pin_example_hack_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/server_jobs_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/summarize_directory_python.json +17 -0
- pdd_cli-0.0.243/.pdd/meta/sync_orchestration_python.json +31 -0
- pdd_cli-0.0.243/.pdd/meta/sync_orchestration_python_run.json +11 -0
- pdd_cli-0.0.243/.pdd/meta/update_main_python.json +22 -0
- pdd_cli-0.0.243/.pddignore +12 -0
- pdd_cli-0.0.243/.pddrc +191 -0
- pdd_cli-0.0.243/.sync-config.yml +99 -0
- pdd_cli-0.0.243/AGENTS.md +24 -0
- pdd_cli-0.0.243/CHANGELOG.md +4895 -0
- pdd_cli-0.0.243/CLAUDE.md +23 -0
- pdd_cli-0.0.243/CONTRIBUTING.md +172 -0
- pdd_cli-0.0.243/GEMINI.md +11 -0
- pdd_cli-0.0.243/Makefile +980 -0
- pdd_cli-0.0.243/PKG-INFO +326 -0
- pdd_cli-0.0.243/README.md +3664 -0
- pdd_cli-0.0.243/SETUP_WITH_GEMINI.md +268 -0
- pdd_cli-0.0.243/SETUP_WITH_WINDOWS.md +173 -0
- pdd_cli-0.0.243/architecture.json +8794 -0
- pdd_cli-0.0.243/ci/cloud-batch/Dockerfile +39 -0
- pdd_cli-0.0.243/ci/cloud-batch/balance-chunks.py +334 -0
- pdd_cli-0.0.243/ci/cloud-batch/cloudbuild.yaml +58 -0
- pdd_cli-0.0.243/ci/cloud-batch/collect-results.sh +297 -0
- pdd_cli-0.0.243/ci/cloud-batch/entrypoint.sh +458 -0
- pdd_cli-0.0.243/ci/cloud-batch/job-template-standard.json +79 -0
- pdd_cli-0.0.243/ci/cloud-batch/job-template.json +79 -0
- pdd_cli-0.0.243/ci/cloud-batch/setup-gcp.sh +124 -0
- pdd_cli-0.0.243/ci/cloud-batch/submit.sh +295 -0
- pdd_cli-0.0.243/ci/cloud-batch/test-durations.json +351 -0
- pdd_cli-0.0.243/context/DSPy_example.py +15 -0
- pdd_cli-0.0.243/context/__init__example.py +1 -0
- pdd_cli-0.0.243/context/_keyring_timeout_example.py +24 -0
- pdd_cli-0.0.243/context/agentic_architecture_example.py +103 -0
- pdd_cli-0.0.243/context/agentic_architecture_orchestrator_example.py +182 -0
- pdd_cli-0.0.243/context/agentic_bug_example.py +52 -0
- pdd_cli-0.0.243/context/agentic_bug_orchestrator_example.py +167 -0
- pdd_cli-0.0.243/context/agentic_change_example.py +53 -0
- pdd_cli-0.0.243/context/agentic_change_orchestrator_example.py +166 -0
- pdd_cli-0.0.243/context/agentic_checkup_example.py +69 -0
- pdd_cli-0.0.243/context/agentic_checkup_orchestrator_example.py +137 -0
- pdd_cli-0.0.243/context/agentic_common_example.py +185 -0
- pdd_cli-0.0.243/context/agentic_crash_example.py +131 -0
- pdd_cli-0.0.243/context/agentic_e2e_fix_example.py +109 -0
- pdd_cli-0.0.243/context/agentic_e2e_fix_orchestrator_example.py +113 -0
- pdd_cli-0.0.243/context/agentic_fix_example.py +166 -0
- pdd_cli-0.0.243/context/agentic_langtest_example.py +261 -0
- pdd_cli-0.0.243/context/agentic_split_example.py +121 -0
- pdd_cli-0.0.243/context/agentic_split_orchestrator_example.py +306 -0
- pdd_cli-0.0.243/context/agentic_sync_example.py +216 -0
- pdd_cli-0.0.243/context/agentic_sync_runner_example.py +153 -0
- pdd_cli-0.0.243/context/agentic_test_example.py +73 -0
- pdd_cli-0.0.243/context/agentic_test_orchestrator_example.py +381 -0
- pdd_cli-0.0.243/context/agentic_update_example.py +222 -0
- pdd_cli-0.0.243/context/agentic_verify_example.py +144 -0
- pdd_cli-0.0.243/context/anthropic_counter_example.py +13 -0
- pdd_cli-0.0.243/context/anthropic_tool_example.py +22 -0
- pdd_cli-0.0.243/context/api_key_scanner_example.py +50 -0
- pdd_cli-0.0.243/context/architecture_registry_example.py +90 -0
- pdd_cli-0.0.243/context/architecture_sync_example.py +284 -0
- pdd_cli-0.0.243/context/auth_service_example.py +190 -0
- pdd_cli-0.0.243/context/auto_deps_main_example.py +398 -0
- pdd_cli-0.0.243/context/auto_include_example.py +334 -0
- pdd_cli-0.0.243/context/auto_update_example.py +26 -0
- pdd_cli-0.0.243/context/autotokenizer_example.py +16 -0
- pdd_cli-0.0.243/context/bug_main_example.py +85 -0
- pdd_cli-0.0.243/context/bug_to_unit_test_example.py +80 -0
- pdd_cli-0.0.243/context/bug_to_unit_test_failure_example.py +2 -0
- pdd_cli-0.0.243/context/change/1/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/1/final_code_generator_python.prompt +28 -0
- pdd_cli-0.0.243/context/change/1/initial_code_generator.py +73 -0
- pdd_cli-0.0.243/context/change/1/initial_code_generator_python.prompt +30 -0
- pdd_cli-0.0.243/context/change/10/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/10/final_fix_errors_from_unit_tests_python.prompt +46 -0
- pdd_cli-0.0.243/context/change/10/initial_fix_errors_from_unit_tests.py +101 -0
- pdd_cli-0.0.243/context/change/10/initial_fix_errors_from_unit_tests_python.prompt +43 -0
- pdd_cli-0.0.243/context/change/11/change.prompt +9 -0
- pdd_cli-0.0.243/context/change/11/initial_code_generator.py +82 -0
- pdd_cli-0.0.243/context/change/11/initial_code_generator_python.prompt +28 -0
- pdd_cli-0.0.243/context/change/11/initial_split_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/12/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/12/final_unfinished_prompt_python.prompt +31 -0
- pdd_cli-0.0.243/context/change/12/initial_postprocess.py +89 -0
- pdd_cli-0.0.243/context/change/12/initial_postprocess_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/13/change.prompt +3 -0
- pdd_cli-0.0.243/context/change/13/initial_split.py +100 -0
- pdd_cli-0.0.243/context/change/13/initial_split_python.prompt +38 -0
- pdd_cli-0.0.243/context/change/13/modified_initial_split.prompt +31 -0
- pdd_cli-0.0.243/context/change/14/change.prompt +3 -0
- pdd_cli-0.0.243/context/change/14/initial_change.py +91 -0
- pdd_cli-0.0.243/context/change/14/initial_change_python.prompt +39 -0
- pdd_cli-0.0.243/context/change/14/modified_initial_change.prompt +37 -0
- pdd_cli-0.0.243/context/change/15/README.md +516 -0
- pdd_cli-0.0.243/context/change/15/change.prompt +3 -0
- pdd_cli-0.0.243/context/change/15/initial_cli.py +533 -0
- pdd_cli-0.0.243/context/change/15/initial_cli_python.prompt +37 -0
- pdd_cli-0.0.243/context/change/15/modified_initial_cli.prompt +43 -0
- pdd_cli-0.0.243/context/change/16/change.prompt +7 -0
- pdd_cli-0.0.243/context/change/16/fix_code_module_errors_example.py +60 -0
- pdd_cli-0.0.243/context/change/16/fix_code_module_errors_python.prompt +51 -0
- pdd_cli-0.0.243/context/change/16/fix_error_loop.py +191 -0
- pdd_cli-0.0.243/context/change/16/fix_error_loop_python.prompt +65 -0
- pdd_cli-0.0.243/context/change/16/fix_errors_from_unit_tests_example.py +44 -0
- pdd_cli-0.0.243/context/change/16/modified_fix_error_loop_python.prompt +68 -0
- pdd_cli-0.0.243/context/change/17/change.prompt +10 -0
- pdd_cli-0.0.243/context/change/17/continue_generation.py +137 -0
- pdd_cli-0.0.243/context/change/17/continue_generation_python.prompt +44 -0
- pdd_cli-0.0.243/context/change/17/unfinished_prompt_python.prompt +30 -0
- pdd_cli-0.0.243/context/change/17/updated_continue_generation_python.prompt +58 -0
- pdd_cli-0.0.243/context/change/17/updated_unfinished_prompt_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/18/change.prompt +10 -0
- pdd_cli-0.0.243/context/change/18/code_generator.py +82 -0
- pdd_cli-0.0.243/context/change/18/code_generator_python.prompt +41 -0
- pdd_cli-0.0.243/context/change/18/unfinished_prompt_python.prompt +30 -0
- pdd_cli-0.0.243/context/change/18/updated_code_generator_python.prompt +62 -0
- pdd_cli-0.0.243/context/change/18/updated_unfinished_prompt_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/19/change.prompt +12 -0
- pdd_cli-0.0.243/context/change/19/context_generator.py +119 -0
- pdd_cli-0.0.243/context/change/19/context_generator_python.prompt +48 -0
- pdd_cli-0.0.243/context/change/19/unfinished_prompt_python.prompt +30 -0
- pdd_cli-0.0.243/context/change/19/updated_context_generator_python.prompt +56 -0
- pdd_cli-0.0.243/context/change/19/updated_unfinished_prompt_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/2/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/2/final_context_generator_python.prompt +34 -0
- pdd_cli-0.0.243/context/change/2/initial_context_generator.py +87 -0
- pdd_cli-0.0.243/context/change/2/initial_context_generator_python.prompt +37 -0
- pdd_cli-0.0.243/context/change/20/change.prompt +45 -0
- pdd_cli-0.0.243/context/change/20/generate_test.py +115 -0
- pdd_cli-0.0.243/context/change/20/generate_test_python.prompt +48 -0
- pdd_cli-0.0.243/context/change/20/updated_generate_test_python.prompt +67 -0
- pdd_cli-0.0.243/context/change/21/auto_deps_main_python.prompt +49 -0
- pdd_cli-0.0.243/context/change/21/auto_include.py +161 -0
- pdd_cli-0.0.243/context/change/21/auto_include_python.prompt +49 -0
- pdd_cli-0.0.243/context/change/21/change.prompt +25 -0
- pdd_cli-0.0.243/context/change/22/change.prompt +41 -0
- pdd_cli-0.0.243/context/change/22/preprocess.py +199 -0
- pdd_cli-0.0.243/context/change/22/preprocess_main_python.prompt +51 -0
- pdd_cli-0.0.243/context/change/22/preprocess_python.prompt +25 -0
- pdd_cli-0.0.243/context/change/3/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/3/final_test_generator_python.prompt +35 -0
- pdd_cli-0.0.243/context/change/3/initial_test_generator_python.prompt +37 -0
- pdd_cli-0.0.243/context/change/3/intial_test_generator.py +82 -0
- pdd_cli-0.0.243/context/change/4/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/4/final_postprocess_python.prompt +34 -0
- pdd_cli-0.0.243/context/change/4/initial_postprocess.py +68 -0
- pdd_cli-0.0.243/context/change/4/initial_postprocess_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/5/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/5/final_split_python.prompt +36 -0
- pdd_cli-0.0.243/context/change/5/initial_split.py +92 -0
- pdd_cli-0.0.243/context/change/5/initial_split_python.prompt +38 -0
- pdd_cli-0.0.243/context/change/6/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/6/final_xml_tagger_python.prompt +34 -0
- pdd_cli-0.0.243/context/change/6/initial_xml_tagger.py +89 -0
- pdd_cli-0.0.243/context/change/6/initial_xml_tagger_python.prompt +35 -0
- pdd_cli-0.0.243/context/change/7/change.prompt +35 -0
- pdd_cli-0.0.243/context/change/7/final_fix_errors_python.prompt +43 -0
- pdd_cli-0.0.243/context/change/7/initial_fix_errors.py +131 -0
- pdd_cli-0.0.243/context/change/7/initial_fix_errors_python.prompt +23 -0
- pdd_cli-0.0.243/context/change/8/change.prompt +1 -0
- pdd_cli-0.0.243/context/change/8/final_fix_errors_from_unit_tests_python.prompt +43 -0
- pdd_cli-0.0.243/context/change/8/initial_fix_errors_from_unit_tests.py +119 -0
- pdd_cli-0.0.243/context/change/8/initial_fix_errors_from_unit_tests_python.prompt +40 -0
- pdd_cli-0.0.243/context/change/9/change.prompt +42 -0
- pdd_cli-0.0.243/context/change/9/final_fix_error_loop_python.prompt +49 -0
- pdd_cli-0.0.243/context/change/9/initial_fix_error_loop.py +134 -0
- pdd_cli-0.0.243/context/change/9/initial_fix_error_loop_python.prompt +43 -0
- pdd_cli-0.0.243/context/change/simple_math/change.prompt +3 -0
- pdd_cli-0.0.243/context/change_example.py +43 -0
- pdd_cli-0.0.243/context/change_main_example.py +149 -0
- pdd_cli-0.0.243/context/checkup_review_loop_example.py +353 -0
- pdd_cli-0.0.243/context/ci_detect_changed_modules_example.py +105 -0
- pdd_cli-0.0.243/context/ci_drift_heal_example.py +91 -0
- pdd_cli-0.0.243/context/ci_validation_example.py +65 -0
- pdd_cli-0.0.243/context/cli_detector_example.py +48 -0
- pdd_cli-0.0.243/context/cli_example.py +358 -0
- pdd_cli-0.0.243/context/click_example.py +288 -0
- pdd_cli-0.0.243/context/click_executor_example.py +392 -0
- pdd_cli-0.0.243/context/cloud_example.py +197 -0
- pdd_cli-0.0.243/context/cloud_function_call.py +17 -0
- pdd_cli-0.0.243/context/cmd_test_main_example.py +103 -0
- pdd_cli-0.0.243/context/code_generator_example.py +33 -0
- pdd_cli-0.0.243/context/code_generator_main_example.py +285 -0
- pdd_cli-0.0.243/context/commands/__init___example.py +115 -0
- pdd_cli-0.0.243/context/commands/analysis_example.py +170 -0
- pdd_cli-0.0.243/context/commands/auth_example.py +55 -0
- pdd_cli-0.0.243/context/commands/checkup_example.py +91 -0
- pdd_cli-0.0.243/context/commands/connect_example.py +176 -0
- pdd_cli-0.0.243/context/commands/fix_example.py +98 -0
- pdd_cli-0.0.243/context/commands/generate_example.py +481 -0
- pdd_cli-0.0.243/context/commands/maintenance_example.py +486 -0
- pdd_cli-0.0.243/context/commands/misc_example.py +360 -0
- pdd_cli-0.0.243/context/commands/modify_example.py +349 -0
- pdd_cli-0.0.243/context/commands/sessions_example.py +166 -0
- pdd_cli-0.0.243/context/commands/templates_example.py +188 -0
- pdd_cli-0.0.243/context/commands/utility_example.py +316 -0
- pdd_cli-0.0.243/context/comment_line_example.py +58 -0
- pdd_cli-0.0.243/context/config_example.py +3 -0
- pdd_cli-0.0.243/context/conflicts_in_prompts_example.py +139 -0
- pdd_cli-0.0.243/context/conflicts_main_example.py +39 -0
- pdd_cli-0.0.243/context/construct_paths_example.py +81 -0
- pdd_cli-0.0.243/context/content_selector_example.py +585 -0
- pdd_cli-0.0.243/context/context_generator_example.py +31 -0
- pdd_cli-0.0.243/context/context_generator_main_example.py +84 -0
- pdd_cli-0.0.243/context/continue_generation_example.py +45 -0
- pdd_cli-0.0.243/context/core/cli_example.py +358 -0
- pdd_cli-0.0.243/context/core/cloud_example.py +259 -0
- pdd_cli-0.0.243/context/core/dump_example.py +382 -0
- pdd_cli-0.0.243/context/core/duplicate_cli_guard_example.py +100 -0
- pdd_cli-0.0.243/context/core/errors_example.py +174 -0
- pdd_cli-0.0.243/context/core/utils_example.py +374 -0
- pdd_cli-0.0.243/context/crash_main_example.py +121 -0
- pdd_cli-0.0.243/context/ctx_obj_params.prompt +18 -0
- pdd_cli-0.0.243/context/detect_change_example.py +36 -0
- pdd_cli-0.0.243/context/detect_change_main_example.py +55 -0
- pdd_cli-0.0.243/context/dict_utils_example.py +154 -0
- pdd_cli-0.0.243/context/edit_file_example.py +196 -0
- pdd_cli-0.0.243/context/embed_retrieve_example.py +154 -0
- pdd_cli-0.0.243/context/example.prompt +15 -0
- pdd_cli-0.0.243/context/extracts_prune_example.py +403 -0
- pdd_cli-0.0.243/context/fastapi_example.py +297 -0
- pdd_cli-0.0.243/context/find_section_example.py +67 -0
- pdd_cli-0.0.243/context/firecrawl_example.py +57 -0
- pdd_cli-0.0.243/context/fix_code_loop_example.py +152 -0
- pdd_cli-0.0.243/context/fix_code_module_errors_example.py +63 -0
- pdd_cli-0.0.243/context/fix_error_loop_example.py +123 -0
- pdd_cli-0.0.243/context/fix_errors_from_unit_tests_example.py +57 -0
- pdd_cli-0.0.243/context/fix_main_example.py +162 -0
- pdd_cli-0.0.243/context/fix_verification_errors_example.py +155 -0
- pdd_cli-0.0.243/context/fix_verification_errors_loop_example.py +160 -0
- pdd_cli-0.0.243/context/fix_verification_main_example.py +143 -0
- pdd_cli-0.0.243/context/gemini_may_pro_example.py +7 -0
- pdd_cli-0.0.243/context/generate_model_catalog_example.py +104 -0
- pdd_cli-0.0.243/context/generate_output_paths_example.py +258 -0
- pdd_cli-0.0.243/context/generate_test_example.py +30 -0
- pdd_cli-0.0.243/context/generation_completion_example.py +93 -0
- pdd_cli-0.0.243/context/get_comment_example.py +31 -0
- pdd_cli-0.0.243/context/get_extension_example.py +6 -0
- pdd_cli-0.0.243/context/get_jwt_token_example.py +141 -0
- pdd_cli-0.0.243/context/get_language_example.py +27 -0
- pdd_cli-0.0.243/context/get_run_command_example.py +120 -0
- pdd_cli-0.0.243/context/get_test_command_example.py +207 -0
- pdd_cli-0.0.243/context/git_update_example.py +65 -0
- pdd_cli-0.0.243/context/include_query_extractor_example.py +142 -0
- pdd_cli-0.0.243/context/increase_tests_example.py +63 -0
- pdd_cli-0.0.243/context/incremental_code_generator_example.py +89 -0
- pdd_cli-0.0.243/context/insert_includes_example.py +384 -0
- pdd_cli-0.0.243/context/install_completion_example.py +102 -0
- pdd_cli-0.0.243/context/job_manager_example.py +382 -0
- pdd_cli-0.0.243/context/langchain_lcel_example.py +312 -0
- pdd_cli-0.0.243/context/list_stats_example.py +69 -0
- pdd_cli-0.0.243/context/llm_invoke_example.py +78 -0
- pdd_cli-0.0.243/context/llm_model_ranges_example.py +106 -0
- pdd_cli-0.0.243/context/llm_selector_example.py +34 -0
- pdd_cli-0.0.243/context/load_prompt_template_example.py +12 -0
- pdd_cli-0.0.243/context/logo_animation_example.py +44 -0
- pdd_cli-0.0.243/context/metadata_sync_example.py +135 -0
- pdd_cli-0.0.243/context/model_tester_example.py +44 -0
- pdd_cli-0.0.243/context/one_session_sync_example.py +119 -0
- pdd_cli-0.0.243/context/operation_log_example.py +170 -0
- pdd_cli-0.0.243/context/path_resolution_example.py +23 -0
- pdd_cli-0.0.243/context/pdd_completion_example.fish +16 -0
- pdd_cli-0.0.243/context/pdd_completion_example.sh +19 -0
- pdd_cli-0.0.243/context/pdd_completion_example.zsh +18 -0
- pdd_cli-0.0.243/context/pddrc_initializer_example.py +42 -0
- pdd_cli-0.0.243/context/pin_example_hack_example.py +33 -0
- pdd_cli-0.0.243/context/postprocess_0_example.py +63 -0
- pdd_cli-0.0.243/context/postprocess_example.py +187 -0
- pdd_cli-0.0.243/context/preprocess_example.py +124 -0
- pdd_cli-0.0.243/context/preprocess_main_example.py +92 -0
- pdd_cli-0.0.243/context/process_csv_change_example.py +78 -0
- pdd_cli-0.0.243/context/provider_manager_example.py +109 -0
- pdd_cli-0.0.243/context/pytest_example.py +71 -0
- pdd_cli-0.0.243/context/pytest_isolation_example.py +429 -0
- pdd_cli-0.0.243/context/pytest_output_example.py +120 -0
- pdd_cli-0.0.243/context/python_env_detector_example.py +38 -0
- pdd_cli-0.0.243/context/python_preamble.prompt +27 -0
- pdd_cli-0.0.243/context/range_validator_example.py +82 -0
- pdd_cli-0.0.243/context/remote_session_example.py +157 -0
- pdd_cli-0.0.243/context/render_mermaid_example.py +176 -0
- pdd_cli-0.0.243/context/resolve_effective_config_example.py +29 -0
- pdd_cli-0.0.243/context/server/__init___example.py +161 -0
- pdd_cli-0.0.243/context/server/app_example.py +113 -0
- pdd_cli-0.0.243/context/server/click_executor_example.py +176 -0
- pdd_cli-0.0.243/context/server/executor_example.py +145 -0
- pdd_cli-0.0.243/context/server/jobs_example.py +145 -0
- pdd_cli-0.0.243/context/server/models_example.py +126 -0
- pdd_cli-0.0.243/context/server/routes/__init___example.py +85 -0
- pdd_cli-0.0.243/context/server/routes/architecture_example.py +168 -0
- pdd_cli-0.0.243/context/server/routes/auth_example.py +118 -0
- pdd_cli-0.0.243/context/server/routes/commands_example.py +245 -0
- pdd_cli-0.0.243/context/server/routes/config_example.py +48 -0
- pdd_cli-0.0.243/context/server/routes/extracts_example.py +161 -0
- pdd_cli-0.0.243/context/server/routes/files_example.py +185 -0
- pdd_cli-0.0.243/context/server/routes/prompts_example.py +187 -0
- pdd_cli-0.0.243/context/server/routes/session_example.py +56 -0
- pdd_cli-0.0.243/context/server/routes/websocket_example.py +368 -0
- pdd_cli-0.0.243/context/server/security_example.py +109 -0
- pdd_cli-0.0.243/context/server/terminal_spawner_example.py +78 -0
- pdd_cli-0.0.243/context/server/token_counter_example.py +113 -0
- pdd_cli-0.0.243/context/setup_tool_example.py +99 -0
- pdd_cli-0.0.243/context/split/simple_math/split_example.py +15 -0
- pdd_cli-0.0.243/context/split_example.py +57 -0
- pdd_cli-0.0.243/context/split_main_example.py +70 -0
- pdd_cli-0.0.243/context/split_validation_example.py +317 -0
- pdd_cli-0.0.243/context/summarize_directory_example.py +175 -0
- pdd_cli-0.0.243/context/sync_animation_example.py +200 -0
- pdd_cli-0.0.243/context/sync_code_main_example.py +226 -0
- pdd_cli-0.0.243/context/sync_determine_operation_example.py +136 -0
- pdd_cli-0.0.243/context/sync_main_example.py +163 -0
- pdd_cli-0.0.243/context/sync_orchestration_example.py +95 -0
- pdd_cli-0.0.243/context/sync_order_example.py +181 -0
- pdd_cli-0.0.243/context/test.prompt +319 -0
- pdd_cli-0.0.243/context/tiktoken_example.py +3 -0
- pdd_cli-0.0.243/context/trace_example.py +53 -0
- pdd_cli-0.0.243/context/trace_main_example.py +51 -0
- pdd_cli-0.0.243/context/track_cost_example.py +72 -0
- pdd_cli-0.0.243/context/unfinished_prompt_example.py +88 -0
- pdd_cli-0.0.243/context/update_main_example.py +452 -0
- pdd_cli-0.0.243/context/update_model_costs_example.py +80 -0
- pdd_cli-0.0.243/context/update_prompt_example.py +39 -0
- pdd_cli-0.0.243/context/websocket_example.py +414 -0
- pdd_cli-0.0.243/context/xml_tagger_example.py +17 -0
- pdd_cli-0.0.243/docs/ONBOARDING.md +1015 -0
- pdd_cli-0.0.243/docs/Software Development Costs and Maintenance_ 2022/342/200/2232025 Trends and AI Impact.md" +97 -0
- pdd_cli-0.0.243/docs/TUTORIALS.md +528 -0
- pdd_cli-0.0.243/docs/architecture_include_validation.md +38 -0
- pdd_cli-0.0.243/docs/ci.md +13 -0
- pdd_cli-0.0.243/docs/comparison.md +10 -0
- pdd_cli-0.0.243/docs/examples/prompt_with_metadata.prompt +123 -0
- pdd_cli-0.0.243/docs/faq.md +505 -0
- pdd_cli-0.0.243/docs/goldilocks_prompt.jpeg +0 -0
- pdd_cli-0.0.243/docs/issues/issue_813_verification_plan.md +291 -0
- pdd_cli-0.0.243/docs/new_whitepaper.md +388 -0
- pdd_cli-0.0.243/docs/o3_whitepaper.md +204 -0
- pdd_cli-0.0.243/docs/orig_whitepaper.md +511 -0
- pdd_cli-0.0.243/docs/path_resolution_resolver.md +109 -0
- pdd_cli-0.0.243/docs/pdd_vs_agentic_cli_definitive_proof_plan.md +403 -0
- pdd_cli-0.0.243/docs/prompt-driven-development-doctrine.md +547 -0
- pdd_cli-0.0.243/docs/prompting_guide.md +1810 -0
- pdd_cli-0.0.243/docs/standup_notes.md +26 -0
- pdd_cli-0.0.243/docs/sync_architecture_analysis.md +294 -0
- pdd_cli-0.0.243/docs/sync_determination_analysis.md +373 -0
- pdd_cli-0.0.243/docs/sync_solution_o3pro.md +183 -0
- pdd_cli-0.0.243/docs/sync_solution_opus.md +1118 -0
- pdd_cli-0.0.243/docs/videos/handpaint_demo.gif +0 -0
- pdd_cli-0.0.243/docs/whitepaper.md +244 -0
- pdd_cli-0.0.243/docs/whitepaper_before_4.5.md +247 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/README.md +35 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/SHA256SUMS.txt +7 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/_session_classification.tsv +197 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/prompts_pdd.jsonl +1003 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/prompts_pdd.md +3670 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/prompts_vibe.jsonl +2435 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/prompts_vibe.md +9060 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/evidence/quote_map.md +99 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/loop.mmd +9 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/loop.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/oscillation.mmd +13 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/oscillation.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/pdd_cycle.mmd +12 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/pdd_cycle.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/pipeline.mmd +8 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/pipeline.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/threshold.mmd +23 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/images/threshold.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_specification_drift/whitepaper.md +472 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/avg_api_cost_by_edit_type.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/avg_api_cost_by_file_size.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/avg_api_cost_by_language.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/avg_execution_time_by_edit_type.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/avg_execution_time_by_file_size.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/avg_execution_time_by_language.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/cost_per_successful_task.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/overall_avg_api_cost.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/overall_avg_execution_time.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/overall_success_rate.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/success_rate_by_edit_type.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/success_rate_by_file_size.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/success_rate_by_language.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/time_vs_cost_scatter.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/analysis_report/total_api_cost_comparison.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/claude_cost_per_run_dist.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/claude_lines_added_removed_dist.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/claude_wall_duration_dist.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/pdd_avg_cost_per_module_dist.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/pdd_top_modules_by_cost.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/pdd_top_modules_by_time.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/pdd_total_time_per_module_dist.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/total_cost_comparison.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/creation_report/total_time_comparison.png +0 -0
- pdd_cli-0.0.243/docs/whitepaper_with_benchmarks/whitepaper_w_benchmarks.md +512 -0
- pdd_cli-0.0.243/environment.yml +13 -0
- pdd_cli-0.0.243/examples/README.md +77 -0
- pdd_cli-0.0.243/examples/agentic_bug_orchestrator_example.py +253 -0
- pdd_cli-0.0.243/examples/agentic_change_orchestrator_example.py +309 -0
- pdd_cli-0.0.243/examples/agentic_checkup_example.py +59 -0
- pdd_cli-0.0.243/examples/agentic_common_example.py +67 -0
- pdd_cli-0.0.243/examples/agentic_common_worktree_example.py +283 -0
- pdd_cli-0.0.243/examples/agentic_e2e_fix_orchestrator_example.py +118 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example/README.md +52 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example/main_python.prompt +3 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example/src/main.py +16 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example/src/utils.py +12 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example/tests/test_main.py +15 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example/utils_python.prompt +3 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/.gitignore +3 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/README.md +58 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/build.gradle +21 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/gradle/wrapper/gradle-wrapper.jar +0 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/gradle/wrapper/gradle-wrapper.properties +7 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/gradlew +248 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/gradlew.bat +93 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/main_java.prompt +13 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/settings.gradle +1 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/src/main/java/Main.java +9 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/src/main/java/Util.java +5 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/src/test/java/TestMain.java +9 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_gradle/util_java.prompt +14 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/.gitignore +1 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/README.md +58 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/main_java.prompt +13 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/pom.xml +35 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/src/main/java/Main.java +9 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/src/main/java/Util.java +5 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/src/test/java/TestMain.java +9 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_java_maven/util_java.prompt +14 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/README.md +56 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/main_javascript.prompt +11 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/package.json +11 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/src/main.js +4 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/src/utils.js +7 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/tests/test_main.js +28 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_javascript/utils_javascript.prompt +11 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/README.md +56 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/main_typescript.prompt +11 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/package.json +16 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/src/main.ts +4 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/src/utils.ts +3 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/tests/test_main.ts +25 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/tsconfig.json +12 -0
- pdd_cli-0.0.243/examples/agentic_fallback_example_typescript/utils_typescript.prompt +11 -0
- pdd_cli-0.0.243/examples/agentic_split_example.py +84 -0
- pdd_cli-0.0.243/examples/agentic_split_orchestrator_example.py +99 -0
- pdd_cli-0.0.243/examples/arch/ORDER_MANAGEMENT_PRD.md +204 -0
- pdd_cli-0.0.243/examples/arch/architecture.json +319 -0
- pdd_cli-0.0.243/examples/arch/architecture_diagram.html +114 -0
- pdd_cli-0.0.243/examples/arch/tech_stack.md +33 -0
- pdd_cli-0.0.243/examples/checkup_review_loop_example.py +97 -0
- pdd_cli-0.0.243/examples/get_lint_commands_example.py +213 -0
- pdd_cli-0.0.243/examples/handpaint/README.md +65 -0
- pdd_cli-0.0.243/examples/handpaint/cursor/README.md +99 -0
- pdd_cli-0.0.243/examples/handpaint/cursor/handpaint.html +290 -0
- pdd_cli-0.0.243/examples/handpaint/pdd/README.md +165 -0
- pdd_cli-0.0.243/examples/handpaint/pdd/handpaint_html.prompt +9 -0
- pdd_cli-0.0.243/examples/handpaint/pdd/handpaint_pdd.html +392 -0
- pdd_cli-0.0.243/examples/hello/.pdd/meta/hello_python.json +12 -0
- pdd_cli-0.0.243/examples/hello/.pddrc +9 -0
- pdd_cli-0.0.243/examples/hello/examples/hello_example.py +32 -0
- pdd_cli-0.0.243/examples/hello/hello_python.prompt +1 -0
- pdd_cli-0.0.243/examples/hello/src/hello.py +6 -0
- pdd_cli-0.0.243/examples/hello/tests/test_hello.py +155 -0
- pdd_cli-0.0.243/examples/hello_you/hello_you_python.prompt +13 -0
- pdd_cli-0.0.243/examples/image_prompt_example/README.md +30 -0
- pdd_cli-0.0.243/examples/image_prompt_example/describe.py +1 -0
- pdd_cli-0.0.243/examples/image_prompt_example/describe_python.prompt +10 -0
- pdd_cli-0.0.243/examples/image_prompt_example/image.heic +0 -0
- pdd_cli-0.0.243/examples/image_prompt_example/image.jpeg +0 -0
- pdd_cli-0.0.243/examples/pi_calc/.pdd/meta/pi_calc_python.json +9 -0
- pdd_cli-0.0.243/examples/pi_calc/.pdd/meta/pi_calc_python_run.json +7 -0
- pdd_cli-0.0.243/examples/pi_calc/examples/pi_calc_example.py +91 -0
- pdd_cli-0.0.243/examples/pi_calc/examples/pi_calc_example_iteration_1.py +91 -0
- pdd_cli-0.0.243/examples/pi_calc/examples/pi_calc_example_iteration_2.py +96 -0
- pdd_cli-0.0.243/examples/pi_calc/pdd/pi_calc.py +47 -0
- pdd_cli-0.0.243/examples/pi_calc/pdd/pi_calc_1_2_2_0_20250715_122550.py +47 -0
- pdd_cli-0.0.243/examples/pi_calc/pdd/pi_calc_iteration_1.py +47 -0
- pdd_cli-0.0.243/examples/pi_calc/pdd/pi_calc_iteration_2.py +47 -0
- pdd_cli-0.0.243/examples/pi_calc/pi_calc_python.prompt +1 -0
- pdd_cli-0.0.243/examples/pi_calc/tests/test_pi_calc.py +155 -0
- pdd_cli-0.0.243/examples/prompts_linter/.pddrc +47 -0
- pdd_cli-0.0.243/examples/prompts_linter/Makefile +202 -0
- pdd_cli-0.0.243/examples/prompts_linter/README.md +451 -0
- pdd_cli-0.0.243/examples/prompts_linter/architecture.json +193 -0
- pdd_cli-0.0.243/examples/prompts_linter/architecture_diagram.html +128 -0
- pdd_cli-0.0.243/examples/prompts_linter/docs/specs.md +242 -0
- pdd_cli-0.0.243/examples/prompts_linter/docs/tech_stack.md +93 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/backend_api_example.py +72 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/cli_example.py +132 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/fix_example.py +121 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/frontend_streamlit_example.py +60 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/helpers_example.py +145 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/llm_example.py +92 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/models_example.py +105 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/pipeline_example.py +112 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/report_example.py +125 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/report_output.md +16 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/report_output.txt +21 -0
- pdd_cli-0.0.243/examples/prompts_linter/examples/rules_example.py +131 -0
- pdd_cli-0.0.243/examples/prompts_linter/project_dependencies.csv +19 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/backend_api_python.prompt +46 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/cli_python.prompt +114 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/fix_python.prompt +108 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/frontend_streamlit_python.prompt +44 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/helpers_python.prompt +48 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/llm_python.prompt +92 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/models_python.prompt +51 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/pipeline_python.prompt +59 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/report_python.prompt +62 -0
- pdd_cli-0.0.243/examples/prompts_linter/prompts/rules_python.prompt +59 -0
- pdd_cli-0.0.243/examples/prompts_linter/requirements.txt +8 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/backend/backend_api.py +112 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/cli/cli.py +366 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/frontend/frontend_streamlit.py +164 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/fix.py +320 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/helpers.py +197 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/llm.py +233 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/models.py +193 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/pipeline.py +335 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/report.py +166 -0
- pdd_cli-0.0.243/examples/prompts_linter/src/utils/rules.py +414 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_backend_api.py +211 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_cli.py +928 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_fix.py +764 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_frontend_streamlit.py +592 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_helpers.py +699 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_llm.py +709 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_models.py +599 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_pipeline.py +1032 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_report.py +662 -0
- pdd_cli-0.0.243/examples/prompts_linter/tests/test_rules.py +637 -0
- pdd_cli-0.0.243/examples/qrcode_sandwich/README.md +163 -0
- pdd_cli-0.0.243/examples/qrcode_sandwich/qrcode_sandwich.png +0 -0
- pdd_cli-0.0.243/examples/qrcode_sandwich/qrcode_sandwich.py +120 -0
- pdd_cli-0.0.243/examples/qrcode_sandwich/qrcode_sandwich_python.prompt +28 -0
- pdd_cli-0.0.243/examples/split_main_example.py +120 -0
- pdd_cli-0.0.243/examples/split_validation_example.py +298 -0
- pdd_cli-0.0.243/examples/template_example/.gitignore +179 -0
- pdd_cli-0.0.243/examples/template_example/.pddrc +11 -0
- pdd_cli-0.0.243/examples/template_example/API_FAILURE_ANALYSIS.md +636 -0
- pdd_cli-0.0.243/examples/template_example/API_KEY_SETUP.md +41 -0
- pdd_cli-0.0.243/examples/template_example/EDIT_FILE_TOOL_README.md +341 -0
- pdd_cli-0.0.243/examples/template_example/Makefile +204 -0
- pdd_cli-0.0.243/examples/template_example/README.md +366 -0
- pdd_cli-0.0.243/examples/template_example/architecture.json +243 -0
- pdd_cli-0.0.243/examples/template_example/architecture_diagram.html +116 -0
- pdd_cli-0.0.243/examples/template_example/data/llm_model.csv +16 -0
- pdd_cli-0.0.243/examples/template_example/example.py +135 -0
- pdd_cli-0.0.243/examples/template_example/example2.md +91 -0
- pdd_cli-0.0.243/examples/template_example/project_dependencies.csv +7 -0
- pdd_cli-0.0.243/examples/template_example/prompts/__init___Python.prompt +77 -0
- pdd_cli-0.0.243/examples/template_example/prompts/architecture/architecture_json.prompt +346 -0
- pdd_cli-0.0.243/examples/template_example/prompts/cache_manager_utility_Python.prompt +74 -0
- pdd_cli-0.0.243/examples/template_example/prompts/cli_Python.prompt +76 -0
- pdd_cli-0.0.243/examples/template_example/prompts/core_python.prompt +284 -0
- pdd_cli-0.0.243/examples/template_example/prompts/cost_tracker_utility_Python.prompt +81 -0
- pdd_cli-0.0.243/examples/template_example/prompts/pyproject_TOML.prompt +31 -0
- pdd_cli-0.0.243/examples/template_example/prompts/think_tool_capability_Python.prompt +95 -0
- pdd_cli-0.0.243/examples/template_example/pyproject.toml +82 -0
- pdd_cli-0.0.243/examples/template_example/src/edit_file_tool/__init__.py +55 -0
- pdd_cli-0.0.243/examples/template_example/src/edit_file_tool/cache_manager_utility.py +164 -0
- pdd_cli-0.0.243/examples/template_example/src/edit_file_tool/cli.py +150 -0
- pdd_cli-0.0.243/examples/template_example/src/edit_file_tool/core.py +210 -0
- pdd_cli-0.0.243/examples/template_example/src/edit_file_tool/cost_tracker_utility.py +99 -0
- pdd_cli-0.0.243/examples/template_example/src/edit_file_tool/think_tool_capability.py +160 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/__init___example.py +63 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/cache_manager_utility_example.py +78 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/cli_example.py +96 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/core_example.py +81 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/cost_tracker_utility_example.py +96 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/generated_xml/example_mod.xml +12 -0
- pdd_cli-0.0.243/examples/template_example/src/examples/think_tool_capability_example.py +103 -0
- pdd_cli-0.0.243/examples/template_example/src/tests/test___init__.py +100 -0
- pdd_cli-0.0.243/examples/template_example/src/tests/test_cache_manager_utility.py +102 -0
- pdd_cli-0.0.243/examples/template_example/src/tests/test_cli.py +249 -0
- pdd_cli-0.0.243/examples/template_example/src/tests/test_core.py +279 -0
- pdd_cli-0.0.243/examples/template_example/src/tests/test_cost_tracker_utility.py +99 -0
- pdd_cli-0.0.243/examples/template_example/src/tests/test_think_tool_capability.py +217 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/ANALYSIS.md +327 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/DISCORD_SUMMARY.md +48 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/Makefile +190 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/README.md +110 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/benchmark_results/code_based/test_email_validator.py +521 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/benchmark_results/example_based/test_email_validator.py +657 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/email_validator_python.prompt +56 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/examples/email_validator_example.py +99 -0
- pdd_cli-0.0.243/examples/test_generation_benchmark/src/email_validator.py +119 -0
- pdd_cli-0.0.243/examples/tictactoe/README.md +55 -0
- pdd_cli-0.0.243/examples/tictactoe/tictactoe_architecture.json +197 -0
- pdd_cli-0.0.243/examples/tictactoe/tictactoe_architecture_diagram.html +109 -0
- pdd_cli-0.0.243/examples/tictactoe/tictactoe_prd.md +39 -0
- pdd_cli-0.0.243/pdd/_version.py +24 -0
- pdd_cli-0.0.243/pdd/agentic_e2e_fix_orchestrator.py +2588 -0
- pdd_cli-0.0.243/pdd/frontend/.gitignore +15 -0
- pdd_cli-0.0.243/pdd/frontend/App.tsx +1770 -0
- pdd_cli-0.0.243/pdd/frontend/README.md +20 -0
- pdd_cli-0.0.243/pdd/frontend/api.ts +1440 -0
- pdd_cli-0.0.243/pdd/frontend/components/AddModuleModal.tsx +325 -0
- pdd_cli-0.0.243/pdd/frontend/components/AddToQueueModal.tsx +400 -0
- pdd_cli-0.0.243/pdd/frontend/components/ArchitectureView.tsx +1641 -0
- pdd_cli-0.0.243/pdd/frontend/components/AuthStatusIndicator.tsx +73 -0
- pdd_cli-0.0.243/pdd/frontend/components/BatchFilterDropdown.tsx +198 -0
- pdd_cli-0.0.243/pdd/frontend/components/BugModal.tsx +86 -0
- pdd_cli-0.0.243/pdd/frontend/components/ChangeModal.tsx +183 -0
- pdd_cli-0.0.243/pdd/frontend/components/CommandForm.tsx +66 -0
- pdd_cli-0.0.243/pdd/frontend/components/CommandOutput.tsx +203 -0
- pdd_cli-0.0.243/pdd/frontend/components/CreatePromptModal.tsx +221 -0
- pdd_cli-0.0.243/pdd/frontend/components/DependencyViewer.tsx +1044 -0
- pdd_cli-0.0.243/pdd/frontend/components/DeviceIndicator.tsx +35 -0
- pdd_cli-0.0.243/pdd/frontend/components/ErrorBoundary.tsx +72 -0
- pdd_cli-0.0.243/pdd/frontend/components/ExecutionModeToggle.tsx +86 -0
- pdd_cli-0.0.243/pdd/frontend/components/ExtractsPanel.tsx +227 -0
- pdd_cli-0.0.243/pdd/frontend/components/FileBrowser.tsx +241 -0
- pdd_cli-0.0.243/pdd/frontend/components/FilePickerInput.tsx +101 -0
- pdd_cli-0.0.243/pdd/frontend/components/GeneratedCommand.tsx +67 -0
- pdd_cli-0.0.243/pdd/frontend/components/GenerationProgressModal.tsx +155 -0
- pdd_cli-0.0.243/pdd/frontend/components/GraphToolbar.tsx +217 -0
- pdd_cli-0.0.243/pdd/frontend/components/GroupEditModal.tsx +150 -0
- pdd_cli-0.0.243/pdd/frontend/components/GroupNode.tsx +116 -0
- pdd_cli-0.0.243/pdd/frontend/components/GuidanceSidebar.tsx +167 -0
- pdd_cli-0.0.243/pdd/frontend/components/Header.tsx +57 -0
- pdd_cli-0.0.243/pdd/frontend/components/Icon.tsx +182 -0
- pdd_cli-0.0.243/pdd/frontend/components/InputField.tsx +46 -0
- pdd_cli-0.0.243/pdd/frontend/components/JobCard.tsx +345 -0
- pdd_cli-0.0.243/pdd/frontend/components/JobDashboard.tsx +290 -0
- pdd_cli-0.0.243/pdd/frontend/components/JobOutputPanel.tsx +273 -0
- pdd_cli-0.0.243/pdd/frontend/components/ModelSelector.tsx +211 -0
- pdd_cli-0.0.243/pdd/frontend/components/ModelSliders.tsx +146 -0
- pdd_cli-0.0.243/pdd/frontend/components/ModuleEditModal.tsx +358 -0
- pdd_cli-0.0.243/pdd/frontend/components/ModuleNode.tsx +218 -0
- pdd_cli-0.0.243/pdd/frontend/components/ProjectSettings.tsx +707 -0
- pdd_cli-0.0.243/pdd/frontend/components/PromptCodeDiffModal.tsx +1204 -0
- pdd_cli-0.0.243/pdd/frontend/components/PromptEditor.tsx +271 -0
- pdd_cli-0.0.243/pdd/frontend/components/PromptMetricsBar.tsx +388 -0
- pdd_cli-0.0.243/pdd/frontend/components/PromptOrderModal.tsx +431 -0
- pdd_cli-0.0.243/pdd/frontend/components/PromptSelector.tsx +453 -0
- pdd_cli-0.0.243/pdd/frontend/components/PromptSpace.tsx +2113 -0
- pdd_cli-0.0.243/pdd/frontend/components/ReauthModal.tsx +330 -0
- pdd_cli-0.0.243/pdd/frontend/components/RemoteSessionSelector.tsx +197 -0
- pdd_cli-0.0.243/pdd/frontend/components/SyncFromPromptModal.tsx +300 -0
- pdd_cli-0.0.243/pdd/frontend/components/SyncOptionsModal.tsx +198 -0
- pdd_cli-0.0.243/pdd/frontend/components/SyncStatusBadge.tsx +166 -0
- pdd_cli-0.0.243/pdd/frontend/components/Tabs.tsx +38 -0
- pdd_cli-0.0.243/pdd/frontend/components/TaskQueueControls.tsx +187 -0
- pdd_cli-0.0.243/pdd/frontend/components/TaskQueueItem.tsx +255 -0
- pdd_cli-0.0.243/pdd/frontend/components/TaskQueuePanel.tsx +409 -0
- pdd_cli-0.0.243/pdd/frontend/components/TextAreaField.tsx +32 -0
- pdd_cli-0.0.243/pdd/frontend/components/Toast.tsx +235 -0
- pdd_cli-0.0.243/pdd/frontend/components/Tooltip.tsx +19 -0
- pdd_cli-0.0.243/pdd/frontend/constants.ts +375 -0
- pdd_cli-0.0.243/pdd/frontend/data/mockPrd.ts +32 -0
- pdd_cli-0.0.243/pdd/frontend/data/mockPrompts.ts +366 -0
- pdd_cli-0.0.243/pdd/frontend/hooks/useArchitectureHistory.ts +242 -0
- pdd_cli-0.0.243/pdd/frontend/hooks/useAudioNotification.ts +132 -0
- pdd_cli-0.0.243/pdd/frontend/hooks/useJobs.ts +689 -0
- pdd_cli-0.0.243/pdd/frontend/hooks/useTaskQueue.ts +404 -0
- pdd_cli-0.0.243/pdd/frontend/index.html +401 -0
- pdd_cli-0.0.243/pdd/frontend/index.tsx +19 -0
- pdd_cli-0.0.243/pdd/frontend/lib/batchUtils.ts +184 -0
- pdd_cli-0.0.243/pdd/frontend/lib/commandBuilder.ts +268 -0
- pdd_cli-0.0.243/pdd/frontend/lib/format.ts +13 -0
- pdd_cli-0.0.243/pdd/frontend/lib/includeAnalyzer.ts +69 -0
- pdd_cli-0.0.243/pdd/frontend/lib/modelResolver.ts +50 -0
- pdd_cli-0.0.243/pdd/frontend/lib/pddAutocomplete.ts +161 -0
- pdd_cli-0.0.243/pdd/frontend/lib/pddDirectives.ts +99 -0
- pdd_cli-0.0.243/pdd/frontend/metadata.json +5 -0
- pdd_cli-0.0.243/pdd/frontend/package-lock.json +5345 -0
- pdd_cli-0.0.243/pdd/frontend/package.json +43 -0
- pdd_cli-0.0.243/pdd/frontend/public/logo.svg +33 -0
- pdd_cli-0.0.243/pdd/frontend/tests/compact-font-direct-zoom.test.tsx +88 -0
- pdd_cli-0.0.243/pdd/frontend/tests/compact-font-size.test.ts +36 -0
- pdd_cli-0.0.243/pdd/frontend/tests/group-layout.test.ts +123 -0
- pdd_cli-0.0.243/pdd/frontend/tests/group-subflow-nodes.test.tsx +228 -0
- pdd_cli-0.0.243/pdd/frontend/tests/module-needs-sync.test.tsx +87 -0
- pdd_cli-0.0.243/pdd/frontend/tests/rearrange-discard.test.tsx +112 -0
- pdd_cli-0.0.243/pdd/frontend/tests/rearrange-positions.test.tsx +109 -0
- pdd_cli-0.0.243/pdd/frontend/tests/setup.ts +1 -0
- pdd_cli-0.0.243/pdd/frontend/tests/sync-completed-refresh.test.tsx +258 -0
- pdd_cli-0.0.243/pdd/frontend/tests/vp-zoom-sync.test.tsx +56 -0
- pdd_cli-0.0.243/pdd/frontend/tests/waypoint-edge.test.ts +77 -0
- pdd_cli-0.0.243/pdd/frontend/tsconfig.json +31 -0
- pdd_cli-0.0.243/pdd/frontend/types.ts +180 -0
- pdd_cli-0.0.243/pdd/frontend/vite.config.ts +43 -0
- pdd_cli-0.0.243/pdd/llm_invoke.py +4636 -0
- pdd_cli-0.0.243/pdd/pdd_completion.sh +190 -0
- pdd_cli-0.0.243/pdd/prompts/Makefile_makefile.prompt +99 -0
- pdd_cli-0.0.243/pdd/prompts/_keyring_timeout_python.prompt +24 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_architecture_orchestrator_python.prompt +100 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_architecture_python.prompt +75 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_bug_orchestrator_python.prompt +223 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_bug_python.prompt +41 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_change_orchestrator_python.prompt +439 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_change_python.prompt +39 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_checkup_orchestrator_python.prompt +53 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_checkup_python.prompt +53 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_common_python.prompt +204 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_common_worktree_python.prompt +53 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_crash_python.prompt +47 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_e2e_fix_orchestrator_python.prompt +129 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_e2e_fix_python.prompt +39 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_fix_python.prompt +60 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_langtest_python.prompt +43 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_split_orchestrator_python.prompt +268 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_split_python.prompt +74 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_sync_python.prompt +154 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_sync_runner_python.prompt +162 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_test_generate_python.prompt +66 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_test_orchestrator_python.prompt +55 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_test_python.prompt +40 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_update_python.prompt +65 -0
- pdd_cli-0.0.243/pdd/prompts/agentic_verify_python.prompt +40 -0
- pdd_cli-0.0.243/pdd/prompts/api_key_scanner_python.prompt +43 -0
- pdd_cli-0.0.243/pdd/prompts/architecture_include_validation_python.prompt +256 -0
- pdd_cli-0.0.243/pdd/prompts/architecture_registry_python.prompt +191 -0
- pdd_cli-0.0.243/pdd/prompts/architecture_sync_python.prompt +102 -0
- pdd_cli-0.0.243/pdd/prompts/auth_service_python.prompt +115 -0
- pdd_cli-0.0.243/pdd/prompts/auto_deps_architecture_python.prompt +129 -0
- pdd_cli-0.0.243/pdd/prompts/auto_deps_main_python.prompt +136 -0
- pdd_cli-0.0.243/pdd/prompts/auto_include_python.prompt +93 -0
- pdd_cli-0.0.243/pdd/prompts/auto_update_python.prompt +30 -0
- pdd_cli-0.0.243/pdd/prompts/bug_main_python.prompt +92 -0
- pdd_cli-0.0.243/pdd/prompts/bug_to_unit_test_python.prompt +50 -0
- pdd_cli-0.0.243/pdd/prompts/change_main_python.prompt +125 -0
- pdd_cli-0.0.243/pdd/prompts/change_python.prompt +63 -0
- pdd_cli-0.0.243/pdd/prompts/checkup_review_loop_python.prompt +158 -0
- pdd_cli-0.0.243/pdd/prompts/ci_detect_changed_modules_python.prompt +64 -0
- pdd_cli-0.0.243/pdd/prompts/ci_drift_heal_python.prompt +129 -0
- pdd_cli-0.0.243/pdd/prompts/ci_validation_python.prompt +54 -0
- pdd_cli-0.0.243/pdd/prompts/cli_detector_python.prompt +62 -0
- pdd_cli-0.0.243/pdd/prompts/cli_python.prompt +44 -0
- pdd_cli-0.0.243/pdd/prompts/cmd_test_main_python.prompt +120 -0
- pdd_cli-0.0.243/pdd/prompts/code_generator_main_python.prompt +119 -0
- pdd_cli-0.0.243/pdd/prompts/code_generator_python.prompt +69 -0
- pdd_cli-0.0.243/pdd/prompts/combine.sh +22 -0
- pdd_cli-0.0.243/pdd/prompts/combined_output.txt +2117 -0
- pdd_cli-0.0.243/pdd/prompts/commands/__init___python.prompt +44 -0
- pdd_cli-0.0.243/pdd/prompts/commands/analysis_python.prompt +67 -0
- pdd_cli-0.0.243/pdd/prompts/commands/auth_python.prompt +69 -0
- pdd_cli-0.0.243/pdd/prompts/commands/checkup_python.prompt +63 -0
- pdd_cli-0.0.243/pdd/prompts/commands/connect_python.prompt +112 -0
- pdd_cli-0.0.243/pdd/prompts/commands/firecrawl_python.prompt +33 -0
- pdd_cli-0.0.243/pdd/prompts/commands/fix_python.prompt +61 -0
- pdd_cli-0.0.243/pdd/prompts/commands/generate_python.prompt +74 -0
- pdd_cli-0.0.243/pdd/prompts/commands/maintenance_python.prompt +128 -0
- pdd_cli-0.0.243/pdd/prompts/commands/misc_python.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/commands/modify_python.prompt +92 -0
- pdd_cli-0.0.243/pdd/prompts/commands/report_python.prompt +44 -0
- pdd_cli-0.0.243/pdd/prompts/commands/sessions_python.prompt +48 -0
- pdd_cli-0.0.243/pdd/prompts/commands/templates_python.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/commands/utility_python.prompt +53 -0
- pdd_cli-0.0.243/pdd/prompts/commands/which_python.prompt +48 -0
- pdd_cli-0.0.243/pdd/prompts/comment_line_python.prompt +13 -0
- pdd_cli-0.0.243/pdd/prompts/config_resolution_python.prompt +39 -0
- pdd_cli-0.0.243/pdd/prompts/conflicts_in_prompts_python.prompt +44 -0
- pdd_cli-0.0.243/pdd/prompts/conflicts_main_python.prompt +79 -0
- pdd_cli-0.0.243/pdd/prompts/construct_paths_python.prompt +148 -0
- pdd_cli-0.0.243/pdd/prompts/content_selector_python.prompt +86 -0
- pdd_cli-0.0.243/pdd/prompts/context_generator_main_python.prompt +115 -0
- pdd_cli-0.0.243/pdd/prompts/context_generator_python.prompt +64 -0
- pdd_cli-0.0.243/pdd/prompts/continue_generation_python.prompt +37 -0
- pdd_cli-0.0.243/pdd/prompts/core/cli_python.prompt +86 -0
- pdd_cli-0.0.243/pdd/prompts/core/cloud_python.prompt +67 -0
- pdd_cli-0.0.243/pdd/prompts/core/dump_python.prompt +86 -0
- pdd_cli-0.0.243/pdd/prompts/core/duplicate_cli_guard_python.prompt +84 -0
- pdd_cli-0.0.243/pdd/prompts/core/errors_python.prompt +40 -0
- pdd_cli-0.0.243/pdd/prompts/core/remote_session_python.prompt +22 -0
- pdd_cli-0.0.243/pdd/prompts/core/utils_python.prompt +52 -0
- pdd_cli-0.0.243/pdd/prompts/core_dump_smoke_python.prompt +1 -0
- pdd_cli-0.0.243/pdd/prompts/crash_main_python.prompt +51 -0
- pdd_cli-0.0.243/pdd/prompts/detect_change_main_python.prompt +50 -0
- pdd_cli-0.0.243/pdd/prompts/detect_change_python.prompt +72 -0
- pdd_cli-0.0.243/pdd/prompts/durable_sync_runner_python.prompt +42 -0
- pdd_cli-0.0.243/pdd/prompts/edit_file_python.prompt +81 -0
- pdd_cli-0.0.243/pdd/prompts/embed_retrieve_python.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/extracts_prune_python.prompt +49 -0
- pdd_cli-0.0.243/pdd/prompts/failure_classification_python.prompt +29 -0
- pdd_cli-0.0.243/pdd/prompts/find_section_python.prompt +28 -0
- pdd_cli-0.0.243/pdd/prompts/firecrawl_cache_python.prompt +55 -0
- pdd_cli-0.0.243/pdd/prompts/fix_code_loop_python.prompt +42 -0
- pdd_cli-0.0.243/pdd/prompts/fix_code_module_errors_python.prompt +61 -0
- pdd_cli-0.0.243/pdd/prompts/fix_error_loop_python.prompt +161 -0
- pdd_cli-0.0.243/pdd/prompts/fix_errors_from_unit_tests_python.prompt +118 -0
- pdd_cli-0.0.243/pdd/prompts/fix_main_python.prompt +111 -0
- pdd_cli-0.0.243/pdd/prompts/fix_verification_errors_loop_python.prompt +55 -0
- pdd_cli-0.0.243/pdd/prompts/fix_verification_errors_python.prompt +92 -0
- pdd_cli-0.0.243/pdd/prompts/fix_verification_main_python.prompt +119 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/App_typescriptreact.prompt +88 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/api_typescript.prompt +210 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/AddModuleModal_typescriptreact.prompt +63 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/AddToQueueModal_typescriptreact.prompt +66 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ArchitectureView_typescriptreact.prompt +70 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/AuthStatusIndicator_typescriptreact.prompt +24 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/BatchFilterDropdown_typescriptreact.prompt +49 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/BugModal_typescriptreact.prompt +13 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ChangeModal_typescriptreact.prompt +58 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/CommandForm_typescriptreact.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/CommandOutput_typescriptreact.prompt +31 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/CreatePromptModal_typescriptreact.prompt +50 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/DependencyViewer_typescriptreact.prompt +110 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/DeviceIndicator_typescriptreact.prompt +19 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ErrorBoundary_typescriptreact.prompt +13 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ExecutionModeToggle_typescriptreact.prompt +35 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/FileBrowser_typescriptreact.prompt +49 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/FilePickerInput_typescriptreact.prompt +38 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/GeneratedCommand_typescriptreact.prompt +31 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/GenerationProgressModal_typescriptreact.prompt +47 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/GraphToolbar_typescriptreact.prompt +39 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/GuidanceSidebar_typescriptreact.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/Header_typescriptreact.prompt +27 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/Icon_typescriptreact.prompt +14 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/InputField_typescriptreact.prompt +27 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/JobCard_typescriptreact.prompt +72 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/JobDashboard_typescriptreact.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/JobOutputPanel_typescriptreact.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ModelSelector_typescriptreact.prompt +41 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ModelSliders_typescriptreact.prompt +33 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ModuleEditModal_typescriptreact.prompt +66 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ModuleNode_typescriptreact.prompt +45 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ProjectSettings_typescriptreact.prompt +125 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/PromptCodeDiffModal_typescriptreact.prompt +45 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/PromptEditor_typescriptreact.prompt +56 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/PromptMetricsBar_typescriptreact.prompt +46 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/PromptOrderModal_typescriptreact.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/PromptSelector_typescriptreact.prompt +43 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/PromptSpace_typescriptreact.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/ReauthModal_typescriptreact.prompt +48 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/RemoteSessionSelector_typescriptreact.prompt +33 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/SyncFromPromptModal_typescriptreact.prompt +44 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/SyncOptionsModal_typescriptreact.prompt +41 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/SyncStatusBadge_typescriptreact.prompt +26 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/Tabs_typescriptreact.prompt +24 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/TaskQueueControls_typescriptreact.prompt +30 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/TaskQueueItem_typescriptreact.prompt +29 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/TaskQueuePanel_typescriptreact.prompt +42 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/TextAreaField_typescriptreact.prompt +21 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/Toast_typescriptreact.prompt +28 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/components/Tooltip_typescriptreact.prompt +30 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/constants_typescript.prompt +78 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/hooks/useArchitectureHistory_typescript.prompt +50 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/hooks/useAudioNotification_typescript.prompt +32 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/hooks/useJobs_typescript.prompt +67 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/hooks/useTaskQueue_typescript.prompt +60 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/index_typescriptreact.prompt +19 -0
- pdd_cli-0.0.243/pdd/prompts/frontend/types_typescript.prompt +21 -0
- pdd_cli-0.0.243/pdd/prompts/generate_model_catalog_python.prompt +74 -0
- pdd_cli-0.0.243/pdd/prompts/generate_output_paths_python.prompt +90 -0
- pdd_cli-0.0.243/pdd/prompts/generate_test_python.prompt +106 -0
- pdd_cli-0.0.243/pdd/prompts/generation_completion_python.prompt +32 -0
- pdd_cli-0.0.243/pdd/prompts/get_comment_python.prompt +21 -0
- pdd_cli-0.0.243/pdd/prompts/get_extension_python.prompt +21 -0
- pdd_cli-0.0.243/pdd/prompts/get_jwt_token_python.prompt +160 -0
- pdd_cli-0.0.243/pdd/prompts/get_language_python.prompt +22 -0
- pdd_cli-0.0.243/pdd/prompts/get_lint_commands_python.prompt +49 -0
- pdd_cli-0.0.243/pdd/prompts/get_run_command_python.prompt +38 -0
- pdd_cli-0.0.243/pdd/prompts/get_test_command_python.prompt +54 -0
- pdd_cli-0.0.243/pdd/prompts/git_update_python.prompt +26 -0
- pdd_cli-0.0.243/pdd/prompts/include_query_extractor_python.prompt +62 -0
- pdd_cli-0.0.243/pdd/prompts/increase_tests_python.prompt +50 -0
- pdd_cli-0.0.243/pdd/prompts/incremental_code_generator_python.prompt +94 -0
- pdd_cli-0.0.243/pdd/prompts/incremental_prd_architecture_python.prompt +92 -0
- pdd_cli-0.0.243/pdd/prompts/insert_includes_python.prompt +78 -0
- pdd_cli-0.0.243/pdd/prompts/install_completion_python.prompt +70 -0
- pdd_cli-0.0.243/pdd/prompts/language_format_csv.prompt +9 -0
- pdd_cli-0.0.243/pdd/prompts/llm_invoke_python.prompt +277 -0
- pdd_cli-0.0.243/pdd/prompts/llm_model_csv.prompt +12 -0
- pdd_cli-0.0.243/pdd/prompts/load_prompt_template_python.prompt +21 -0
- pdd_cli-0.0.243/pdd/prompts/logo_animation_python.prompt +25 -0
- pdd_cli-0.0.243/pdd/prompts/main_gen_prompt.prompt +23 -0
- pdd_cli-0.0.243/pdd/prompts/metadata_sync_python.prompt +78 -0
- pdd_cli-0.0.243/pdd/prompts/model_tester_python.prompt +46 -0
- pdd_cli-0.0.243/pdd/prompts/one_session_sync_python.prompt +51 -0
- pdd_cli-0.0.243/pdd/prompts/operation_log_python.prompt +47 -0
- pdd_cli-0.0.243/pdd/prompts/path_resolution_python.prompt +69 -0
- pdd_cli-0.0.243/pdd/prompts/pdd_completion_bash.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/pdd_completion_fish.prompt +22 -0
- pdd_cli-0.0.243/pdd/prompts/pdd_completion_zsh.prompt +28 -0
- pdd_cli-0.0.243/pdd/prompts/pdd_theme_json.prompt +20 -0
- pdd_cli-0.0.243/pdd/prompts/pddrc_initializer_python.prompt +65 -0
- pdd_cli-0.0.243/pdd/prompts/pin_example_hack_python.prompt +175 -0
- pdd_cli-0.0.243/pdd/prompts/postprocess_0_python.prompt +108 -0
- pdd_cli-0.0.243/pdd/prompts/postprocess_python.prompt +40 -0
- pdd_cli-0.0.243/pdd/prompts/preprocess_main_python.prompt +78 -0
- pdd_cli-0.0.243/pdd/prompts/preprocess_python.prompt +111 -0
- pdd_cli-0.0.243/pdd/prompts/process_csv_change_python.prompt +112 -0
- pdd_cli-0.0.243/pdd/prompts/prompt_tester_python.prompt +67 -0
- pdd_cli-0.0.243/pdd/prompts/provider_manager_python.prompt +93 -0
- pdd_cli-0.0.243/pdd/prompts/pypi_description_restructuredtext.prompt +15 -0
- pdd_cli-0.0.243/pdd/prompts/pyproject_toml.prompt +21 -0
- pdd_cli-0.0.243/pdd/prompts/pytest_output_python.prompt +51 -0
- pdd_cli-0.0.243/pdd/prompts/python_env_detector_python.prompt +79 -0
- pdd_cli-0.0.243/pdd/prompts/reasoning_python.prompt +23 -0
- pdd_cli-0.0.243/pdd/prompts/regression_analysis_log.prompt +55 -0
- pdd_cli-0.0.243/pdd/prompts/regression_bash.prompt +82 -0
- pdd_cli-0.0.243/pdd/prompts/remote_session_python.prompt +106 -0
- pdd_cli-0.0.243/pdd/prompts/render_mermaid_python.prompt +31 -0
- pdd_cli-0.0.243/pdd/prompts/resurface_check_Python.prompt +80 -0
- pdd_cli-0.0.243/pdd/prompts/run_generated_python.prompt +1 -0
- pdd_cli-0.0.243/pdd/prompts/server/__init___python.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/server/app_python.prompt +83 -0
- pdd_cli-0.0.243/pdd/prompts/server/click_executor_python.prompt +73 -0
- pdd_cli-0.0.243/pdd/prompts/server/executor_python.prompt +80 -0
- pdd_cli-0.0.243/pdd/prompts/server/jobs_python.prompt +88 -0
- pdd_cli-0.0.243/pdd/prompts/server/models_python.prompt +69 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/__init___python.prompt +29 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/architecture_python.prompt +165 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/auth_python.prompt +101 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/commands_python.prompt +131 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/config_python.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/extracts_python.prompt +78 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/files_python.prompt +138 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/prompts_python.prompt +109 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/session_python.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/server/routes/websocket_python.prompt +69 -0
- pdd_cli-0.0.243/pdd/prompts/server/security_python.prompt +64 -0
- pdd_cli-0.0.243/pdd/prompts/server/terminal_spawner_python.prompt +78 -0
- pdd_cli-0.0.243/pdd/prompts/server/token_counter_python.prompt +36 -0
- pdd_cli-0.0.243/pdd/prompts/setup_tool_python.prompt +155 -0
- pdd_cli-0.0.243/pdd/prompts/split_main_python.prompt +99 -0
- pdd_cli-0.0.243/pdd/prompts/split_python.prompt +62 -0
- pdd_cli-0.0.243/pdd/prompts/split_validation_python.prompt +99 -0
- pdd_cli-0.0.243/pdd/prompts/summarize_directory_python.prompt +54 -0
- pdd_cli-0.0.243/pdd/prompts/sync_animation_python.prompt +86 -0
- pdd_cli-0.0.243/pdd/prompts/sync_determine_operation_python.prompt +80 -0
- pdd_cli-0.0.243/pdd/prompts/sync_main_python.prompt +224 -0
- pdd_cli-0.0.243/pdd/prompts/sync_orchestration_python.prompt +409 -0
- pdd_cli-0.0.243/pdd/prompts/sync_order_python.prompt +98 -0
- pdd_cli-0.0.243/pdd/prompts/sync_tui_python.prompt +73 -0
- pdd_cli-0.0.243/pdd/prompts/template_expander_python.prompt +41 -0
- pdd_cli-0.0.243/pdd/prompts/template_registry_python.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/trace_main_python.prompt +90 -0
- pdd_cli-0.0.243/pdd/prompts/trace_python.prompt +56 -0
- pdd_cli-0.0.243/pdd/prompts/track_cost_python.prompt +33 -0
- pdd_cli-0.0.243/pdd/prompts/unfinished_prompt_python.prompt +48 -0
- pdd_cli-0.0.243/pdd/prompts/update_main_python.prompt +156 -0
- pdd_cli-0.0.243/pdd/prompts/update_model_costs_python.prompt +63 -0
- pdd_cli-0.0.243/pdd/prompts/update_prompt_python.prompt +75 -0
- pdd_cli-0.0.243/pdd/prompts/user_story_tests_python.prompt +58 -0
- pdd_cli-0.0.243/pdd/prompts/validate_prompt_includes_python.prompt +83 -0
- pdd_cli-0.0.243/pdd/prompts/xml/change_LLM.prompt +34 -0
- pdd_cli-0.0.243/pdd/prompts/xml/change_example_full.prompt +72 -0
- pdd_cli-0.0.243/pdd/prompts/xml/change_example_partial.prompt +44 -0
- pdd_cli-0.0.243/pdd/prompts/xml/change_example_partial_processed.prompt +3085 -0
- pdd_cli-0.0.243/pdd/prompts/xml/split_LLM.prompt +52 -0
- pdd_cli-0.0.243/pdd/prompts/xml_tagger_python.prompt +47 -0
- pdd_cli-0.0.243/pdd-local.sh +36 -0
- pdd_cli-0.0.243/pdd_cli.egg-info/PKG-INFO +326 -0
- pdd_cli-0.0.243/pdd_cli.egg-info/SOURCES.txt +1818 -0
- pdd_cli-0.0.243/pdd_cli.egg-info/requires.txt +45 -0
- pdd_cli-0.0.243/pr_summary.md +121 -0
- pdd_cli-0.0.243/project_dependencies.csv +285 -0
- pdd_cli-0.0.243/pypi_description.rst +259 -0
- pdd_cli-0.0.243/pyproject.toml +136 -0
- pdd_cli-0.0.243/pyrightconfig.json +8 -0
- pdd_cli-0.0.243/pytest.ini +17 -0
- pdd_cli-0.0.243/requirements.txt +47 -0
- pdd_cli-0.0.243/scripts/check_deps.py +89 -0
- pdd_cli-0.0.243/scripts/ci_detect_changed_modules.py +403 -0
- pdd_cli-0.0.243/scripts/copy_package_data_to_public.py +590 -0
- pdd_cli-0.0.243/scripts/extract_wheel.py +73 -0
- pdd_cli-0.0.243/scripts/preprocess_wheel.py +130 -0
- pdd_cli-0.0.243/tests/__init__.py +0 -0
- pdd_cli-0.0.243/tests/cloud_regression.sh +1094 -0
- pdd_cli-0.0.243/tests/commands/__init__.py +0 -0
- pdd_cli-0.0.243/tests/commands/test_analysis.py +702 -0
- pdd_cli-0.0.243/tests/commands/test_auth.py +433 -0
- pdd_cli-0.0.243/tests/commands/test_checkup.py +64 -0
- pdd_cli-0.0.243/tests/commands/test_connect.py +407 -0
- pdd_cli-0.0.243/tests/commands/test_fix.py +367 -0
- pdd_cli-0.0.243/tests/commands/test_generate.py +492 -0
- pdd_cli-0.0.243/tests/commands/test_maintenance.py +686 -0
- pdd_cli-0.0.243/tests/commands/test_modify.py +619 -0
- pdd_cli-0.0.243/tests/commands/test_sessions.py +493 -0
- pdd_cli-0.0.243/tests/commands/test_utility.py +239 -0
- pdd_cli-0.0.243/tests/conftest.py +418 -0
- pdd_cli-0.0.243/tests/core/__init__.py +1 -0
- pdd_cli-0.0.243/tests/core/test_cli.py +721 -0
- pdd_cli-0.0.243/tests/core/test_cloud.py +621 -0
- pdd_cli-0.0.243/tests/core/test_remote_session.py +148 -0
- pdd_cli-0.0.243/tests/fixtures/arch_include_validate_ok/architecture.json +4 -0
- pdd_cli-0.0.243/tests/fixtures/arch_include_validate_ok/prompts/child_Python.prompt +2 -0
- pdd_cli-0.0.243/tests/fixtures/arch_include_validate_ok/prompts/parent_Python.prompt +1 -0
- pdd_cli-0.0.243/tests/fixtures/autoheal_1187_post.prompt +41 -0
- pdd_cli-0.0.243/tests/fixtures/autoheal_1187_pre.prompt +176 -0
- pdd_cli-0.0.243/tests/fixtures/conftest.py +8 -0
- pdd_cli-0.0.243/tests/fixtures/encode_message_python.prompt +6 -0
- pdd_cli-0.0.243/tests/fixtures/issue591_behavioral_signal_test.py.fixture +54 -0
- pdd_cli-0.0.243/tests/fixtures/issue591_dockerfile_test.py.fixture +23 -0
- pdd_cli-0.0.243/tests/fixtures/issue591_structural_getsource_test.py.fixture +34 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/one_session_agent_LLM_original.prompt +440 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s7_large_code_bug/examples/llm_client_example.py +101 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s7_large_code_bug/prompts/llm_client_python.prompt +44 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s7_large_code_bug/scenario.json +10 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s7_large_code_bug/src/llm_client.py +3584 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s7_large_code_bug/tests/test_llm_client.py +479 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s8_large_minimal_tests/examples/workflow_engine_example.py +267 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s8_large_minimal_tests/prompts/workflow_engine_python.prompt +49 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s8_large_minimal_tests/scenario.json +10 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s8_large_minimal_tests/src/workflow_engine.py +3901 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s8_large_minimal_tests/tests/test_workflow_engine.py +92 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s9_large_wrong_tests/examples/config_manager_example.py +208 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s9_large_wrong_tests/prompts/config_manager_python.prompt +62 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s9_large_wrong_tests/scenario.json +10 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s9_large_wrong_tests/src/config_manager.py +3417 -0
- pdd_cli-0.0.243/tests/fixtures/one_session_eval/s9_large_wrong_tests/tests/test_config_manager.py +704 -0
- pdd_cli-0.0.243/tests/fixtures/simple_math.py +35 -0
- pdd_cli-0.0.243/tests/fixtures/simple_math_example.py +19 -0
- pdd_cli-0.0.243/tests/fixtures/simple_math_python.prompt +12 -0
- pdd_cli-0.0.243/tests/fixtures/sub_simple_math.prompt +8 -0
- pdd_cli-0.0.243/tests/fixtures/test_other_python.prompt +11 -0
- pdd_cli-0.0.243/tests/fixtures/test_simple_math.py +24 -0
- pdd_cli-0.0.243/tests/fixtures/updated_simple_math_python.prompt +11 -0
- pdd_cli-0.0.243/tests/isolated_verify.py +385 -0
- pdd_cli-0.0.243/tests/prompt_tester.py +556 -0
- pdd_cli-0.0.243/tests/regression.sh +2020 -0
- pdd_cli-0.0.243/tests/regression_public.sh +224 -0
- pdd_cli-0.0.243/tests/server/__init__.py +0 -0
- pdd_cli-0.0.243/tests/server/conftest.py +45 -0
- pdd_cli-0.0.243/tests/server/routes/__init__.py +0 -0
- pdd_cli-0.0.243/tests/server/routes/conftest.py +162 -0
- pdd_cli-0.0.243/tests/server/routes/test_architecture.py +483 -0
- pdd_cli-0.0.243/tests/server/routes/test_auth.py +399 -0
- pdd_cli-0.0.243/tests/server/routes/test_commands.py +1377 -0
- pdd_cli-0.0.243/tests/server/routes/test_config.py +115 -0
- pdd_cli-0.0.243/tests/server/routes/test_extracts.py +521 -0
- pdd_cli-0.0.243/tests/server/routes/test_files.py +1450 -0
- pdd_cli-0.0.243/tests/server/routes/test_prompts.py +1239 -0
- pdd_cli-0.0.243/tests/server/routes/test_routes_init.py +150 -0
- pdd_cli-0.0.243/tests/server/routes/test_websocket.py +482 -0
- pdd_cli-0.0.243/tests/server/test___init__.py +173 -0
- pdd_cli-0.0.243/tests/server/test_app.py +516 -0
- pdd_cli-0.0.243/tests/server/test_click_executor.py +488 -0
- pdd_cli-0.0.243/tests/server/test_executor.py +257 -0
- pdd_cli-0.0.243/tests/server/test_jobs.py +788 -0
- pdd_cli-0.0.243/tests/server/test_models.py +272 -0
- pdd_cli-0.0.243/tests/server/test_security.py +377 -0
- pdd_cli-0.0.243/tests/server/test_terminal_spawner.py +907 -0
- pdd_cli-0.0.243/tests/server/test_token_counter.py +387 -0
- pdd_cli-0.0.243/tests/sync_regression.sh +1321 -0
- pdd_cli-0.0.243/tests/sync_regression_parallel.sh +63 -0
- pdd_cli-0.0.243/tests/test_agentic_e2e_fix_orchestrator.py +8004 -0
- pdd_cli-0.0.243/tests/test_change_call_site_and_retry.py +252 -0
- pdd_cli-0.0.243/tests/test_llm_invoke.py +6443 -0
- pdd_cli-0.0.243/tests/test_space_path_support.sh +87 -0
- pdd_cli-0.0.243/tests/test_version.py +73 -0
- pdd_cli-0.0.243/tests/validate_behavioral_test.py +259 -0
- pdd_cli-0.0.243/user_stories/story__template.md +19 -0
- pdd_cli-0.0.243/utils/__init__.py +1 -0
- pdd_cli-0.0.243/utils/mcp/README.md +174 -0
- pdd_cli-0.0.243/utils/mcp/context/README.md +77 -0
- pdd_cli-0.0.243/utils/mcp/context/definitions_example.py +92 -0
- pdd_cli-0.0.243/utils/mcp/context/handlers_example.py +200 -0
- pdd_cli-0.0.243/utils/mcp/context/main_example.py +102 -0
- pdd_cli-0.0.243/utils/mcp/context/regenerate_test_files.py +713 -0
- pdd_cli-0.0.243/utils/mcp/context/runner_example.py +70 -0
- pdd_cli-0.0.243/utils/mcp/context/server_example.py +38 -0
- pdd_cli-0.0.243/utils/mcp/generate_prompt.sh +25 -0
- pdd_cli-0.0.243/utils/mcp/generate_python.sh +58 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/__init__.py +3 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/main.py +287 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/server.py +64 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/tools/__init__.py +1 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/tools/api_key_check.py +66 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/tools/definitions.py +901 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/tools/handlers.py +1078 -0
- pdd_cli-0.0.243/utils/mcp/pdd_mcp_server/tools/runner.py +185 -0
- pdd_cli-0.0.243/utils/mcp/prompts/README_md.prompt +15 -0
- pdd_cli-0.0.243/utils/mcp/prompts/definitions_python.prompt +108 -0
- pdd_cli-0.0.243/utils/mcp/prompts/generate_prompt.prompt +28 -0
- pdd_cli-0.0.243/utils/mcp/prompts/handlers_python.prompt +128 -0
- pdd_cli-0.0.243/utils/mcp/prompts/io_dependencies.csv +54 -0
- pdd_cli-0.0.243/utils/mcp/prompts/io_dependencies_csv.prompt +24 -0
- pdd_cli-0.0.243/utils/mcp/prompts/main_python.prompt +192 -0
- pdd_cli-0.0.243/utils/mcp/prompts/mcp_architecture.csv +31 -0
- pdd_cli-0.0.243/utils/mcp/prompts/mcp_architecture_csv.prompt +21 -0
- pdd_cli-0.0.243/utils/mcp/prompts/requirements_txt.prompt +5 -0
- pdd_cli-0.0.243/utils/mcp/prompts/runner_python.prompt +157 -0
- pdd_cli-0.0.243/utils/mcp/prompts/server_python.prompt +111 -0
- pdd_cli-0.0.243/utils/mcp/requirements.txt +8 -0
- pdd_cli-0.0.243/utils/mcp/tests/test_mcp_client.py +47 -0
- pdd_cli-0.0.243/utils/run_generated.py +47 -0
- pdd_cli-0.0.243/utils/vscode_prompt/.gitignore +15 -0
- pdd_cli-0.0.243/utils/vscode_prompt/.vscode/launch.json +17 -0
- pdd_cli-0.0.243/utils/vscode_prompt/.vscodeignore +11 -0
- pdd_cli-0.0.243/utils/vscode_prompt/AGENTS.md +39 -0
- pdd_cli-0.0.243/utils/vscode_prompt/CHANGELOG.md +50 -0
- pdd_cli-0.0.243/utils/vscode_prompt/LICENSE.md +21 -0
- pdd_cli-0.0.243/utils/vscode_prompt/Makefile +111 -0
- pdd_cli-0.0.243/utils/vscode_prompt/README.md +146 -0
- pdd_cli-0.0.243/utils/vscode_prompt/examples/pddInstaller_example.ts +161 -0
- pdd_cli-0.0.243/utils/vscode_prompt/images/icon.png +0 -0
- pdd_cli-0.0.243/utils/vscode_prompt/images/icon.svg +32 -0
- pdd_cli-0.0.243/utils/vscode_prompt/images/video-thumb.png +0 -0
- pdd_cli-0.0.243/utils/vscode_prompt/language-configuration.json +28 -0
- pdd_cli-0.0.243/utils/vscode_prompt/out/extension.js +106 -0
- pdd_cli-0.0.243/utils/vscode_prompt/out/extension.js.map +1 -0
- pdd_cli-0.0.243/utils/vscode_prompt/out/pddInstaller.js +394 -0
- pdd_cli-0.0.243/utils/vscode_prompt/out/pddInstaller.js.map +1 -0
- pdd_cli-0.0.243/utils/vscode_prompt/package-lock.json +1931 -0
- pdd_cli-0.0.243/utils/vscode_prompt/package.json +159 -0
- pdd_cli-0.0.243/utils/vscode_prompt/prompts/extension_typescript.prompt +65 -0
- pdd_cli-0.0.243/utils/vscode_prompt/prompts/pddInstaller_typescript.prompt +194 -0
- pdd_cli-0.0.243/utils/vscode_prompt/prompts/prompt.tmLanguage_json.prompt +25 -0
- pdd_cli-0.0.243/utils/vscode_prompt/scripts/generate-video-thumb.mjs +43 -0
- pdd_cli-0.0.243/utils/vscode_prompt/scripts/render-icon.mjs +17 -0
- pdd_cli-0.0.243/utils/vscode_prompt/src/extension.ts +89 -0
- pdd_cli-0.0.243/utils/vscode_prompt/src/pddInstaller.ts +445 -0
- pdd_cli-0.0.243/utils/vscode_prompt/syntaxes/prompt.tmLanguage.json +276 -0
- pdd_cli-0.0.243/utils/vscode_prompt/tests/test_extension.ts +241 -0
- pdd_cli-0.0.243/utils/vscode_prompt/tests/test_pddInstaller.ts +538 -0
- pdd_cli-0.0.243/utils/vscode_prompt/tsconfig.json +15 -0
- pdd_cli-0.0.243/utils/vscode_prompt/vsc-extension-quickstart.md +69 -0
- pdd_cli-0.0.241/PKG-INFO +0 -327
- pdd_cli-0.0.241/README.md +0 -3666
- pdd_cli-0.0.241/pdd/agentic_e2e_fix_orchestrator.py +0 -2546
- pdd_cli-0.0.241/pdd/llm_invoke.py +0 -4609
- pdd_cli-0.0.241/pdd/pdd_completion.sh +0 -191
- pdd_cli-0.0.241/pdd_cli.egg-info/PKG-INFO +0 -327
- pdd_cli-0.0.241/pdd_cli.egg-info/SOURCES.txt +0 -675
- pdd_cli-0.0.241/pdd_cli.egg-info/requires.txt +0 -46
- pdd_cli-0.0.241/pypi_description.rst +0 -259
- pdd_cli-0.0.241/pyproject.toml +0 -146
- pdd_cli-0.0.241/tests/test_agentic_e2e_fix_orchestrator.py +0 -7695
- pdd_cli-0.0.241/tests/test_change_call_site_and_retry.py +0 -250
- pdd_cli-0.0.241/tests/test_llm_invoke.py +0 -6363
- pdd_cli-0.0.241/tests/test_version.py +0 -30
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/LICENSE +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/__init__.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/__main__.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/_keyring_timeout.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_architecture_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_bug.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_bug_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_change_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_checkup.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_checkup_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_common.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_common_worktree.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_crash.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_e2e_fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_langtest.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_split.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_split_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_sync_runner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_test.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_test_generate.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_test_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_update.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/agentic_verify.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/api_key_scanner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/architecture_include_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/architecture_registry.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/architecture_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/architecture_sync_helper.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/auth_service.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/auto_deps_architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/auto_deps_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/auto_include.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/auto_update.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/bug_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/bug_to_unit_test.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/change_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/checkup_review_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/ci_detect_changed_modules.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/ci_drift_heal.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/ci_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/cli.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/cli_detector.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/cmd_test_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/code_generator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/code_generator_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/__init__.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/analysis.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/auth.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/checkup.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/connect.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/extracts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/firecrawl.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/generate.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/maintenance.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/misc.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/modify.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/report.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/sessions.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/templates.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/utility.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/commands/which.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/comment_line.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/config_resolution.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/conflicts_in_prompts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/conflicts_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/construct_paths.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/content_selector.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/context_generator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/context_generator_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/continue_generation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/__init__.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/cli.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/cloud.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/dump.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/duplicate_cli_guard.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/errors.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/llm_trace.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/remote_session.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/core/utils.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/crash_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/data/arena_elo_manifest.json +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/data/language_format.csv +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/data/llm_model.csv +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/detect_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/detect_change_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/docs/prompting_guide.md +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/durable_sync_runner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/edit_file.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/embed_retrieve.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/extracts_prune.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/failure_classification.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/find_section.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/firecrawl_cache.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_code_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_code_module_errors.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_error_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_errors_from_unit_tests.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_verification_errors.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_verification_errors_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/fix_verification_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/generate_model_catalog.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/generate_output_paths.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/generate_test.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/generation_completion.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_comment.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_extension.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_jwt_token.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_language.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_lint_commands.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_run_command.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/get_test_command.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/git_update.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/include_query_extractor.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/increase_tests.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/incremental_code_generator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/incremental_prd_architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/insert_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/install_completion.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/json_atomic.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/list_drift_detection.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/load_prompt_template.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/logo_animation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/mcp_config.json +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/metadata_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/model_tester.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/one_session_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/operation_log.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/path_resolution.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/pdd_completion.fish +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/pdd_completion.zsh +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/pddrc_initializer.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/pin_example_hack.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/postprocess.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/postprocess_0.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/preprocess.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/preprocess_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/process_csv_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step10_completeness_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step11_sync_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step12_deps_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step13_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step1_analyze_prd_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step1b_complexity_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step2_analyze_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step2b_codebase_scan_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step3_research_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step4_data_model_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step5_design_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step5b_completeness_gate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step5b_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step6_research_deps_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step7_generate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step7b_review_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step8_5_context_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step8_pddrc_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step9_prompts_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_arch_step9b_cross_audit_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step10_verify_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step11_e2e_test_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step12_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step1_duplicate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step2_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step3_triage_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step4_api_research_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step5_reproduce_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step6_root_cause_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step7_prompt_classification_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step8_test_plan_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_bug_step9_generate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step10_architecture_update_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step11_identify_issues_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step12_fix_issues_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step13_create_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step1_duplicate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step2_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step3_research_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step4_clarify_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step5_docs_change_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step6_devunits_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step7_architecture_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step8_analyze_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_change_step9_implement_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step1_discover_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step2_deps_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step3_build_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step4_interfaces_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step5_test_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step6_1_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step6_2_regression_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step6_3_e2e_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step7_verify_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_checkup_step8_create_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_crash_explore_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step10_ci_validation_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step11_code_cleanup_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step1_unit_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step2_e2e_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step3_root_cause_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step4_fix_e2e_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step5_identify_devunits_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step6_create_unit_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step7_verify_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step8_run_pdd_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_e2e_fix_step9_verify_all_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_fix_explore_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_fix_nonpython_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_fix_primary_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step0_intent_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step1_survey_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step2_diagnose_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step3_investigate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step4_propose_options_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step6_extract_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step6a_phase_extract_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step7_assess_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step8_repair_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_split_step9_refine_check_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_sync_fix_dry_run_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_sync_identify_modules_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_generate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step10_validate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step11_loop_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step15_plan_validation_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step16_run_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step1_duplicate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step2_docs_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step3_clarify_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step4_detect_frontend_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step5_test_plan_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step5b_enhance_plan_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step6_coverage_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step6_generate_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step7_checklist_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step7_run_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step8_fix_iterate_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step8_manual_test_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step9_regression_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_test_step9_submit_pr_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_update_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/agentic_verify_explore_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/arrange_graph_layout_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/auto_include_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/bug_to_unit_test_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/change_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/code_patcher_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/conflict_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/continue_generation_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/core_dump_requirements_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/cross_issue_reconcile_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/detect_change_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/diff_analyzer_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/example_generator_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_code_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_conflict_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_detect_change_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_program_code_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_prompt_change_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_prompt_split_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_prompt_update_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_promptline_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_unit_code_fix_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/extract_xml_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/find_verification_errors_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/fix_code_module_errors_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/fix_errors_from_unit_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/fix_verification_errors_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/generate_test_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/generate_test_from_example_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/include_query_extractor_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/increase_tests_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/incremental_prd_architecture_patch_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/insert_includes_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/one_session_agent_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/post_gen_verify_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/prompt_code_diff_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/prompt_diff_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/split_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/summarize_file_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/sync_analysis_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/trace_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/trim_results_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/trim_results_start_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/unfinished_prompt_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/update_prompt_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/prompts/xml_convertor_LLM.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/provider_manager.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/pytest_output.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/python_env_detector.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/reasoning.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/remote_session.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/render_mermaid.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/__init__.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/app.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/click_executor.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/executor.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/jobs.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/models.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/__init__.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/auth.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/commands.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/config.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/extracts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/files.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/prompts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/routes/websocket.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/security.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/terminal_spawner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/server/token_counter.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/setup_tool.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/split.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/split_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/split_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/summarize_directory.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_animation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_determine_operation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_graph_order_consistency.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_orchestration.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_order.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/sync_tui.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/template_expander.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/template_registry.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/templates/architecture/architecture_json.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/templates/architecture/example_nextjs_task_notes.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/templates/architecture/example_python_backend.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/templates/architecture/pdd_path_construction_guide.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/templates/generic/generate_pddrc_YAML.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/templates/generic/generate_prompt.prompt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/test_result.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/trace.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/trace_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/track_cost.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/unfinished_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/update_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/update_model_costs.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/update_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/user_story_tests.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/validate_prompt_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd/xml_tagger.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd_cli.egg-info/dependency_links.txt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd_cli.egg-info/entry_points.txt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/pdd_cli.egg-info/top_level.txt +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/setup.cfg +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_739_complete.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_739_e2e_synthetic.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_739_fixtures.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_arch_complexity_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_architecture_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug_orchestrator_1.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug_orchestrator_step_comments.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug_step10_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug_step11_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_bug_step7_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_change_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_checkup.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_checkup_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_common.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_common_issue_813_anthropic_api_key_oauth_shadow.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_common_worktree.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_crash.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_e2e_fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_e2e_fix_orchestrator_resume_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_e2e_fix_step10_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_langtest.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_split.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_split_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_split_real.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_split_v2.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_sync_nearest_config.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_sync_runner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_test.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_test_generate.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_test_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_update.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_agentic_verify.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_api_key_scanner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_architecture_include_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_architecture_registry.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_architecture_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auth_service.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_deps_architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_deps_entry_wipe.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_deps_lock.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_deps_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_heal_workflow.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_include.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_auto_update.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_bug_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_bug_to_unit_test.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_change_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_checkup_pr_mode.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_checkup_review_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_ci_detect_changed_modules.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_ci_drift_heal.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_ci_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_circular_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_cli.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_cli_binary_isolation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_cli_detector.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_cloud_noninteractive_auth.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_cmd_test_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_code_generator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_code_generator_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_code_patcher_prompt_json_example.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_auth.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_firecrawl.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_generate.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_maintenance.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_modify.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_templates.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_commands_utility.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_comment_line.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_conflicts_in_prompts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_conflicts_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_construct_paths.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_content_selector.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_context_example_isolation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_context_generator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_context_generator_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_continue_generation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_copy_package_data_to_public.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_core_dump.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_core_errors.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_core_utils.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_crash_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_cross_step_consistency_prompts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_detect_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_detect_change_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_discover_associated_documents.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_duplicate_cli_guard.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_durable_sync_runner.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_auto_deps_pipeline.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_bug_step9_verification.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_219_duplicate_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_295_openai_schema.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_296_custom_csv.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_305_false_success.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_309_oauth_rate_limit.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_319_json_braces.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_340_report_core_no_default.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_342_syspath_isolation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_349_sys_modules_pollution.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_357_step9_keyerror.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_358_jwt_cache_null.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_364_cumulative_cost.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_373_step5_keyerror.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_375_malformed_json.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_379_auth_null_expires.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_383_commit_intermediate_files.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_399_ssh_url_message.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_419_cli_unpushed_commits.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_419_unpushed_commits.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_426_include_path_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_429_prompt_files_in_pr.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_445_worktree_resume.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_448_change_orchestrator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_448_step5_keyerror.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_449_auth_logout_message.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_467_false_cached_steps.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_468_not_a_bug_early_exit.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_469_cleanup_messages.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_469_duplicate_unresolved.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_470_sessions_cleanup_auth_message.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_481_pagination.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_485_warning_false_negative.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_493_update_output_subdir.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_508_budget_test_cost.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_508_sync_budget_tracking.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_509_retry_cost.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_521_circular_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_522_include_fingerprint.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_545_no_changes_to_commit.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_549_format_double_escaping.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_549_other_orchestrators.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_553_circular_includes_non_recursive.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_557_codex_ndjson.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_566_code_fence_tags.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_579_bug_worktree_rerun.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_579_orchestrator_rerun.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_594_preamble_imports.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_604_handler_wiring.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_620_hallucinated_imports.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_626_nextjs_rendering_model.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_686_anthropic_cost_double_count.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_687_postprocess_model_name.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_737_step_completion_markers.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_745_initial_cost_tracking.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_773_hard_stop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_791_e2e_timeout_retry.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_796_typescript_python_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_797_typescript_verification.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_817_step5_degenerate_cli.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_824_artifact_filtering.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_825_param_drop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_830_workflow_stall.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_894.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_902_provider_fallback.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_issue_903_convergence.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_openai_required_array.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_pattern_verification.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_selective_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_selective_includes_integration.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_step11_cleanup_revert.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_subprocess_issue_399_ssh_url_message.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_subprocess_issue_541_quiet_flag.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_e2e_subprocess_issue_593_bug_exit_code.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_embed_retrieve.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_example_error_detection.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_explicit_output_paths.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_extracts_prune.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_failure_classification.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_find_prompt_file.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_find_section.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_firecrawl_cache.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_code_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_code_module_errors.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_error_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_error_loop_failure_aware.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_errors_from_unit_tests.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_main_issue_232.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_verification_errors.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_verification_errors_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_fix_verification_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_generate_model_catalog.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_generate_output_paths.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_generate_output_paths_regression.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_generate_test.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_generation_completion.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_comment.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_extension.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_jwt_token.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_language.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_lint_commands.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_run_command.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_get_test_command.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_git_update.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_include_query_extractor.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_increase_tests.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_incremental_code_generator.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_incremental_prd_architecture.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_incremental_prd_architecture_real.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_insert_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_install_completion.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_1021_reproduction.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_1049_reproduction.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_1240_generate_prompt_meta_framing.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_1272_cloud_timeout.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_225_paths_and_includes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_237.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_467_all_orchestrators.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_469_duplicate_unresolved.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_592_failing_case.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_600_agentic_weaknesses.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_633_reproduction.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_686_post_process_args_braces.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_737_step_completion_markers.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_791_reproduction.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_794_anti_tdd_and_test_discovery.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_794_repro.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_830_remaining_fixes.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_865_reproduction.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_894_pytest_output_deadlock.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_902.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_902_prompt_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_926_preserve_comments_directive.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_issue_953_directory_scan_regression.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_jobs_sync_failure_detection.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_list_drift_detection.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_llm_invoke_csv_model_registration.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_llm_invoke_integration.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_llm_invoke_nested_schema.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_llm_invoke_retry_cost.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_llm_invoke_vertex_retry.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_load_prompt_template.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_logo_animation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_metadata_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_mock_vs_production_fix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_model_tester.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_nextjs_rendering_model.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_one_session_eval.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_one_session_sync.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_opencode_provider.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_operation_log.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_operation_logging_e2e.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_path_resolution.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_pattern_completeness_verification.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_pddrc_initializer.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_pddrc_true_e2e.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_pin_example_hack.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_postprocess.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_postprocess_0.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_preprocess.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_preprocess_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_preprocess_main_pdd_tags.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_process_csv_change.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_prompt_contract_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_provider_env_isolation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_provider_manager.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_pytest_output.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_quiet_flag.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_reasoning.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_remote_command_completion.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_remote_session.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_render_mermaid.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_report.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_research_prompt_web_tools.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_server_routes_prompts.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_server_spawn.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_setup_tool.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_split.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_split_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_split_seam_resolution.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_split_validation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_step11_api_mocking_guidance.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_structural_test_guard.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_structural_test_guard_integration.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_summarize_directory.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_animation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_animation_0.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_backward_compat.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_code_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_contract_matrix.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_determine_operation.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_graph_order_consistency.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_orchestration.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_order.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_target_coverage_infinite_loop.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_template_prompt_discovery.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_sync_tui.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_template_expander.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_template_registry.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_thread_safe_redirector.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_time_reasoning_effort_env.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_trace.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_trace_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_track_cost.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_unfinished_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_update_command.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_update_main.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_update_model_costs.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_update_prompt.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_user_story_tests.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_which.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_xml_tagger.py +0 -0
- {pdd_cli-0.0.241 → pdd_cli-0.0.243}/tests/test_z3_prompt_test_correspondence.py +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# LLM API Keys (at least one required)
|
|
2
|
+
OPENAI_API_KEY=your-openai-api-key
|
|
3
|
+
GOOGLE_API_KEY=your-google-api-key
|
|
4
|
+
ANTHROPIC_API_KEY=your-anthropic-api-key
|
|
5
|
+
|
|
6
|
+
# Additional LLM Providers (optional)
|
|
7
|
+
DEEPSEEK_API_KEY=your-deepseek-api-key
|
|
8
|
+
FIREWORKS_API_KEY=your-fireworks-api-key
|
|
9
|
+
GROQ_API_KEY=your-groq-api-key
|
|
10
|
+
TOGETHER_API_KEY=your-together-api-key
|
|
11
|
+
|
|
12
|
+
# Vertex AI (optional - for Gemini via GCP)
|
|
13
|
+
VERTEX_CREDENTIALS=/path/to/service-account.json
|
|
14
|
+
VERTEX_PROJECT=your-gcp-project-id
|
|
15
|
+
VERTEX_LOCATION=us-central1
|
|
16
|
+
|
|
17
|
+
# PDD Configuration
|
|
18
|
+
PDD_PATH=/path/to/your/pdd
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Ensure shell scripts always use LF line endings
|
|
2
|
+
*.sh text eol=lf
|
|
3
|
+
tests/*.sh text eol=lf
|
|
4
|
+
pdd-local.sh text eol=lf
|
|
5
|
+
|
|
6
|
+
# Python files should use LF line endings
|
|
7
|
+
*.py text eol=lf
|
|
8
|
+
|
|
9
|
+
# Ensure other text files use appropriate line endings
|
|
10
|
+
*.md text
|
|
11
|
+
*.txt text
|
|
12
|
+
*.json text
|
|
13
|
+
*.prompt text
|
|
14
|
+
|
|
15
|
+
# Binary files
|
|
16
|
+
*.png binary
|
|
17
|
+
*.jpg binary
|
|
18
|
+
*.jpeg binary
|
|
19
|
+
*.gif binary
|
|
20
|
+
*.ico binary
|
|
21
|
+
*.pdf binary
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
name: auto-heal
|
|
2
|
+
|
|
3
|
+
# Required status check on `main`. Posts a check named "auto-heal" against
|
|
4
|
+
# the PR head SHA via the Checks API so it appears on the PR regardless of
|
|
5
|
+
# whether the trigger was a PR event or a /heal comment.
|
|
6
|
+
#
|
|
7
|
+
# Compute runs in pdd_cloud's GCP project (prompt-driven-development-stg)
|
|
8
|
+
# via Cloud Build using a pre-staged build-context tarball. This workflow
|
|
9
|
+
# only dispatches the build and surfaces its status; no LLM or PEM
|
|
10
|
+
# secrets ever land on a GitHub-Actions runner.
|
|
11
|
+
#
|
|
12
|
+
# ---- Two distinct GitHub Apps ----
|
|
13
|
+
# These MUST be different Apps (separation of duty):
|
|
14
|
+
# App A — `pdd-cloud-auth-reader`: Metadata: Read on promptdriven/pdd_cloud
|
|
15
|
+
# only. Used HERE to authorize the requester. PEM stored in this repo's
|
|
16
|
+
# GHA secrets (PDD_CLOUD_APP_ID, PDD_CLOUD_APP_PRIVATE_KEY).
|
|
17
|
+
# App B — `prompt-driven-github-staging` (existing): write perms on
|
|
18
|
+
# promptdriven/pdd. Used INSIDE the Cloud Build to push the heal commit
|
|
19
|
+
# back to the PR branch. PEM stored only in GCP Secret Manager
|
|
20
|
+
# (gemini-dispatch-gh-app-private-key).
|
|
21
|
+
#
|
|
22
|
+
# ---- Security boundaries ----
|
|
23
|
+
# - `pull_request_target` runs workflow code from main, never from PR head,
|
|
24
|
+
# so a fork PR cannot modify the auth gate. PR code only runs inside
|
|
25
|
+
# Cloud Build, which has no access to this workflow's GHA secrets.
|
|
26
|
+
# - The dispatcher SA is impersonable ONLY by this exact workflow file at
|
|
27
|
+
# refs/heads/main (WIF attribute_condition + principalSet pinning to
|
|
28
|
+
# attribute.workflow_ref). Any new workflow on this repo cannot mint a
|
|
29
|
+
# token for the dispatcher SA.
|
|
30
|
+
# - Fork PRs short-circuit BEFORE the App token is minted; "neutral" check
|
|
31
|
+
# conclusion lets them merge (treated as passing by branch protection)
|
|
32
|
+
# without an actual heal.
|
|
33
|
+
# - Every event-derived value is passed through `env:` and read via shell
|
|
34
|
+
# variables — never interpolated directly into `run:` blocks. Markdown
|
|
35
|
+
# summaries are built from workflow-controlled values only.
|
|
36
|
+
|
|
37
|
+
on:
|
|
38
|
+
pull_request_target:
|
|
39
|
+
types: [opened, synchronize, reopened, ready_for_review]
|
|
40
|
+
issue_comment:
|
|
41
|
+
types: [created]
|
|
42
|
+
|
|
43
|
+
permissions:
|
|
44
|
+
contents: read
|
|
45
|
+
pull-requests: read
|
|
46
|
+
checks: write
|
|
47
|
+
id-token: write # Workload Identity Federation to GCP
|
|
48
|
+
|
|
49
|
+
# Do NOT cancel in-progress runs. Cancelling a required check mid-flight
|
|
50
|
+
# muddies merge semantics; let parallel runs race for the latest SHA's check.
|
|
51
|
+
# Cancelled-then-success on an older SHA does not affect protection on the
|
|
52
|
+
# newer SHA, so there is no abuse vector to consider.
|
|
53
|
+
concurrency:
|
|
54
|
+
group: auto-heal-${{ github.event.pull_request.number || github.event.issue.number }}
|
|
55
|
+
cancel-in-progress: false
|
|
56
|
+
|
|
57
|
+
jobs:
|
|
58
|
+
heal:
|
|
59
|
+
# Non-draft PR events, or a /heal comment on a PR (issue-comment events
|
|
60
|
+
# for issues that aren't PRs are filtered out). `startsWith('/heal')`
|
|
61
|
+
# also matches /healthcheck — the pre-flight step rejects false positives
|
|
62
|
+
# before any privileged work runs.
|
|
63
|
+
if: |
|
|
64
|
+
(github.event_name == 'pull_request_target'
|
|
65
|
+
&& github.event.pull_request.draft == false) ||
|
|
66
|
+
(github.event_name == 'issue_comment'
|
|
67
|
+
&& github.event.action == 'created'
|
|
68
|
+
&& github.event.issue.pull_request != null
|
|
69
|
+
&& startsWith(github.event.comment.body, '/heal'))
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
timeout-minutes: 60
|
|
72
|
+
steps:
|
|
73
|
+
- name: Pre-flight (validate trigger + resolve PR)
|
|
74
|
+
id: pf
|
|
75
|
+
env:
|
|
76
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
77
|
+
EVENT_NAME: ${{ github.event_name }}
|
|
78
|
+
BODY: ${{ github.event.comment.body }}
|
|
79
|
+
PR_NUMBER_FROM_PR: ${{ github.event.pull_request.number }}
|
|
80
|
+
PR_HEAD_SHA_FROM_PR: ${{ github.event.pull_request.head.sha }}
|
|
81
|
+
PR_HEAD_REPO_FROM_PR: ${{ github.event.pull_request.head.repo.full_name }}
|
|
82
|
+
REQUESTER_FROM_PR: ${{ github.event.pull_request.user.login }}
|
|
83
|
+
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
84
|
+
REQUESTER_FROM_COMMENT: ${{ github.event.comment.user.login }}
|
|
85
|
+
REPO: ${{ github.repository }}
|
|
86
|
+
run: |
|
|
87
|
+
set -euo pipefail
|
|
88
|
+
# For issue_comment, require /heal as a standalone first token on
|
|
89
|
+
# the first line. Rejects /healthcheck, /healz, etc.
|
|
90
|
+
if [ "$EVENT_NAME" = "issue_comment" ]; then
|
|
91
|
+
# tr -d '\r' guards against CRLF line endings that some clients
|
|
92
|
+
# may submit (GitHub doesn't contractually normalize to LF).
|
|
93
|
+
first_token=$(printf '%s' "$BODY" | head -n1 | tr -d '\r' | awk '{print $1}')
|
|
94
|
+
if [ "$first_token" != "/heal" ]; then
|
|
95
|
+
echo "Comment first token '$first_token' is not '/heal'; ignoring."
|
|
96
|
+
echo "skip=true" >> "$GITHUB_OUTPUT"
|
|
97
|
+
exit 0
|
|
98
|
+
fi
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
if [ "$EVENT_NAME" = "pull_request_target" ]; then
|
|
102
|
+
pr_number="$PR_NUMBER_FROM_PR"
|
|
103
|
+
pr_head_sha="$PR_HEAD_SHA_FROM_PR"
|
|
104
|
+
pr_head_repo="$PR_HEAD_REPO_FROM_PR"
|
|
105
|
+
requester="$REQUESTER_FROM_PR"
|
|
106
|
+
else
|
|
107
|
+
pr_number="$ISSUE_NUMBER"
|
|
108
|
+
pr_meta=$(gh api "repos/$REPO/pulls/$pr_number" \
|
|
109
|
+
--jq '[.head.sha, (.head.repo.full_name // "")] | @tsv')
|
|
110
|
+
pr_head_sha=$(printf '%s' "$pr_meta" | cut -f1)
|
|
111
|
+
pr_head_repo=$(printf '%s' "$pr_meta" | cut -f2)
|
|
112
|
+
requester="$REQUESTER_FROM_COMMENT"
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
if [ -z "$pr_number" ] || [ -z "$pr_head_sha" ] || [ -z "$requester" ]; then
|
|
116
|
+
echo "::error::Failed to resolve PR fields (number=$pr_number sha=$pr_head_sha requester=$requester)"
|
|
117
|
+
exit 1
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
fork=false
|
|
121
|
+
if [ "$pr_head_repo" != "$REPO" ]; then
|
|
122
|
+
fork=true
|
|
123
|
+
fi
|
|
124
|
+
|
|
125
|
+
trusted_app_requester=false
|
|
126
|
+
if [ "$EVENT_NAME" = "pull_request_target" ] &&
|
|
127
|
+
[ "$fork" = "false" ] &&
|
|
128
|
+
[ "$requester" = "prompt-driven-github[bot]" ]; then
|
|
129
|
+
trusted_app_requester=true
|
|
130
|
+
fi
|
|
131
|
+
|
|
132
|
+
{
|
|
133
|
+
echo "skip=false"
|
|
134
|
+
echo "fork=$fork"
|
|
135
|
+
echo "trusted_app_requester=$trusted_app_requester"
|
|
136
|
+
echo "pr_number=$pr_number"
|
|
137
|
+
echo "pr_head_sha=$pr_head_sha"
|
|
138
|
+
echo "pr_head_repo=$pr_head_repo"
|
|
139
|
+
echo "requester=$requester"
|
|
140
|
+
} >> "$GITHUB_OUTPUT"
|
|
141
|
+
|
|
142
|
+
- name: Post check_run (in_progress) on PR head SHA
|
|
143
|
+
if: steps.pf.outputs.skip != 'true'
|
|
144
|
+
id: check_start
|
|
145
|
+
env:
|
|
146
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
147
|
+
PR_HEAD_SHA: ${{ steps.pf.outputs.pr_head_sha }}
|
|
148
|
+
REPO: ${{ github.repository }}
|
|
149
|
+
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
150
|
+
run: |
|
|
151
|
+
set -euo pipefail
|
|
152
|
+
check_id=$(gh api -X POST \
|
|
153
|
+
"repos/$REPO/check-runs" \
|
|
154
|
+
-f name='auto-heal' \
|
|
155
|
+
-f head_sha="$PR_HEAD_SHA" \
|
|
156
|
+
-f status='in_progress' \
|
|
157
|
+
-f details_url="$RUN_URL" \
|
|
158
|
+
--jq .id)
|
|
159
|
+
echo "check_id=$check_id" >> "$GITHUB_OUTPUT"
|
|
160
|
+
|
|
161
|
+
# Short-circuit fork PRs BEFORE minting any App token. Auto-heal pushes
|
|
162
|
+
# commits back to the PR branch which is impossible on a fork; "neutral"
|
|
163
|
+
# is treated as passing by GitHub branch protection, so fork PRs are
|
|
164
|
+
# not permanently blocked from merging.
|
|
165
|
+
- name: Short-circuit fork PRs (neutral conclusion)
|
|
166
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'true'
|
|
167
|
+
env:
|
|
168
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
169
|
+
REPO: ${{ github.repository }}
|
|
170
|
+
CHECK_ID: ${{ steps.check_start.outputs.check_id }}
|
|
171
|
+
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
172
|
+
run: |
|
|
173
|
+
set -euo pipefail
|
|
174
|
+
# Summary is built from workflow-controlled values only. Never
|
|
175
|
+
# interpolate event-derived strings (PR title, comment body, branch
|
|
176
|
+
# names) into rendered markdown on a check.
|
|
177
|
+
gh api -X PATCH "repos/$REPO/check-runs/$CHECK_ID" \
|
|
178
|
+
-f status='completed' \
|
|
179
|
+
-f conclusion='neutral' \
|
|
180
|
+
-f "output[title]=auto-heal skipped (fork PR)" \
|
|
181
|
+
-f "output[summary]=Fork PRs are not auto-healed because the heal pushes commits to the PR branch (not possible across forks). [Workflow run]($RUN_URL)."
|
|
182
|
+
|
|
183
|
+
- name: Mint pdd_cloud App token
|
|
184
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'false'
|
|
185
|
+
id: app_token
|
|
186
|
+
# SHA-pinned to v3.1.1 (https://github.com/actions/create-github-app-token/releases/tag/v3.1.1)
|
|
187
|
+
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3
|
|
188
|
+
with:
|
|
189
|
+
app-id: ${{ secrets.PDD_CLOUD_APP_ID }}
|
|
190
|
+
private-key: ${{ secrets.PDD_CLOUD_APP_PRIVATE_KEY }}
|
|
191
|
+
owner: promptdriven
|
|
192
|
+
repositories: pdd_cloud
|
|
193
|
+
|
|
194
|
+
- name: Authorize requester (must be pdd_cloud collaborator)
|
|
195
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'false'
|
|
196
|
+
env:
|
|
197
|
+
GH_TOKEN: ${{ steps.app_token.outputs.token }}
|
|
198
|
+
REQUESTER: ${{ steps.pf.outputs.requester }}
|
|
199
|
+
TRUSTED_APP_REQUESTER: ${{ steps.pf.outputs.trusted_app_requester }}
|
|
200
|
+
run: |
|
|
201
|
+
set -euo pipefail
|
|
202
|
+
if [ -z "$REQUESTER" ]; then
|
|
203
|
+
echo "::error::requester unresolved; refusing to authorize"
|
|
204
|
+
exit 1
|
|
205
|
+
fi
|
|
206
|
+
# Generated internal PRs are authored by prompt-driven-github[bot],
|
|
207
|
+
# a GitHub App identity that cannot be a repository collaborator.
|
|
208
|
+
# Pre-flight only marks this exact requester as trusted on
|
|
209
|
+
# non-fork pull_request_target events. Human /heal comments still
|
|
210
|
+
# go through the pdd_cloud collaborator check below.
|
|
211
|
+
if [ "$TRUSTED_APP_REQUESTER" = "true" ]; then
|
|
212
|
+
echo "authorized: $REQUESTER is the trusted generated-PR App identity"
|
|
213
|
+
exit 0
|
|
214
|
+
fi
|
|
215
|
+
# 204 = is a collaborator. 404 = not a collaborator.
|
|
216
|
+
# Anything else = fail loud (don't silently confuse denial with
|
|
217
|
+
# API/transport errors).
|
|
218
|
+
# NOTE: NO ?affiliation=direct — App-token queries treat that
|
|
219
|
+
# filter strictly, and it excludes org-owners-with-admin-via-org
|
|
220
|
+
# who SHOULD be authorized. The unfiltered endpoint returns 204
|
|
221
|
+
# for any kind of collaborator (direct, team, outside, org owner),
|
|
222
|
+
# which is what the auth model wants.
|
|
223
|
+
http_code=$(gh api -i \
|
|
224
|
+
"repos/promptdriven/pdd_cloud/collaborators/$REQUESTER" \
|
|
225
|
+
2>/dev/null | head -n1 | awk '{print $2}' || true)
|
|
226
|
+
case "$http_code" in
|
|
227
|
+
204|200)
|
|
228
|
+
echo "authorized: $REQUESTER is a pdd_cloud collaborator"
|
|
229
|
+
;;
|
|
230
|
+
404)
|
|
231
|
+
echo "::error::$REQUESTER is not a pdd_cloud collaborator; auto-heal blocked. A pdd_cloud collaborator must comment '/heal' to authorize."
|
|
232
|
+
exit 1
|
|
233
|
+
;;
|
|
234
|
+
*)
|
|
235
|
+
echo "::error::pdd_cloud collaborator check returned HTTP '$http_code'; refusing to authorize. Likely transient — retry, or verify the App's installation and Metadata:Read permission."
|
|
236
|
+
exit 1
|
|
237
|
+
;;
|
|
238
|
+
esac
|
|
239
|
+
|
|
240
|
+
- name: Authenticate to GCP via Workload Identity Federation
|
|
241
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'false'
|
|
242
|
+
# SHA-pinned to v3.0.0 (https://github.com/google-github-actions/auth/releases/tag/v3.0.0)
|
|
243
|
+
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
|
244
|
+
with:
|
|
245
|
+
workload_identity_provider: projects/590888610376/locations/global/workloadIdentityPools/github-actions/providers/github
|
|
246
|
+
service_account: pdd-public-heal-dispatcher@prompt-driven-development-stg.iam.gserviceaccount.com
|
|
247
|
+
|
|
248
|
+
- name: Set up gcloud
|
|
249
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'false'
|
|
250
|
+
# SHA-pinned to v3.0.1 (https://github.com/google-github-actions/setup-gcloud/releases/tag/v3.0.1)
|
|
251
|
+
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db
|
|
252
|
+
|
|
253
|
+
- name: Submit Cloud Build (async)
|
|
254
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'false'
|
|
255
|
+
id: gcb_submit
|
|
256
|
+
env:
|
|
257
|
+
PR_NUMBER: ${{ steps.pf.outputs.pr_number }}
|
|
258
|
+
run: |
|
|
259
|
+
set -euo pipefail
|
|
260
|
+
# gcloud builds submit reads --config from the LOCAL filesystem
|
|
261
|
+
# (not from inside the GCS source tarball). Extract the cloudbuild
|
|
262
|
+
# config from the staged tarball into a temp dir first. The
|
|
263
|
+
# extracted scripts also stay on the runner, but they're the same
|
|
264
|
+
# 5 files cloudbuild itself unpacks at build time — not pdd_cloud
|
|
265
|
+
# source.
|
|
266
|
+
ctx_dir=$(mktemp -d)
|
|
267
|
+
trap 'rm -rf "$ctx_dir"' EXIT
|
|
268
|
+
gsutil cp gs://pdd-stg-build-contexts/auto-heal-pr-latest.tgz "$ctx_dir/source.tgz"
|
|
269
|
+
tar -xzf "$ctx_dir/source.tgz" -C "$ctx_dir"
|
|
270
|
+
# Use our own bucket for source staging so the dispatcher SA
|
|
271
|
+
# doesn't need access to the default `<project>_cloudbuild`
|
|
272
|
+
# bucket (which is restricted by org policy on this project).
|
|
273
|
+
# No --gcs-log-dir: cloudbuild-pdd-cli-auto-heal-pr.yaml sets
|
|
274
|
+
# `options.logging: CLOUD_LOGGING_ONLY` which conflicts with a
|
|
275
|
+
# GCS log bucket; logs go to Cloud Logging.
|
|
276
|
+
build_id=$(gcloud builds submit \
|
|
277
|
+
gs://pdd-stg-build-contexts/auto-heal-pr-latest.tgz \
|
|
278
|
+
--project=prompt-driven-development-stg \
|
|
279
|
+
--config="$ctx_dir/cloudbuild-pdd-cli-auto-heal-pr.yaml" \
|
|
280
|
+
--gcs-source-staging-dir=gs://pdd-stg-build-contexts/_staging \
|
|
281
|
+
--substitutions=_PUBLIC_PR_NUMBER="$PR_NUMBER" \
|
|
282
|
+
--async \
|
|
283
|
+
--format='value(id)')
|
|
284
|
+
echo "build_id=$build_id" >> "$GITHUB_OUTPUT"
|
|
285
|
+
echo "Cloud Build $build_id submitted; polling for completion."
|
|
286
|
+
|
|
287
|
+
- name: Wait for Cloud Build to complete
|
|
288
|
+
if: steps.pf.outputs.skip != 'true' && steps.pf.outputs.fork == 'false'
|
|
289
|
+
env:
|
|
290
|
+
BUILD_ID: ${{ steps.gcb_submit.outputs.build_id }}
|
|
291
|
+
run: |
|
|
292
|
+
set -euo pipefail
|
|
293
|
+
while true; do
|
|
294
|
+
status=$(gcloud builds describe "$BUILD_ID" \
|
|
295
|
+
--project=prompt-driven-development-stg \
|
|
296
|
+
--format='value(status)')
|
|
297
|
+
case "$status" in
|
|
298
|
+
SUCCESS)
|
|
299
|
+
echo "Cloud Build $BUILD_ID succeeded"
|
|
300
|
+
exit 0
|
|
301
|
+
;;
|
|
302
|
+
FAILURE|INTERNAL_ERROR|TIMEOUT|CANCELLED|EXPIRED)
|
|
303
|
+
echo "::error::Cloud Build $BUILD_ID conclusion: $status"
|
|
304
|
+
exit 1
|
|
305
|
+
;;
|
|
306
|
+
QUEUED|WORKING|PENDING)
|
|
307
|
+
sleep 30
|
|
308
|
+
;;
|
|
309
|
+
*)
|
|
310
|
+
echo "Unknown Cloud Build status '$status'; continuing to poll"
|
|
311
|
+
sleep 30
|
|
312
|
+
;;
|
|
313
|
+
esac
|
|
314
|
+
done
|
|
315
|
+
|
|
316
|
+
- name: Finalize check_run
|
|
317
|
+
if: always() && steps.check_start.outputs.check_id && steps.pf.outputs.fork == 'false'
|
|
318
|
+
env:
|
|
319
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
320
|
+
REPO: ${{ github.repository }}
|
|
321
|
+
CHECK_ID: ${{ steps.check_start.outputs.check_id }}
|
|
322
|
+
STATUS: ${{ job.status }}
|
|
323
|
+
BUILD_ID: ${{ steps.gcb_submit.outputs.build_id }}
|
|
324
|
+
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
325
|
+
run: |
|
|
326
|
+
set -euo pipefail
|
|
327
|
+
# Map every non-success outcome to "failure" so branch protection
|
|
328
|
+
# has unambiguous semantics. Cancelled / timed-out runs must not
|
|
329
|
+
# silently allow merge.
|
|
330
|
+
case "$STATUS" in
|
|
331
|
+
success) conclusion=success ;;
|
|
332
|
+
*) conclusion=failure ;;
|
|
333
|
+
esac
|
|
334
|
+
# Summary is built from workflow-controlled values only. Never
|
|
335
|
+
# interpolate event-derived strings into rendered markdown.
|
|
336
|
+
if [ -n "${BUILD_ID:-}" ]; then
|
|
337
|
+
summary="auto-heal $conclusion. Cloud Build: $BUILD_ID. [Workflow run]($RUN_URL)."
|
|
338
|
+
else
|
|
339
|
+
summary="auto-heal $conclusion (build did not start). [Workflow run]($RUN_URL)."
|
|
340
|
+
fi
|
|
341
|
+
gh api -X PATCH \
|
|
342
|
+
"repos/$REPO/check-runs/$CHECK_ID" \
|
|
343
|
+
-f status='completed' \
|
|
344
|
+
-f conclusion="$conclusion" \
|
|
345
|
+
-f "output[title]=auto-heal $conclusion" \
|
|
346
|
+
-f "output[summary]=$summary"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
name: PDD Secrets Dispatch
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
repository_dispatch:
|
|
5
|
+
types: [pdd-secrets]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
provide-secrets:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- name: Set up Python
|
|
12
|
+
uses: actions/setup-python@v5
|
|
13
|
+
with:
|
|
14
|
+
python-version: '3.11'
|
|
15
|
+
|
|
16
|
+
- name: Install Dependencies
|
|
17
|
+
run: pip install cryptography requests
|
|
18
|
+
|
|
19
|
+
- name: Encrypt and Send Secrets
|
|
20
|
+
shell: python
|
|
21
|
+
env:
|
|
22
|
+
SECRETS_CONTEXT: ${{ toJSON(secrets) }}
|
|
23
|
+
PAYLOAD_CONTEXT: ${{ toJSON(github.event.client_payload) }}
|
|
24
|
+
WORKER_PUBLIC_KEY: |
|
|
25
|
+
-----BEGIN PUBLIC KEY-----
|
|
26
|
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwLc2Vn2VErKtvPa27Iek
|
|
27
|
+
ePSZuWdagaiA9wfce4+4GR3aDNCsv24btyttNapgqO1pkB7mVATp4WJCD7F3CDMU
|
|
28
|
+
ddDsi07PReXJrdMp+/IC0eGblHPPpJyZOh/5ZoIo2oJPOHjGWwEQO75JgT8jtvUh
|
|
29
|
+
L2o7lYuFS1BwMQpdHifpxDWdn8yXo6SvV7k0UISEWKn5sa4gcalOhYiEjFUNt4pt
|
|
30
|
+
a7/HJQQu6K3AJKoUT8eTsftV5o1SHP0C8wB85hOehdzEM5uSpCb6aZ/cVqU38z15
|
|
31
|
+
NjqEVabaUquswZwHQ1aHmK+CktX0KfBKa/DYk4ZqW1gMGXgakbj6lsDTcPXzWUtm
|
|
32
|
+
jwIDAQAB
|
|
33
|
+
-----END PUBLIC KEY-----
|
|
34
|
+
run: |
|
|
35
|
+
import os, json, base64
|
|
36
|
+
import secrets as stdlib_secrets
|
|
37
|
+
import requests
|
|
38
|
+
from cryptography.hazmat.primitives import serialization, hashes
|
|
39
|
+
from cryptography.hazmat.primitives.asymmetric import padding
|
|
40
|
+
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
|
|
41
|
+
from cryptography.hazmat.backends import default_backend
|
|
42
|
+
|
|
43
|
+
def encrypt_and_send():
|
|
44
|
+
try:
|
|
45
|
+
# 1. Parse inputs
|
|
46
|
+
secrets_map = json.loads(os.environ.get("SECRETS_CONTEXT", "{}"))
|
|
47
|
+
payload = json.loads(os.environ.get("PAYLOAD_CONTEXT", "{}"))
|
|
48
|
+
public_key_pem = os.environ.get("WORKER_PUBLIC_KEY")
|
|
49
|
+
|
|
50
|
+
job_id = payload.get("job_id")
|
|
51
|
+
callback_url = payload.get("callback_url")
|
|
52
|
+
callback_token = payload.get("callback_token")
|
|
53
|
+
required_keys = payload.get("required_secrets", [])
|
|
54
|
+
|
|
55
|
+
if not job_id or not callback_url or not callback_token:
|
|
56
|
+
print("::error::Missing job_id, callback_url, or callback_token")
|
|
57
|
+
exit(1)
|
|
58
|
+
|
|
59
|
+
# 2. Filter secrets to only those requested
|
|
60
|
+
data_to_encrypt = {}
|
|
61
|
+
if required_keys:
|
|
62
|
+
for key in required_keys:
|
|
63
|
+
if key in secrets_map:
|
|
64
|
+
data_to_encrypt[key] = secrets_map[key]
|
|
65
|
+
else:
|
|
66
|
+
data_to_encrypt = secrets_map
|
|
67
|
+
|
|
68
|
+
if not data_to_encrypt:
|
|
69
|
+
print("No matching secrets found. Sending empty payload.")
|
|
70
|
+
|
|
71
|
+
json_data = json.dumps(data_to_encrypt).encode("utf-8")
|
|
72
|
+
|
|
73
|
+
# 3. Hybrid encryption: AES-256-GCM for data, RSA-OAEP for AES key
|
|
74
|
+
public_key = serialization.load_pem_public_key(
|
|
75
|
+
public_key_pem.encode("utf-8"),
|
|
76
|
+
backend=default_backend()
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
aes_key = stdlib_secrets.token_bytes(32)
|
|
80
|
+
iv = stdlib_secrets.token_bytes(12)
|
|
81
|
+
|
|
82
|
+
aesgcm = AESGCM(aes_key)
|
|
83
|
+
ciphertext = aesgcm.encrypt(iv, json_data, None)
|
|
84
|
+
|
|
85
|
+
encrypted_key = public_key.encrypt(
|
|
86
|
+
aes_key,
|
|
87
|
+
padding.OAEP(
|
|
88
|
+
mgf=padding.MGF1(algorithm=hashes.SHA256()),
|
|
89
|
+
algorithm=hashes.SHA256(),
|
|
90
|
+
label=None
|
|
91
|
+
)
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
envelope = {
|
|
95
|
+
"version": 2,
|
|
96
|
+
"encrypted_key": base64.b64encode(encrypted_key).decode(),
|
|
97
|
+
"iv": base64.b64encode(iv).decode(),
|
|
98
|
+
"ciphertext": base64.b64encode(ciphertext).decode(),
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
encrypted_b64 = base64.b64encode(
|
|
102
|
+
json.dumps(envelope).encode()
|
|
103
|
+
).decode()
|
|
104
|
+
|
|
105
|
+
# 4. POST encrypted secrets back to worker
|
|
106
|
+
response = requests.post(
|
|
107
|
+
callback_url,
|
|
108
|
+
json={
|
|
109
|
+
"job_id": job_id,
|
|
110
|
+
"encrypted_secrets": encrypted_b64,
|
|
111
|
+
"callback_token": callback_token,
|
|
112
|
+
},
|
|
113
|
+
timeout=30,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
if response.status_code == 200:
|
|
117
|
+
print(f"Successfully sent secrets for job {job_id}")
|
|
118
|
+
else:
|
|
119
|
+
print(f"::error::Callback failed: {response.status_code} {response.text}")
|
|
120
|
+
exit(1)
|
|
121
|
+
|
|
122
|
+
except Exception as e:
|
|
123
|
+
print(f"::error::Script failed: {e}")
|
|
124
|
+
exit(1)
|
|
125
|
+
|
|
126
|
+
encrypt_and_send()
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- 'v*'
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
14
|
+
cancel-in-progress: false
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
publish-testpypi:
|
|
18
|
+
if: github.event_name == 'workflow_dispatch'
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
environment: pypi-test-publish
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
id-token: write
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
with:
|
|
27
|
+
fetch-depth: 0
|
|
28
|
+
|
|
29
|
+
- uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.12"
|
|
32
|
+
|
|
33
|
+
- name: Build sdist and wheel
|
|
34
|
+
run: |
|
|
35
|
+
python -m pip install --upgrade pip build twine
|
|
36
|
+
python -m build
|
|
37
|
+
|
|
38
|
+
- name: Verify artifacts
|
|
39
|
+
run: python -m twine check dist/*
|
|
40
|
+
|
|
41
|
+
- name: Publish to TestPyPI
|
|
42
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
43
|
+
with:
|
|
44
|
+
repository-url: https://test.pypi.org/legacy/
|
|
45
|
+
skip-existing: true
|
|
46
|
+
attestations: true
|
|
47
|
+
|
|
48
|
+
publish-pypi:
|
|
49
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
environment: pypi-publish
|
|
52
|
+
permissions:
|
|
53
|
+
contents: write
|
|
54
|
+
id-token: write
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/checkout@v4
|
|
57
|
+
with:
|
|
58
|
+
fetch-depth: 0
|
|
59
|
+
|
|
60
|
+
- uses: actions/setup-python@v5
|
|
61
|
+
with:
|
|
62
|
+
python-version: "3.12"
|
|
63
|
+
|
|
64
|
+
- name: Build sdist and wheel
|
|
65
|
+
run: |
|
|
66
|
+
python -m pip install --upgrade pip build twine
|
|
67
|
+
python -m build
|
|
68
|
+
|
|
69
|
+
- name: Verify artifacts
|
|
70
|
+
run: python -m twine check dist/*
|
|
71
|
+
|
|
72
|
+
- name: Publish to PyPI
|
|
73
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
74
|
+
with:
|
|
75
|
+
skip-existing: true
|
|
76
|
+
attestations: true
|
|
77
|
+
|
|
78
|
+
- name: Create GitHub Release with auto-notes (idempotent)
|
|
79
|
+
env:
|
|
80
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
81
|
+
run: |
|
|
82
|
+
tag="${{ github.ref_name }}"
|
|
83
|
+
if gh release view "$tag" >/dev/null 2>&1; then
|
|
84
|
+
echo "GitHub Release $tag already exists; skipping."
|
|
85
|
+
else
|
|
86
|
+
gh release create "$tag" --generate-notes --verify-tag --target main
|
|
87
|
+
fi
|