pdd-cli 0.0.24__py3-none-any.whl → 0.0.25__py3-none-any.whl
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.
Potentially problematic release.
This version of pdd-cli might be problematic. Click here for more details.
- pdd/__init__.py +7 -1
- pdd/bug_main.py +5 -1
- pdd/bug_to_unit_test.py +16 -5
- pdd/change.py +2 -1
- pdd/change_main.py +407 -189
- pdd/cli.py +853 -301
- pdd/code_generator.py +2 -1
- pdd/conflicts_in_prompts.py +2 -1
- pdd/construct_paths.py +377 -222
- pdd/context_generator.py +2 -1
- pdd/continue_generation.py +3 -2
- pdd/crash_main.py +55 -20
- pdd/detect_change.py +2 -1
- pdd/fix_code_loop.py +465 -160
- pdd/fix_code_module_errors.py +7 -4
- pdd/fix_error_loop.py +9 -9
- pdd/fix_errors_from_unit_tests.py +207 -365
- pdd/fix_main.py +31 -4
- pdd/fix_verification_errors.py +60 -34
- pdd/fix_verification_errors_loop.py +842 -768
- pdd/fix_verification_main.py +412 -0
- pdd/generate_output_paths.py +427 -189
- pdd/generate_test.py +3 -2
- pdd/increase_tests.py +2 -2
- pdd/llm_invoke.py +14 -3
- pdd/preprocess.py +3 -3
- pdd/process_csv_change.py +466 -154
- pdd/prompts/extract_prompt_update_LLM.prompt +11 -5
- pdd/prompts/extract_unit_code_fix_LLM.prompt +2 -2
- pdd/prompts/fix_code_module_errors_LLM.prompt +29 -0
- pdd/prompts/fix_errors_from_unit_tests_LLM.prompt +5 -5
- pdd/prompts/generate_test_LLM.prompt +9 -3
- pdd/prompts/update_prompt_LLM.prompt +3 -3
- pdd/split.py +6 -5
- pdd/split_main.py +13 -4
- pdd/trace_main.py +7 -0
- pdd/xml_tagger.py +2 -1
- {pdd_cli-0.0.24.dist-info → pdd_cli-0.0.25.dist-info}/METADATA +4 -4
- {pdd_cli-0.0.24.dist-info → pdd_cli-0.0.25.dist-info}/RECORD +43 -42
- {pdd_cli-0.0.24.dist-info → pdd_cli-0.0.25.dist-info}/WHEEL +1 -1
- {pdd_cli-0.0.24.dist-info → pdd_cli-0.0.25.dist-info}/entry_points.txt +0 -0
- {pdd_cli-0.0.24.dist-info → pdd_cli-0.0.25.dist-info}/licenses/LICENSE +0 -0
- {pdd_cli-0.0.24.dist-info → pdd_cli-0.0.25.dist-info}/top_level.txt +0 -0
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
% You are an expert Software Engineer. Your goal is to extract
|
|
1
|
+
% You are an expert Software Engineer. Your goal is to extract the updated prompt from the LLM output.
|
|
2
2
|
|
|
3
|
-
% Here is the generated llm_output:
|
|
3
|
+
% Here is the generated llm_output: <llm_output>{llm_output}</llm_output>
|
|
4
4
|
|
|
5
|
-
%
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
% The LLM output contains the modified prompt that will generate the modified code, possibly with some additional commentary or explanation.
|
|
6
|
+
% Your task is to identify and extract ONLY the modified prompt itself, without adding any JSON structure or additional formatting.
|
|
8
7
|
|
|
8
|
+
% Ensure you:
|
|
9
|
+
% 1. Remove any "# Modified Prompt" headers or similar text that isn't part of the actual prompt
|
|
10
|
+
% 2. Preserve all markdown, code blocks, and formatting within the actual prompt
|
|
11
|
+
% 3. Don't add any explanatory text, JSON wrappers, or your own commentary
|
|
12
|
+
% 4. Return only the text that constitutes the actual prompt
|
|
13
|
+
|
|
14
|
+
% The "modified_prompt" should be the complete, standalone prompt that could be used directly to generate the modified code.
|
|
@@ -328,5 +328,5 @@
|
|
|
328
328
|
- 'explanation': String explanation of whether the code under test needs to be fix and/or if the unit test needs to be fixed. Also, explain whether only a fragment of code was provided and the entire unit test and/or code under test needs to be reassembled from the original code and/or unit test.
|
|
329
329
|
- 'update_unit_test': Boolean indicating whether the unit test needs to be updated.
|
|
330
330
|
- 'update_code': Boolean indicating whether the code under test needs to be updated.
|
|
331
|
-
- 'fixed_unit_test': The entire updated unit test code or empty String if no update is needed.
|
|
332
|
-
- 'fixed_code': The entire updated code under test or empty String if no update is needed.
|
|
331
|
+
- 'fixed_unit_test': The entire updated unit test code or empty String if no update is needed. Don't lose prior comments in the unit test unless they are no longer valid.
|
|
332
|
+
- 'fixed_code': The entire updated code under test or empty String if no update is needed. Don't lose prior comments in the code under test unless they are no longer valid.
|
|
@@ -8,6 +8,35 @@
|
|
|
8
8
|
|
|
9
9
|
% Here are the error log(s) from the program run and potentially from prior program run fixes: <errors>{errors}</errors>
|
|
10
10
|
|
|
11
|
+
% NOTE: The errors field contains a structured history of previous fixing attempts with XML tags and human-readable content:
|
|
12
|
+
<attempt number="X"> - Start of each attempt record
|
|
13
|
+
<verification>
|
|
14
|
+
Status: Success/failure status with return code
|
|
15
|
+
Output: [Standard output text]
|
|
16
|
+
Error: [Error message text]
|
|
17
|
+
</verification>
|
|
18
|
+
|
|
19
|
+
<current_error>
|
|
20
|
+
[Current error message to be fixed]
|
|
21
|
+
</current_error>
|
|
22
|
+
|
|
23
|
+
<fixing>
|
|
24
|
+
<llm_analysis>
|
|
25
|
+
[Analysis from previous attempts in human-readable format]
|
|
26
|
+
</llm_analysis>
|
|
27
|
+
<decision>
|
|
28
|
+
update_program: true/false
|
|
29
|
+
update_code: true/false
|
|
30
|
+
</decision>
|
|
31
|
+
</fixing>
|
|
32
|
+
</attempt>
|
|
33
|
+
|
|
34
|
+
% When analyzing errors, you should:
|
|
35
|
+
1. Review the history of previous attempts to understand what has been tried
|
|
36
|
+
2. Pay attention to which fixes worked partially or not at all
|
|
37
|
+
3. Avoid repeating approaches that failed in previous attempts
|
|
38
|
+
4. Focus on solving the current error found within the <current_error> tags
|
|
39
|
+
|
|
11
40
|
% Follow these steps to solve these errors:
|
|
12
41
|
Step 1. Compare the prompt to the code_module and explain differences, if any.
|
|
13
42
|
Step 2. Compare the prompt to the program and explain differences, if any.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
% This prompt is run iteratively. Here are the current errors and past potential fix attempts, if any, from the unit test and verification program run(s): <errors>{errors}</errors>
|
|
10
10
|
|
|
11
11
|
% If the verfication program fails to run, the code_under_test and unit_test are unchanged from the previous iteration.
|
|
12
|
-
|
|
12
|
+
<pdd>
|
|
13
13
|
<examples>
|
|
14
14
|
<example_1>
|
|
15
15
|
% Here is an example_unit_test for the example_code_under_test: <example_unit_test><include>context/fix_errors_from_unit_tests/1/test_conflicts_in_prompts.py</include></example_unit_test>
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
% Here is the prompt that generated the example_code_under_test: <example_prompt><include>context/fix_errors_from_unit_tests/3/context_generator_python.prompt</include></example_prompt>
|
|
36
36
|
</example_3>
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
|
|
39
39
|
<example_4>
|
|
40
40
|
% Here is an example_unit_test for the example_code_under_test: <example_unit_test><include>context/fix_errors_from_unit_tests/4/test_detect_change.py</include></example_unit_test>
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
|
|
52
52
|
% Here is an example error/fix log showing how the issues were resolved: <example_error_fix_log><include>context/fix_errors_from_unit_tests/4/error.log</include></example_error_fix_log>
|
|
53
53
|
</example_5>
|
|
54
|
-
</pdd>
|
|
55
54
|
</examples>
|
|
55
|
+
</pdd>
|
|
56
56
|
|
|
57
57
|
<instructions>
|
|
58
58
|
% Follow these steps to solve these errors:
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
Step 2. Compare the prompt to the unit_test and explain differences, if any.
|
|
61
61
|
Step 3. For each prior attempted fix for the code_under_test and unit_test (if any), explain in a few paragraphs for each attempt why it might not have worked.
|
|
62
62
|
Step 4. Write several paragraphs explaining the root cause of each of the errors and each of the warnings in the code_under_test and unit_test.
|
|
63
|
-
Step 5. Explain in detail step by step how to solve each of the errors and warnings. For each error and warning, there should be several paragraphs description of the solution steps. Sometimes logging or print statements can help debug the code in subsequent iterations.
|
|
63
|
+
Step 5. Explain in detail step by step how to solve each of the errors and warnings. For each error and warning, there should be several paragraphs description of the solution steps. Sometimes logging or print statements can help debug the code in subsequent iterations. It is important to make sure the tests are still sufficiently comprehensive to catch potential errors.
|
|
64
64
|
Step 6. Review the above steps and correct for any errors and warnings in the code under test or unit test.
|
|
65
|
-
Step 7. For the code that need changes, write the
|
|
65
|
+
Step 7. For the code that need changes, write the corrected code_under_test and/or corrected unit_test in its/their entirety.
|
|
66
66
|
</instructions>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
% You are an expert Software Test Engineer. Your goal is to generate
|
|
1
|
+
% You are an expert Software Test Engineer. Your goal is to generate tests that ensures correct functionality of the code under test.
|
|
2
2
|
|
|
3
3
|
% Here a description of what the code is supposed to do and was the prompt that generated the code: <prompt_that_generated_code>{prompt_that_generated_code}</prompt_that_generated_code>
|
|
4
4
|
|
|
@@ -9,12 +9,18 @@
|
|
|
9
9
|
- The unit test should be in {language}. If Python, use pytest.
|
|
10
10
|
- Use individual test functions for each case to make it easier to identify which specific cases pass or fail.
|
|
11
11
|
- Use the description of the functionality in the prompt to generate tests with useful tests with good code coverage.
|
|
12
|
-
- The code might get regenerated by a LLM so focus the
|
|
12
|
+
- The code might get regenerated by a LLM so focus the tests on the functionality of the code, not the implementation details.
|
|
13
|
+
- NEVER access internal implementation details (variables/functions starting with underscore) in your tests.
|
|
14
|
+
- Setup and teardown methods should only use public APIs and environment variables, never reset internal module state directly.
|
|
15
|
+
- Design tests to be independent of implementation details that might change when code is regenerated.
|
|
16
|
+
- For test isolation, use fixtures and mocking of external dependencies rather than manipulating internal module state. In general minimize the amount of mocking needed so that the tests are more robust to changes in the code under test and more code is tested.
|
|
13
17
|
<include>./context/test.prompt</include>
|
|
14
18
|
|
|
15
19
|
<instructions>
|
|
16
20
|
1. Carefully read the prompt that generated the code under test and determine what might be possible edge cases.
|
|
17
21
|
2. For each edge case explain whether it is better to do the test using Z3 formal verification or unit tests.
|
|
18
22
|
3. Develop a detailed test plan that will ensure the code under test is correct. This should involve both Z3 formal verification and unit tests.
|
|
19
|
-
4.
|
|
23
|
+
4. Now write the test file.
|
|
24
|
+
a) The first part of the test file should be the detailed test plan from step 3 above in comments.
|
|
25
|
+
b) Then write the tests and Z3 formal verification tests that are runnable as unit tests.
|
|
20
26
|
</instructions>
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
Output:
|
|
9
9
|
'modified_prompt' - A string that contains the updated prompt that will generate the modified code.
|
|
10
10
|
|
|
11
|
-
% Here is the input_prompt to change:
|
|
12
|
-
% Here is the input_code:
|
|
13
|
-
% Here is the modified_code:
|
|
11
|
+
% Here is the input_prompt to change: <input_prompt>{input_prompt}</input_prompt>
|
|
12
|
+
% Here is the input_code: <input_code>{input_code}</input_code>
|
|
13
|
+
% Here is the modified_code: <modified_code>{modified_code}</modified_code>
|
|
14
14
|
|
|
15
15
|
% To generate the modified prompt, perform the following sequence of steps:
|
|
16
16
|
1. Using the provided input_code and input_prompt, identify what the code does and how it was generated.
|
pdd/split.py
CHANGED
|
@@ -5,6 +5,7 @@ from pydantic import BaseModel, Field
|
|
|
5
5
|
from .load_prompt_template import load_prompt_template
|
|
6
6
|
from .preprocess import preprocess
|
|
7
7
|
from .llm_invoke import llm_invoke
|
|
8
|
+
from . import EXTRACTION_STRENGTH
|
|
8
9
|
|
|
9
10
|
class PromptSplit(BaseModel):
|
|
10
11
|
extracted_functionality: str = Field(description="The extracted functionality as a sub-module prompt")
|
|
@@ -17,7 +18,7 @@ def split(
|
|
|
17
18
|
strength: float,
|
|
18
19
|
temperature: float,
|
|
19
20
|
verbose: bool = False
|
|
20
|
-
) -> Tuple[str, str,
|
|
21
|
+
) -> Tuple[str, str, float, str]:
|
|
21
22
|
"""
|
|
22
23
|
Split a prompt into extracted functionality and remaining prompt.
|
|
23
24
|
|
|
@@ -30,7 +31,7 @@ def split(
|
|
|
30
31
|
verbose (bool): Whether to print detailed information.
|
|
31
32
|
|
|
32
33
|
Returns:
|
|
33
|
-
Tuple[str, str,
|
|
34
|
+
Tuple[str, str, float, str]: (extracted_functionality, remaining_prompt, model_name, total_cost)
|
|
34
35
|
where model_name is the name of the model used (returned as the second to last tuple element)
|
|
35
36
|
and total_cost is the aggregated cost from all LLM invocations.
|
|
36
37
|
"""
|
|
@@ -91,7 +92,7 @@ def split(
|
|
|
91
92
|
extract_response = llm_invoke(
|
|
92
93
|
prompt=processed_extract_prompt,
|
|
93
94
|
input_json={"llm_output": split_response["result"]},
|
|
94
|
-
strength=
|
|
95
|
+
strength=EXTRACTION_STRENGTH, # Fixed strength for extraction
|
|
95
96
|
temperature=temperature,
|
|
96
97
|
output_pydantic=PromptSplit,
|
|
97
98
|
verbose=verbose
|
|
@@ -111,8 +112,8 @@ def split(
|
|
|
111
112
|
rprint(f"[bold cyan]Total Cost: ${total_cost:.6f}[/bold cyan]")
|
|
112
113
|
rprint(f"[bold cyan]Model used: {model_name}[/bold cyan]")
|
|
113
114
|
|
|
114
|
-
# 6. Return results
|
|
115
|
-
return extracted_functionality, remaining_prompt,
|
|
115
|
+
# 6. Return results with standardized order: (result_data, cost, model_name)
|
|
116
|
+
return (extracted_functionality, remaining_prompt), total_cost, model_name
|
|
116
117
|
|
|
117
118
|
except Exception as e:
|
|
118
119
|
# Print an error message, then raise an exception that includes
|
pdd/split_main.py
CHANGED
|
@@ -13,7 +13,7 @@ def split_main(
|
|
|
13
13
|
example_code_file: str,
|
|
14
14
|
output_sub: Optional[str],
|
|
15
15
|
output_modified: Optional[str]
|
|
16
|
-
) -> Tuple[str, str,
|
|
16
|
+
) -> Tuple[str, str, float, str]:
|
|
17
17
|
"""
|
|
18
18
|
CLI wrapper for splitting a prompt into extracted functionality and remaining prompt.
|
|
19
19
|
|
|
@@ -60,8 +60,8 @@ def split_main(
|
|
|
60
60
|
strength = ctx.obj.get('strength', 0.5)
|
|
61
61
|
temperature = ctx.obj.get('temperature', 0)
|
|
62
62
|
|
|
63
|
-
# Call the split function
|
|
64
|
-
|
|
63
|
+
# Call the split function with the standardized return pattern (result_data, cost, model_name)
|
|
64
|
+
result_tuple, total_cost, model_name = split(
|
|
65
65
|
input_prompt=input_strings["input_prompt"],
|
|
66
66
|
input_code=input_strings["input_code"],
|
|
67
67
|
example_code=input_strings["example_code"],
|
|
@@ -69,6 +69,9 @@ def split_main(
|
|
|
69
69
|
temperature=temperature,
|
|
70
70
|
verbose=not ctx.obj.get('quiet', False)
|
|
71
71
|
)
|
|
72
|
+
|
|
73
|
+
# Unpack the result tuple
|
|
74
|
+
extracted_functionality, remaining_prompt = result_tuple
|
|
72
75
|
|
|
73
76
|
# Save the output files
|
|
74
77
|
try:
|
|
@@ -87,7 +90,13 @@ def split_main(
|
|
|
87
90
|
rprint(f"[bold]Model used:[/bold] {model_name}")
|
|
88
91
|
rprint(f"[bold]Total cost:[/bold] ${total_cost:.6f}")
|
|
89
92
|
|
|
90
|
-
|
|
93
|
+
# Return with standardized order (result_data, cost, model_name)
|
|
94
|
+
return {
|
|
95
|
+
"sub_prompt_content": extracted_functionality,
|
|
96
|
+
"modified_prompt_content": remaining_prompt,
|
|
97
|
+
"output_sub": output_file_paths["output_sub"],
|
|
98
|
+
"output_modified": output_file_paths["output_modified"]
|
|
99
|
+
}, total_cost, model_name
|
|
91
100
|
|
|
92
101
|
except Exception as e:
|
|
93
102
|
# Handle errors and provide appropriate feedback
|
pdd/trace_main.py
CHANGED
|
@@ -56,6 +56,13 @@ def trace_main(ctx: click.Context, prompt_file: str, code_file: str, code_line:
|
|
|
56
56
|
code_content, code_line, prompt_content, strength, temperature
|
|
57
57
|
)
|
|
58
58
|
logger.debug(f"Trace analysis completed: prompt_line={prompt_line}, total_cost={total_cost}, model_name={model_name}")
|
|
59
|
+
|
|
60
|
+
# Exit with error if trace returned None (indicating an error occurred)
|
|
61
|
+
if prompt_line is None:
|
|
62
|
+
if not quiet:
|
|
63
|
+
rprint(f"[bold red]Trace analysis failed[/bold red]")
|
|
64
|
+
logger.error("Trace analysis failed (prompt_line is None)")
|
|
65
|
+
ctx.exit(1)
|
|
59
66
|
except ValueError as e:
|
|
60
67
|
if not quiet:
|
|
61
68
|
rprint(f"[bold red]Invalid input: {e}[/bold red]")
|
pdd/xml_tagger.py
CHANGED
|
@@ -4,6 +4,7 @@ from rich.markdown import Markdown
|
|
|
4
4
|
from pydantic import BaseModel, Field
|
|
5
5
|
from .load_prompt_template import load_prompt_template
|
|
6
6
|
from .llm_invoke import llm_invoke
|
|
7
|
+
from . import EXTRACTION_STRENGTH
|
|
7
8
|
|
|
8
9
|
class XMLOutput(BaseModel):
|
|
9
10
|
xml_tagged: str = Field(description="The XML-tagged version of the prompt")
|
|
@@ -72,7 +73,7 @@ def xml_tagger(
|
|
|
72
73
|
extraction_response = llm_invoke(
|
|
73
74
|
prompt=extract_xml_prompt,
|
|
74
75
|
input_json={"xml_generated_analysis": xml_generated_analysis},
|
|
75
|
-
strength=
|
|
76
|
+
strength=EXTRACTION_STRENGTH, # Fixed strength for extraction
|
|
76
77
|
temperature=temperature,
|
|
77
78
|
verbose=verbose,
|
|
78
79
|
output_pydantic=XMLOutput
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pdd-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.25
|
|
4
4
|
Summary: PDD (Prompt-Driven Development) Command Line Interface
|
|
5
5
|
Author: Greg Tanaka
|
|
6
6
|
Author-email: glt@alumni.caltech.edu
|
|
@@ -32,7 +32,7 @@ Requires-Dist: langchain_community==0.3.21
|
|
|
32
32
|
Requires-Dist: langchain_core==0.3.51
|
|
33
33
|
Requires-Dist: langchain_fireworks==0.2.9
|
|
34
34
|
Requires-Dist: langchain_google_genai==2.1.2
|
|
35
|
-
Requires-Dist: langchain_google_vertexai
|
|
35
|
+
Requires-Dist: langchain_google_vertexai>=2.0.20
|
|
36
36
|
Requires-Dist: langchain_groq==0.3.2
|
|
37
37
|
Requires-Dist: langchain_mcp_adapters==0.0.7
|
|
38
38
|
Requires-Dist: langchain_ollama==0.3.0
|
|
@@ -53,7 +53,7 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
53
53
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
54
54
|
Dynamic: license-file
|
|
55
55
|
|
|
56
|
-
.. image:: https://img.shields.io/badge/pdd--cli-v0.0.
|
|
56
|
+
.. image:: https://img.shields.io/badge/pdd--cli-v0.0.25-blue
|
|
57
57
|
:alt: PDD-CLI Version
|
|
58
58
|
|
|
59
59
|
PDD (Prompt-Driven Development) Command Line Interface
|
|
@@ -114,7 +114,7 @@ After installation, verify:
|
|
|
114
114
|
|
|
115
115
|
pdd --version
|
|
116
116
|
|
|
117
|
-
You'll see the current PDD version (e.g., 0.0.
|
|
117
|
+
You'll see the current PDD version (e.g., 0.0.25).
|
|
118
118
|
|
|
119
119
|
Advanced Installation Tips
|
|
120
120
|
--------------------------
|
|
@@ -1,45 +1,46 @@
|
|
|
1
|
-
pdd/__init__.py,sha256=
|
|
1
|
+
pdd/__init__.py,sha256=R0xg5SpSRGjfzqb-AQQLwClBZ5uL-UEPgZjNLBO0em4,293
|
|
2
2
|
pdd/auto_deps_main.py,sha256=NVLqL5FHxe2eorViXTuh8z2zH9Sb-b6MNN9aZ1hqevY,3552
|
|
3
3
|
pdd/auto_include.py,sha256=aCa2QXDlOdKbh4vS3uDjWptkHB_Qv3QBNCbZe6mGWoo,6074
|
|
4
4
|
pdd/auto_update.py,sha256=Pfav1hrqQIDjZIPuIvryBeM7k-Rc72feVUTJZPtigaU,2889
|
|
5
|
-
pdd/bug_main.py,sha256=
|
|
6
|
-
pdd/bug_to_unit_test.py,sha256=
|
|
7
|
-
pdd/change.py,sha256=
|
|
8
|
-
pdd/change_main.py,sha256=
|
|
9
|
-
pdd/cli.py,sha256=
|
|
5
|
+
pdd/bug_main.py,sha256=cSGBnHmFIA8WrkGiohJFVRuM2086v-wlPvTJqTv00WQ,4631
|
|
6
|
+
pdd/bug_to_unit_test.py,sha256=80B8Nd_kYUvns1Rt9x69ZoZGN9hURV_R5NSUUWhi6gE,6315
|
|
7
|
+
pdd/change.py,sha256=EKmv7WvXNX24rjLCnrcaoo4xOVkNhCa9HLRbpMAxQSw,5036
|
|
8
|
+
pdd/change_main.py,sha256=5IAFW1_eazYCr3F1DlfO6FDpNDZ4LgkXBWLb6rKW-PQ,25643
|
|
9
|
+
pdd/cli.py,sha256=33n3xF-CbkdJQUniU7iqgMwBpesxxQjLHoRRrvuyvMo,37053
|
|
10
10
|
pdd/cmd_test_main.py,sha256=aSCxRnSurg15AvPcJDAPp9xy8p_qqnjU1oV14Hi2R54,5301
|
|
11
|
-
pdd/code_generator.py,sha256=
|
|
11
|
+
pdd/code_generator.py,sha256=DqQNN6jCNjSJvHi0IFyqkSfak6LeDG-yQHPYnvd4AJQ,4424
|
|
12
12
|
pdd/code_generator_main.py,sha256=G2eRBPXc1cGszkk0PbIPmJZHPaf_dw5d2yZbsvQZA3c,4793
|
|
13
13
|
pdd/comment_line.py,sha256=sX2hf4bG1fILi_rvI9MkkwCZ2IitgKkW7nOiw8aQKPY,1845
|
|
14
|
-
pdd/conflicts_in_prompts.py,sha256=
|
|
14
|
+
pdd/conflicts_in_prompts.py,sha256=XaEm9jIMcbENTyhphD8NXs2EmRxuPu1EI8GHrsiRwq0,4687
|
|
15
15
|
pdd/conflicts_main.py,sha256=O87s9baSa9DJMndxPIdsnYO_spoajcv9jii3XYt_-fM,3473
|
|
16
|
-
pdd/construct_paths.py,sha256=
|
|
17
|
-
pdd/context_generator.py,sha256=
|
|
16
|
+
pdd/construct_paths.py,sha256=AE3vblj2v21ZdReM40pz47gvmXg-RZjuR_2FALj_9fs,17672
|
|
17
|
+
pdd/context_generator.py,sha256=MO483MqtMR5EUanllD7Ru5U9idcVMIMutntcWMn31cI,5847
|
|
18
18
|
pdd/context_generator_main.py,sha256=TtsY3jHictdEjmB4cHyNwXmZW_LfHJp3KW3UXyzR2cU,2735
|
|
19
|
-
pdd/continue_generation.py,sha256=
|
|
20
|
-
pdd/crash_main.py,sha256=
|
|
21
|
-
pdd/detect_change.py,sha256=
|
|
19
|
+
pdd/continue_generation.py,sha256=iL6gosNMnU1hZn61HuaX81yXc5O9kWLEJxv0K3qs8hI,5242
|
|
20
|
+
pdd/crash_main.py,sha256=yveWWJWxCOzRLxPk1m1rgm4tNwpAk5jYRvYyItAaU2w,7262
|
|
21
|
+
pdd/detect_change.py,sha256=t70NAgakVc2u7XiI-lZjuR2RZ8Mrd3lJwRPu8I8s_P4,5310
|
|
22
22
|
pdd/detect_change_main.py,sha256=1Z4ymhjJaVr2aliGyqkqeqSmQ7QMgcl23p0wdsmBas0,3653
|
|
23
23
|
pdd/edit_file.py,sha256=-FhZ-KGKYkPbnt0zFiDnnosPLh3bbKmften0Ios4-90,35017
|
|
24
24
|
pdd/find_section.py,sha256=lz_FPY4KDCRAGlL1pWVZiutUNv7E4KsDFK-ymDWA_Ec,962
|
|
25
|
-
pdd/fix_code_loop.py,sha256=
|
|
26
|
-
pdd/fix_code_module_errors.py,sha256=
|
|
27
|
-
pdd/fix_error_loop.py,sha256=
|
|
28
|
-
pdd/fix_errors_from_unit_tests.py,sha256=
|
|
29
|
-
pdd/fix_main.py,sha256=
|
|
30
|
-
pdd/fix_verification_errors.py,sha256=
|
|
31
|
-
pdd/fix_verification_errors_loop.py,sha256=
|
|
32
|
-
pdd/
|
|
33
|
-
pdd/
|
|
25
|
+
pdd/fix_code_loop.py,sha256=aXUAv73mNLiv-3OiHXXeftclOBQklp06FbE-YMN_XdI,24307
|
|
26
|
+
pdd/fix_code_module_errors.py,sha256=O7W-jqQ7REdAY7x03tjzAC2xzxUJwl89vHCdlfPGqd0,4747
|
|
27
|
+
pdd/fix_error_loop.py,sha256=BdoI08HD30BHCjjfvpH7zamdjv6sMqi70li_oRu_-P0,24004
|
|
28
|
+
pdd/fix_errors_from_unit_tests.py,sha256=SdL4wgo6ARgIClTTYlHuNu12t1cE4YohpGqo4Mcj1P8,9192
|
|
29
|
+
pdd/fix_main.py,sha256=rHVxkn5TuUipgu0LQo6n3IaBjlFjU6aiPLtjYWEJY0c,13730
|
|
30
|
+
pdd/fix_verification_errors.py,sha256=cSUTLREum_EUKDE-cRr5HlErCaHaQLw9MWund0G6rTk,13085
|
|
31
|
+
pdd/fix_verification_errors_loop.py,sha256=PTVRu3LN8SMnxVH0dEzM-00VsGnmYLryGdPqMnt8lb8,52768
|
|
32
|
+
pdd/fix_verification_main.py,sha256=0pyKdoNMzx9n_kKdW0hXvfINOGAtzXa1e6u_9PNKync,19095
|
|
33
|
+
pdd/generate_output_paths.py,sha256=Vy0DmBLFQ35kkpDFlbZz3_iZyc7sRvjIeTO9zv8yBq4,18324
|
|
34
|
+
pdd/generate_test.py,sha256=6wNICtDP-_sWaura0PrrTrCRqjUbgzpTRMk0mTxupL4,4845
|
|
34
35
|
pdd/get_comment.py,sha256=yuRtk68-SDkMaGzOSyIFdldRoymJBRSKjOYkr0narVc,2627
|
|
35
36
|
pdd/get_extension.py,sha256=ZSsbi7n-tFw-7RQX7c3pV1qWsRt72qS_3AlAYjV53jA,2393
|
|
36
37
|
pdd/get_jwt_token.py,sha256=BGxqMh7qf2mG-TFw7JlV941O9XtrW22L_dRoS_UZNjM,11560
|
|
37
38
|
pdd/get_language.py,sha256=yxyQqVEb5H3ep3Hc6XgAl3vMLTHD5OIs8ZSekB493GA,1438
|
|
38
39
|
pdd/git_update.py,sha256=Ya7eI7YFtGIpT7FdziFJfnFkiZlj8I9Lh98lqtXfClc,2855
|
|
39
|
-
pdd/increase_tests.py,sha256=
|
|
40
|
+
pdd/increase_tests.py,sha256=dlYd9PosV3g8kpDlQh6gd8WUauClvs_-Z8ERRD-kZk4,3456
|
|
40
41
|
pdd/insert_includes.py,sha256=UASoq_46UNL6l7VGB7DW2jb4kcWlP6Hbj2EWuh7210Q,5310
|
|
41
42
|
pdd/install_completion.py,sha256=H_FIid0eHCn7I6HHIsBqdComAxjLIu7CbD6yfMU48aw,5085
|
|
42
|
-
pdd/llm_invoke.py,sha256=
|
|
43
|
+
pdd/llm_invoke.py,sha256=QYkwN3a2IyQXmksAynRKXk7DAFDXIvtvQexFWBdROyg,17814
|
|
43
44
|
pdd/load_prompt_template.py,sha256=4NH8_t5eon_vcyTznqtemJ_yAPkTJm_hSdTRgzj3qEQ,1907
|
|
44
45
|
pdd/mcp_config.json,sha256=D3ctWHlShvltbtH37zbYb6smVE0V80_lGjDKDIqsSBE,124
|
|
45
46
|
pdd/pdd_completion.fish,sha256=rs-43fa3kcDBN1uy4oxiofLAWmaqW0U2j5Mu4wCHh5M,6121
|
|
@@ -47,20 +48,20 @@ pdd/pdd_completion.sh,sha256=qurWrEksqptjryBZszxHv6i0MqgnIqJenMBDrzMgI98,4535
|
|
|
47
48
|
pdd/pdd_completion.zsh,sha256=-yz69Rs4lnJ-bRAF8H2Tzk0GuDUo-BWjytE3fv5wTS8,13458
|
|
48
49
|
pdd/postprocess.py,sha256=7Dt4C7hZZbqCpYK0LG2Ui_vIUYw9UTN3w5Wgd_JZYBs,4021
|
|
49
50
|
pdd/postprocess_0.py,sha256=OW17GyCFLYErCyWh2tL4syuho3q2yFf2wyekQ4BLdPM,2168
|
|
50
|
-
pdd/preprocess.py,sha256=
|
|
51
|
+
pdd/preprocess.py,sha256=UB1rqSNscUC-JHujvGb11LJ5OadZ3GVD1Qeq1dI6HMc,9508
|
|
51
52
|
pdd/preprocess_main.py,sha256=dAgFGmjuJB1taZl31c1sY2jMGtQgjnWLbpeB7EFtojY,2977
|
|
52
|
-
pdd/process_csv_change.py,sha256=
|
|
53
|
+
pdd/process_csv_change.py,sha256=GYb9UGmZ-E355JjMGNTrjzH1n-wc2vrx3Vef3e1DdL4,27550
|
|
53
54
|
pdd/pytest_output.py,sha256=kmKiMHaQItrDVi_hTCtM5pfCgBuyZVEVRbxdchpS5CY,4796
|
|
54
|
-
pdd/split.py,sha256=
|
|
55
|
-
pdd/split_main.py,sha256=
|
|
55
|
+
pdd/split.py,sha256=eTt22hytmrpzfSD9QEFiBOf4w38ueX5R-0SWTuCgJ9I,4941
|
|
56
|
+
pdd/split_main.py,sha256=x84NU7D_NxeQBJb-co2UmLII2z3mvt0pA8Zgq9DvOs4,4716
|
|
56
57
|
pdd/summarize_directory.py,sha256=3KUOP30RgkBXpz0_btmpubnO1vWAQ3tKyVI84Zp-E9Q,9041
|
|
57
58
|
pdd/trace.py,sha256=DMgL8cEk8gwdpyOumEi3am8wTq68e4OJzoc61H0vLAA,5011
|
|
58
|
-
pdd/trace_main.py,sha256=
|
|
59
|
+
pdd/trace_main.py,sha256=yb8aM9Wkq1vem-xRQb-TvAEr2HruLUgbj3RaTg3H76E,4770
|
|
59
60
|
pdd/track_cost.py,sha256=VIrHYh4i2G5T5Dq1plxwuzsG4OrHQgO0GPgFckgsQ_4,3266
|
|
60
61
|
pdd/unfinished_prompt.py,sha256=Oql2c4EgdOe7BVofM0gVs8aN5EQnLuoO-FLibjamE3A,4076
|
|
61
62
|
pdd/update_main.py,sha256=5a4nsOOaAXULdk0BS9pj4blZ_QHBFeET37uaAqoJI2g,3912
|
|
62
63
|
pdd/update_prompt.py,sha256=OdPRIAMu7OBx7E4SOU95hWgdtBY4oO8XOe1dvPChMlU,4351
|
|
63
|
-
pdd/xml_tagger.py,sha256=
|
|
64
|
+
pdd/xml_tagger.py,sha256=5AWzOboNuXMJmmIpi1hhPPAB6nxbBOkRqgoPLpoGYT8,4292
|
|
64
65
|
pdd/data/language_format.csv,sha256=xUTmFHXSBVBRfPV-NKG3oWo5_ped5ukP-ekFcIlVzJk,877
|
|
65
66
|
pdd/data/llm_model.csv,sha256=Yb46r-gybY90nrRcrkN3DHUbjprC51HUg3AxQTUoeRQ,1693
|
|
66
67
|
pdd/prompts/auto_include_LLM.prompt,sha256=0t-Jmm5o6vVTmqsISTUiewqPT8bB389UZnJoHZvgtu4,13967
|
|
@@ -77,15 +78,15 @@ pdd/prompts/extract_detect_change_LLM.prompt,sha256=2HXSb9bGjHZsKrUGvfBdBAAcGBCr
|
|
|
77
78
|
pdd/prompts/extract_program_code_fix_LLM.prompt,sha256=ra_aDz2x8MfOa5dh7JCtxjoUFa4dWeKPJOpLohMnrig,1137
|
|
78
79
|
pdd/prompts/extract_prompt_change_LLM.prompt,sha256=1e3AxcVpZ85t7pVvXqCpBUJzGI995MIimXicClagSvw,366
|
|
79
80
|
pdd/prompts/extract_prompt_split_LLM.prompt,sha256=rhStDroVxDYRcCjYq7XCCub8B-KmfCFj5_7PxhgMmz0,1097
|
|
80
|
-
pdd/prompts/extract_prompt_update_LLM.prompt,sha256=
|
|
81
|
+
pdd/prompts/extract_prompt_update_LLM.prompt,sha256=XH2muMzTb_wqcQS9rR4THXe6TP7BD84qb4MEisuJVU4,906
|
|
81
82
|
pdd/prompts/extract_promptline_LLM.prompt,sha256=owIBRaF2bWwg3S64uyMKzOFMdvvmI_EEGoF97Pa9118,813
|
|
82
|
-
pdd/prompts/extract_unit_code_fix_LLM.prompt,sha256=
|
|
83
|
+
pdd/prompts/extract_unit_code_fix_LLM.prompt,sha256=c4l6twMLC2YqDDvOj_DcaKmJQF8kIupeqvkueK_OQng,14301
|
|
83
84
|
pdd/prompts/extract_xml_LLM.prompt,sha256=eRcHaL-khShpb7C1_b7wmBJHfo2Kh1Wvjo_aOcWZovU,561
|
|
84
85
|
pdd/prompts/find_verification_errors_LLM.prompt,sha256=yIZk1Lmz9Q0-0o_Oprm-gK1jSTng30UrkCZHpynX8b0,1449
|
|
85
|
-
pdd/prompts/fix_code_module_errors_LLM.prompt,sha256=
|
|
86
|
-
pdd/prompts/fix_errors_from_unit_tests_LLM.prompt,sha256=
|
|
86
|
+
pdd/prompts/fix_code_module_errors_LLM.prompt,sha256=sjqB-apFtiMZerXm_qZEuA6pfRtk2hOiXxPXwuxIZxM,2462
|
|
87
|
+
pdd/prompts/fix_errors_from_unit_tests_LLM.prompt,sha256=Yy6WIg9WfizrFpFZogoCtlQy-H123ycc_SaF6m8_Ljo,5079
|
|
87
88
|
pdd/prompts/fix_verification_errors_LLM.prompt,sha256=NM1RV7zNLqQjY40z68fN_ilN9xIZEi-mgWVGZe4a9r4,1348
|
|
88
|
-
pdd/prompts/generate_test_LLM.prompt,sha256=
|
|
89
|
+
pdd/prompts/generate_test_LLM.prompt,sha256=eCI7CTMpoA76DTruTgWygClxJX0gj_uNxTqHbmqcJ50,2254
|
|
89
90
|
pdd/prompts/increase_tests_LLM.prompt,sha256=rekFzLRuZy99KifEKNlmPYoQdl8wa04112mtCdIY6S8,955
|
|
90
91
|
pdd/prompts/insert_includes_LLM.prompt,sha256=g-p2gXKENsqvfK5Q9FYbqFsIJ5CP7rbxmd4rROA-W80,1453
|
|
91
92
|
pdd/prompts/split_LLM.prompt,sha256=cMVyazsue6eerOPYeueqpSNRiITy1ht0HgGytPFiQIk,6244
|
|
@@ -94,11 +95,11 @@ pdd/prompts/trace_LLM.prompt,sha256=XTPoQQpKrF7BtWkCJPIrinn448VyBGXJieibMsMP-y0,
|
|
|
94
95
|
pdd/prompts/trim_results_LLM.prompt,sha256=w4aL0S7v7fPSi3L9XeQR3mUOgNv3hpTDqi4rOtu7L7I,4033
|
|
95
96
|
pdd/prompts/trim_results_start_LLM.prompt,sha256=WwFlOHha4wzMLtRHDMI6GtcNdl2toE8gbixQeUwkS4g,2165
|
|
96
97
|
pdd/prompts/unfinished_prompt_LLM.prompt,sha256=-JgBpiPTQZdWOAwOG1XpfpD9waynFTAT3Jo84eQ4bTw,1543
|
|
97
|
-
pdd/prompts/update_prompt_LLM.prompt,sha256=
|
|
98
|
+
pdd/prompts/update_prompt_LLM.prompt,sha256=prIc8uLp2jqnLTHt6JvWDZGanPZipivhhYeXe0lVaYw,1328
|
|
98
99
|
pdd/prompts/xml_convertor_LLM.prompt,sha256=YGRGXJeg6EhM9690f-SKqQrKqSJjLFD51UrPOlO0Frg,2786
|
|
99
|
-
pdd_cli-0.0.
|
|
100
|
-
pdd_cli-0.0.
|
|
101
|
-
pdd_cli-0.0.
|
|
102
|
-
pdd_cli-0.0.
|
|
103
|
-
pdd_cli-0.0.
|
|
104
|
-
pdd_cli-0.0.
|
|
100
|
+
pdd_cli-0.0.25.dist-info/licenses/LICENSE,sha256=-1bjYH-CEjGEQ8VixtnRYuu37kN6F9NxmZSDkBuUQ9o,1062
|
|
101
|
+
pdd_cli-0.0.25.dist-info/METADATA,sha256=5AN0Ro7Rm6Xzi3-UYr3L9oxpoc9kQ0k6joNubTmmpR8,7256
|
|
102
|
+
pdd_cli-0.0.25.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
|
|
103
|
+
pdd_cli-0.0.25.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
|
|
104
|
+
pdd_cli-0.0.25.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
|
|
105
|
+
pdd_cli-0.0.25.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|