pdd-cli 0.0.22__py3-none-any.whl → 0.0.24__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 +1 -0
- pdd/bug_main.py +16 -2
- pdd/cli.py +4 -3
- pdd/data/llm_model.csv +8 -8
- pdd/fix_verification_errors.py +259 -0
- pdd/fix_verification_errors_loop.py +901 -0
- pdd/generate_output_paths.py +6 -0
- pdd/install_completion.py +7 -7
- pdd/llm_invoke.py +4 -5
- pdd/pdd_completion.zsh +38 -1
- pdd/prompts/extract_prompt_split_LLM.prompt +7 -4
- pdd/prompts/find_verification_errors_LLM.prompt +25 -0
- pdd/prompts/fix_verification_errors_LLM.prompt +20 -0
- pdd/prompts/split_LLM.prompt +3 -3
- pdd/split.py +9 -9
- pdd/split_main.py +11 -11
- {pdd_cli-0.0.22.dist-info → pdd_cli-0.0.24.dist-info}/METADATA +7 -3
- {pdd_cli-0.0.22.dist-info → pdd_cli-0.0.24.dist-info}/RECORD +22 -18
- {pdd_cli-0.0.22.dist-info → pdd_cli-0.0.24.dist-info}/WHEEL +0 -0
- {pdd_cli-0.0.22.dist-info → pdd_cli-0.0.24.dist-info}/entry_points.txt +0 -0
- {pdd_cli-0.0.22.dist-info → pdd_cli-0.0.24.dist-info}/licenses/LICENSE +0 -0
- {pdd_cli-0.0.22.dist-info → pdd_cli-0.0.24.dist-info}/top_level.txt +0 -0
pdd/generate_output_paths.py
CHANGED
|
@@ -180,8 +180,13 @@ def get_output_path(user_path, env_var, default_filename):
|
|
|
180
180
|
pass
|
|
181
181
|
return path
|
|
182
182
|
else:
|
|
183
|
+
# Check for environment variable
|
|
183
184
|
env_path = os.environ.get(env_var)
|
|
184
185
|
if env_path:
|
|
186
|
+
# Ensure env_path is not empty
|
|
187
|
+
if not env_path.strip():
|
|
188
|
+
return default_filename
|
|
189
|
+
|
|
185
190
|
path = os.path.join(env_path, default_filename)
|
|
186
191
|
try:
|
|
187
192
|
# Create parent directory if needed
|
|
@@ -191,4 +196,5 @@ def get_output_path(user_path, env_var, default_filename):
|
|
|
191
196
|
pass
|
|
192
197
|
return path
|
|
193
198
|
else:
|
|
199
|
+
# Always return a valid filename, never an empty string
|
|
194
200
|
return default_filename
|
pdd/install_completion.py
CHANGED
|
@@ -19,11 +19,11 @@ def get_local_pdd_path() -> str:
|
|
|
19
19
|
return os.environ["PDD_PATH"]
|
|
20
20
|
else:
|
|
21
21
|
try:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
p = importlib.resources.files("pdd").joinpath("cli.py")
|
|
23
|
+
fallback_path = str(p.parent)
|
|
24
|
+
# Also set it back into the environment for consistency
|
|
25
|
+
os.environ["PDD_PATH"] = fallback_path
|
|
26
|
+
return fallback_path
|
|
27
27
|
except ImportError:
|
|
28
28
|
rprint(
|
|
29
29
|
"[red]Error: Could not determine the path to the 'pdd' package. "
|
|
@@ -90,9 +90,9 @@ def get_completion_script_extension(shell: str) -> str:
|
|
|
90
90
|
|
|
91
91
|
def install_completion():
|
|
92
92
|
"""
|
|
93
|
-
Install shell completion for the PDD CLI by detecting the user
|
|
93
|
+
Install shell completion for the PDD CLI by detecting the user's shell,
|
|
94
94
|
copying the relevant completion script, and appending a source command
|
|
95
|
-
to the user
|
|
95
|
+
to the user's shell RC file if not already present.
|
|
96
96
|
"""
|
|
97
97
|
shell = get_current_shell()
|
|
98
98
|
rc_file = get_shell_rc_path(shell)
|
pdd/llm_invoke.py
CHANGED
|
@@ -14,7 +14,7 @@ Usage:
|
|
|
14
14
|
# result is a dict with keys: 'result', 'cost', 'model_name'
|
|
15
15
|
|
|
16
16
|
Environment:
|
|
17
|
-
- PDD_MODEL_DEFAULT: if set, used as the base model name. Otherwise defaults to "gpt-
|
|
17
|
+
- PDD_MODEL_DEFAULT: if set, used as the base model name. Otherwise defaults to "gpt-4.1-nano".
|
|
18
18
|
- PDD_PATH: if set, models are loaded from $PDD_PATH/data/llm_model.csv; otherwise from ./data/llm_model.csv.
|
|
19
19
|
- Models that require an API key will check the corresponding environment variable (name provided in the CSV).
|
|
20
20
|
"""
|
|
@@ -218,10 +218,10 @@ def create_llm_instance(selected_model, temperature, handler):
|
|
|
218
218
|
openai_api_key=api_key, callbacks=[handler],
|
|
219
219
|
openai_api_base=base_url)
|
|
220
220
|
else:
|
|
221
|
-
if model_name.startswith('o')
|
|
221
|
+
if model_name.startswith('o'):
|
|
222
222
|
llm = ChatOpenAI(model=model_name, temperature=temperature,
|
|
223
223
|
openai_api_key=api_key, callbacks=[handler],
|
|
224
|
-
|
|
224
|
+
reasoning={"effort": "high","summary": "auto"})
|
|
225
225
|
else:
|
|
226
226
|
llm = ChatOpenAI(model=model_name, temperature=temperature,
|
|
227
227
|
openai_api_key=api_key, callbacks=[handler])
|
|
@@ -301,7 +301,7 @@ def llm_invoke(prompt, input_json, strength, temperature, verbose=False, output_
|
|
|
301
301
|
raise ValueError("Input JSON must be a dictionary.")
|
|
302
302
|
|
|
303
303
|
set_llm_cache(SQLiteCache(database_path=".langchain.db"))
|
|
304
|
-
base_model_name = os.environ.get('PDD_MODEL_DEFAULT', 'gpt-
|
|
304
|
+
base_model_name = os.environ.get('PDD_MODEL_DEFAULT', 'gpt-4.1-nano')
|
|
305
305
|
models = load_models()
|
|
306
306
|
|
|
307
307
|
try:
|
|
@@ -326,7 +326,6 @@ def llm_invoke(prompt, input_json, strength, temperature, verbose=False, output_
|
|
|
326
326
|
llm = create_llm_instance(model, temperature, handler)
|
|
327
327
|
if output_pydantic:
|
|
328
328
|
if model.structured_output:
|
|
329
|
-
llm.cache = False # TODO: remove this fix once langchain cache is fixed https://github.com/langchain-ai/langchain/issues/29003
|
|
330
329
|
llm = llm.with_structured_output(output_pydantic)
|
|
331
330
|
chain = prompt_template | llm
|
|
332
331
|
else:
|
pdd/pdd_completion.zsh
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
#compdef pdd
|
|
2
2
|
|
|
3
|
+
##
|
|
4
|
+
# ZSH Completion for PDD CLI (Prompt-Driven Development)
|
|
5
|
+
#
|
|
6
|
+
# Save this file as "pdd_completion.zsh" and source it from your ~/.zshrc:
|
|
7
|
+
# source /path/to/pdd_completion.zsh
|
|
8
|
+
#
|
|
9
|
+
# The script will handle completion initialization automatically.
|
|
10
|
+
#
|
|
11
|
+
# After installation, typing:
|
|
12
|
+
# pdd <Tab>
|
|
13
|
+
# will offer completions for subcommands and options as described in the PDD CLI README.
|
|
14
|
+
##
|
|
15
|
+
|
|
16
|
+
# First, make sure we're using zsh
|
|
17
|
+
if [ -z "$ZSH_VERSION" ]; then
|
|
18
|
+
echo >&2 "pdd completion requires zsh."
|
|
19
|
+
return 1
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Add this directory to fpath so ZSH can find our completion function
|
|
23
|
+
script_dir=${0:A:h}
|
|
24
|
+
fpath=($script_dir $fpath)
|
|
25
|
+
|
|
26
|
+
# Check if we need to initialize completion system
|
|
27
|
+
# Use command -v to check if compdef function exists
|
|
28
|
+
if ! command -v compdef >/dev/null 2>&1; then
|
|
29
|
+
autoload -U compinit
|
|
30
|
+
compinit
|
|
31
|
+
fi
|
|
32
|
+
|
|
3
33
|
##
|
|
4
34
|
# ZSH Completion for PDD CLI (Prompt-Driven Development)
|
|
5
35
|
#
|
|
@@ -413,6 +443,13 @@ _pdd() {
|
|
|
413
443
|
esac
|
|
414
444
|
}
|
|
415
445
|
|
|
416
|
-
|
|
446
|
+
# Register the _pdd function as a completion for pdd command
|
|
447
|
+
# Use command -v to safely check if compdef is available again
|
|
448
|
+
# (in case something went wrong with the initialization)
|
|
449
|
+
if command -v compdef >/dev/null 2>&1; then
|
|
450
|
+
compdef _pdd pdd
|
|
451
|
+
else
|
|
452
|
+
echo >&2 "Warning: Could not register pdd completion. Make sure ZSH completion system is working."
|
|
453
|
+
fi
|
|
417
454
|
|
|
418
455
|
# End of pdd_completion.zsh
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
% You are an expert Software Engineer. Your goal is to extract a JSON from the output of a LLM. This LLM split a prompt into a sub_prompt and modified_prompt.
|
|
2
2
|
|
|
3
|
-
% Here is the generated llm_output:
|
|
3
|
+
% Here is the generated llm_output:
|
|
4
|
+
<llm_output>
|
|
5
|
+
{llm_output}
|
|
6
|
+
</llm_output>
|
|
4
7
|
|
|
5
8
|
% Output a JSON object with the following keys:
|
|
6
|
-
- 'explaination': String containing the
|
|
7
|
-
- '
|
|
8
|
-
- '
|
|
9
|
+
- 'explaination': String containing the explanation of the split and how the prompts should be extracted properly so that both prompts are complete and functional. For instance, sometimes there will be messages like '[... other internal module examples ...]' which means text is missing and should be copied from the input prompt.
|
|
10
|
+
- 'extracted_functionality': String containing the extracted functionality (the sub_prompt) that implements the interface defined in the example_code.
|
|
11
|
+
- 'remaining_prompt': String containing the modified original prompt that will import and use the functionality from the extracted sub-prompt. Sometimes only the changed portion of the modified prompt is given so you may need to combine it with parts of the input prompt to get the complete modified prompt.
|
|
9
12
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
% You are an expert Software Engineer. Your goal is to verify a code_module or program for correctness and potential issues, even if it hasn't crashed.
|
|
2
|
+
|
|
3
|
+
% Here is the program that is running the code_module: <program>{program}</program>
|
|
4
|
+
|
|
5
|
+
% Here is the prompt that generated the program and code_module: <prompt>{prompt}</prompt>
|
|
6
|
+
|
|
7
|
+
% Here is the code_module that is being used by the program: <code_module>{code}</code_module>
|
|
8
|
+
|
|
9
|
+
% Here are the output logs from the program run: <output>{output}</output>
|
|
10
|
+
|
|
11
|
+
% Follow these steps to verify the program:
|
|
12
|
+
Step 1. Compare the program and code_module against the prompt and explain any discrepancies.
|
|
13
|
+
Step 2. Analyze the input/output behavior of the program and verify if it meets the expected behavior described in the prompt.
|
|
14
|
+
Step 3. Identify any potential edge cases, error handling issues, or performance concerns that could cause problems in the future.
|
|
15
|
+
Step 4. Check the code for potential bugs that haven't manifested yet.
|
|
16
|
+
Step 5. If any issues are found, explain in detail the root cause of each issue and how it could impact the program's functioning.
|
|
17
|
+
|
|
18
|
+
% Your response should include the following structured output:
|
|
19
|
+
|
|
20
|
+
<details>
|
|
21
|
+
The detailed output of steps 1-5
|
|
22
|
+
</details>
|
|
23
|
+
<issues_count>N</issues_count>
|
|
24
|
+
|
|
25
|
+
% The issues_count field should be set to the number of issues, bugs, discrepancies, or potential problems identified (an integer >= 0). Set it to 0 if no issues are found.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
% You are an expert Software Engineer. Your goal is to fix a code_module given a list of potential issues.
|
|
2
|
+
|
|
3
|
+
% Here is the program that is running the code_module: <program>{program}</program>
|
|
4
|
+
|
|
5
|
+
% Here is the prompt that generated the program and code_module: <prompt>{prompt}</prompt>
|
|
6
|
+
|
|
7
|
+
% Here is the code_module that is being used by the program: <code_module>{code}</code_module>
|
|
8
|
+
|
|
9
|
+
% Here are the output logs from the program run: <output>{output}</output>
|
|
10
|
+
|
|
11
|
+
% Here are the potential issues that need to be fixed: <issues>{issues}</issues>
|
|
12
|
+
|
|
13
|
+
% Follow these steps to fix the program or code_module:
|
|
14
|
+
Step 1. Analyze and understand each identified issue in the context of the code_module and program.
|
|
15
|
+
Step 2. For each issue, develop a solution that addresses the root cause while still satisfying the prompt requirements.
|
|
16
|
+
Step 3. Implement the fixes, ensuring the changes resolve the issues without introducing new problems.
|
|
17
|
+
Step 4. Provide the complete fixed code_module and program with explanations for each significant change made.
|
|
18
|
+
Step 5. Verify that the fixed code meets all requirements from the original prompt and addresses all identified issues.
|
|
19
|
+
|
|
20
|
+
% Write the detail explanation for each step above in a <explanation> XML tag, the fixed code_module in a <fixed_code> XML tag and the fixed program in a <fixed_program> XML tag
|
pdd/prompts/split_LLM.prompt
CHANGED
|
@@ -69,12 +69,12 @@
|
|
|
69
69
|
Input:
|
|
70
70
|
'input_prompt' - A string contains the prompt that will be split into a sub_prompt and modified_prompt.
|
|
71
71
|
'input_code' - A string that contains the code that was generated from the input_prompt.
|
|
72
|
-
'example_code' - A string that contains
|
|
72
|
+
'example_code' - A string that contains an interface defining the specific functionality to extract into the sub_prompt. The sub_prompt will generate code that implements this interface.
|
|
73
73
|
</input_definitions>
|
|
74
74
|
<output_definitions>
|
|
75
75
|
Output:
|
|
76
|
-
'sub_prompt' - A string that contains the
|
|
77
|
-
'modified_prompt' - A string that contains the modified prompt
|
|
76
|
+
'sub_prompt' - A string that contains the extracted functionality as defined by the example_code interface that was split from the input_prompt.
|
|
77
|
+
'modified_prompt' - A string that contains the modified original prompt that will import and use the functionality defined in the sub_prompt.
|
|
78
78
|
</output_definitions>
|
|
79
79
|
</context>
|
|
80
80
|
|
pdd/split.py
CHANGED
|
@@ -7,8 +7,8 @@ from .preprocess import preprocess
|
|
|
7
7
|
from .llm_invoke import llm_invoke
|
|
8
8
|
|
|
9
9
|
class PromptSplit(BaseModel):
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
extracted_functionality: str = Field(description="The extracted functionality as a sub-module prompt")
|
|
11
|
+
remaining_prompt: str = Field(description="The modified original prompt that will import the extracted functionality")
|
|
12
12
|
|
|
13
13
|
def split(
|
|
14
14
|
input_prompt: str,
|
|
@@ -19,7 +19,7 @@ def split(
|
|
|
19
19
|
verbose: bool = False
|
|
20
20
|
) -> Tuple[str, str, str, float]:
|
|
21
21
|
"""
|
|
22
|
-
Split a prompt into
|
|
22
|
+
Split a prompt into extracted functionality and remaining prompt.
|
|
23
23
|
|
|
24
24
|
Args:
|
|
25
25
|
input_prompt (str): The prompt to split.
|
|
@@ -30,7 +30,7 @@ def split(
|
|
|
30
30
|
verbose (bool): Whether to print detailed information.
|
|
31
31
|
|
|
32
32
|
Returns:
|
|
33
|
-
Tuple[str, str, str, float]: (
|
|
33
|
+
Tuple[str, str, str, float]: (extracted_functionality, remaining_prompt, model_name, total_cost)
|
|
34
34
|
where model_name is the name of the model used (returned as the second to last tuple element)
|
|
35
35
|
and total_cost is the aggregated cost from all LLM invocations.
|
|
36
36
|
"""
|
|
@@ -100,19 +100,19 @@ def split(
|
|
|
100
100
|
|
|
101
101
|
# Extract results
|
|
102
102
|
result: PromptSplit = extract_response["result"]
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
extracted_functionality = result.extracted_functionality
|
|
104
|
+
remaining_prompt = result.remaining_prompt
|
|
105
105
|
|
|
106
106
|
# 5. Print verbose output if requested
|
|
107
107
|
if verbose:
|
|
108
108
|
rprint("\n[bold green]Final Results:[/bold green]")
|
|
109
|
-
rprint(Markdown(f"###
|
|
110
|
-
rprint(Markdown(f"###
|
|
109
|
+
rprint(Markdown(f"### Extracted Functionality\n{extracted_functionality}"))
|
|
110
|
+
rprint(Markdown(f"### Remaining Prompt\n{remaining_prompt}"))
|
|
111
111
|
rprint(f"[bold cyan]Total Cost: ${total_cost:.6f}[/bold cyan]")
|
|
112
112
|
rprint(f"[bold cyan]Model used: {model_name}[/bold cyan]")
|
|
113
113
|
|
|
114
114
|
# 6. Return results (model_name is the 2nd to last element)
|
|
115
|
-
return
|
|
115
|
+
return extracted_functionality, remaining_prompt, model_name, total_cost
|
|
116
116
|
|
|
117
117
|
except Exception as e:
|
|
118
118
|
# Print an error message, then raise an exception that includes
|
pdd/split_main.py
CHANGED
|
@@ -15,20 +15,20 @@ def split_main(
|
|
|
15
15
|
output_modified: Optional[str]
|
|
16
16
|
) -> Tuple[str, str, str, float]:
|
|
17
17
|
"""
|
|
18
|
-
CLI wrapper for splitting a prompt into
|
|
18
|
+
CLI wrapper for splitting a prompt into extracted functionality and remaining prompt.
|
|
19
19
|
|
|
20
20
|
Args:
|
|
21
21
|
ctx: Click context containing command-line parameters.
|
|
22
22
|
input_prompt_file: Path to the input prompt file to be split.
|
|
23
23
|
input_code_file: Path to the code file generated from the input prompt.
|
|
24
24
|
example_code_file: Path to the example code file showing usage.
|
|
25
|
-
output_sub: Optional path where to save the
|
|
26
|
-
output_modified: Optional path where to save the
|
|
25
|
+
output_sub: Optional path where to save the extracted functionality.
|
|
26
|
+
output_modified: Optional path where to save the remaining prompt.
|
|
27
27
|
|
|
28
28
|
Returns:
|
|
29
29
|
Tuple containing:
|
|
30
|
-
- str: The
|
|
31
|
-
- str: The
|
|
30
|
+
- str: The extracted functionality content
|
|
31
|
+
- str: The remaining prompt content
|
|
32
32
|
- float: The total cost of the operation
|
|
33
33
|
- str: The model name used (second to last element)
|
|
34
34
|
|
|
@@ -61,7 +61,7 @@ def split_main(
|
|
|
61
61
|
temperature = ctx.obj.get('temperature', 0)
|
|
62
62
|
|
|
63
63
|
# Call the split function and unpack the new tuple signature
|
|
64
|
-
|
|
64
|
+
extracted_functionality, remaining_prompt, model_name, total_cost = 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"],
|
|
@@ -73,21 +73,21 @@ def split_main(
|
|
|
73
73
|
# Save the output files
|
|
74
74
|
try:
|
|
75
75
|
with open(output_file_paths["output_sub"], 'w') as f:
|
|
76
|
-
f.write(
|
|
76
|
+
f.write(extracted_functionality) # The extracted functionality goes to output_sub
|
|
77
77
|
with open(output_file_paths["output_modified"], 'w') as f:
|
|
78
|
-
f.write(
|
|
78
|
+
f.write(remaining_prompt) # The remaining prompt goes to output_modified
|
|
79
79
|
except IOError as e:
|
|
80
80
|
raise IOError(f"Failed to save output files: {str(e)}")
|
|
81
81
|
|
|
82
82
|
# Provide user feedback if not in quiet mode
|
|
83
83
|
if not ctx.obj.get('quiet', False):
|
|
84
84
|
rprint("[bold green]Successfully split the prompt![/bold green]")
|
|
85
|
-
rprint(f"[bold]
|
|
86
|
-
rprint(f"[bold]
|
|
85
|
+
rprint(f"[bold]Extracted functionality saved to:[/bold] {output_file_paths['output_sub']}")
|
|
86
|
+
rprint(f"[bold]Remaining prompt saved to:[/bold] {output_file_paths['output_modified']}")
|
|
87
87
|
rprint(f"[bold]Model used:[/bold] {model_name}")
|
|
88
88
|
rprint(f"[bold]Total cost:[/bold] ${total_cost:.6f}")
|
|
89
89
|
|
|
90
|
-
return
|
|
90
|
+
return extracted_functionality, remaining_prompt, total_cost, model_name
|
|
91
91
|
|
|
92
92
|
except Exception as e:
|
|
93
93
|
# Handle errors and provide appropriate feedback
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pdd-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.24
|
|
4
4
|
Summary: PDD (Prompt-Driven Development) Command Line Interface
|
|
5
5
|
Author: Greg Tanaka
|
|
6
6
|
Author-email: glt@alumni.caltech.edu
|
|
@@ -47,9 +47,13 @@ Requires-Dist: rich==14.0.0
|
|
|
47
47
|
Requires-Dist: semver==3.0.2
|
|
48
48
|
Requires-Dist: setuptools
|
|
49
49
|
Requires-Dist: python-Levenshtein
|
|
50
|
+
Provides-Extra: dev
|
|
51
|
+
Requires-Dist: commitizen; extra == "dev"
|
|
52
|
+
Requires-Dist: pytest; extra == "dev"
|
|
53
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
50
54
|
Dynamic: license-file
|
|
51
55
|
|
|
52
|
-
.. image:: https://img.shields.io/badge/pdd--cli-v0.0.
|
|
56
|
+
.. image:: https://img.shields.io/badge/pdd--cli-v0.0.24-blue
|
|
53
57
|
:alt: PDD-CLI Version
|
|
54
58
|
|
|
55
59
|
PDD (Prompt-Driven Development) Command Line Interface
|
|
@@ -110,7 +114,7 @@ After installation, verify:
|
|
|
110
114
|
|
|
111
115
|
pdd --version
|
|
112
116
|
|
|
113
|
-
You'll see the current PDD version (e.g., 0.0.
|
|
117
|
+
You'll see the current PDD version (e.g., 0.0.24).
|
|
114
118
|
|
|
115
119
|
Advanced Installation Tips
|
|
116
120
|
--------------------------
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
pdd/__init__.py,sha256=
|
|
1
|
+
pdd/__init__.py,sha256=ZQhXtFuXIGDwpCAUqfQWo3IQMf-8Lz9t5nYhJnOYBdI,23
|
|
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=
|
|
5
|
+
pdd/bug_main.py,sha256=iG_Fzw0YJjMUcq0RqUENNcVVf8B2XIq5E825yI8Gnwo,4449
|
|
6
6
|
pdd/bug_to_unit_test.py,sha256=dsJNm6qAwx-m7RvFF5RquFJRzxzZGCWT4IKYnzVCUws,5569
|
|
7
7
|
pdd/change.py,sha256=iqjWS5DrQ73yMkuUQlwIRIFlofmKdaK6t6-v3zHKL-4,4985
|
|
8
8
|
pdd/change_main.py,sha256=yL_i1Ws5vt4vAkWiC826csNi2cHP6wKbwe_PfMqbbPY,11407
|
|
9
|
-
pdd/cli.py,sha256=
|
|
9
|
+
pdd/cli.py,sha256=EvCWObNZwmQgLvCdgEan3-4DNnlTPOVqvNaPLfd-Vcs,16620
|
|
10
10
|
pdd/cmd_test_main.py,sha256=aSCxRnSurg15AvPcJDAPp9xy8p_qqnjU1oV14Hi2R54,5301
|
|
11
11
|
pdd/code_generator.py,sha256=n5akrX7VPe71X4RsD6kKqAVvzBLMlciJI4RtJA1PcgA,4375
|
|
12
12
|
pdd/code_generator_main.py,sha256=G2eRBPXc1cGszkk0PbIPmJZHPaf_dw5d2yZbsvQZA3c,4793
|
|
@@ -27,7 +27,9 @@ pdd/fix_code_module_errors.py,sha256=M6AnlR2jF5LI-nNg6gIO5LvSkxiaLIUGyTvfnUfe1cU
|
|
|
27
27
|
pdd/fix_error_loop.py,sha256=BBUROFjV6Hvp141ruDqkf-VeQti3Yx_8hxdTKLJMWcY,23983
|
|
28
28
|
pdd/fix_errors_from_unit_tests.py,sha256=vFQdEetg2VpfrQhXPa441ZJdmmBR3Z743545_lNWVA4,15978
|
|
29
29
|
pdd/fix_main.py,sha256=2CoCsCQD0X1sqkhiG1Oako0REtnq7fl_GnnPc2HP3QI,12269
|
|
30
|
-
pdd/
|
|
30
|
+
pdd/fix_verification_errors.py,sha256=Ls1W_k7fHQWlzrSQFD9oCdSef-FTOqbz-6dimtQoY-A,10780
|
|
31
|
+
pdd/fix_verification_errors_loop.py,sha256=kZ_MzLPEBfNEM-ZTNrvrkN4x9WOtGlkzejZCTay9YXo,44024
|
|
32
|
+
pdd/generate_output_paths.py,sha256=HTdgRcAyWo0lzg4ana5_LBWPm3MOwrcLy6puP3NQ0OQ,7465
|
|
31
33
|
pdd/generate_test.py,sha256=BwmRnjaPDTlxUqJZ37N3bxTBHlLPCZIR5i1bwrNNv54,4791
|
|
32
34
|
pdd/get_comment.py,sha256=yuRtk68-SDkMaGzOSyIFdldRoymJBRSKjOYkr0narVc,2627
|
|
33
35
|
pdd/get_extension.py,sha256=ZSsbi7n-tFw-7RQX7c3pV1qWsRt72qS_3AlAYjV53jA,2393
|
|
@@ -36,21 +38,21 @@ pdd/get_language.py,sha256=yxyQqVEb5H3ep3Hc6XgAl3vMLTHD5OIs8ZSekB493GA,1438
|
|
|
36
38
|
pdd/git_update.py,sha256=Ya7eI7YFtGIpT7FdziFJfnFkiZlj8I9Lh98lqtXfClc,2855
|
|
37
39
|
pdd/increase_tests.py,sha256=axOvM_F7pLRevWJsYe2W7d24OA7P-FaWShE4cotktNo,3424
|
|
38
40
|
pdd/insert_includes.py,sha256=UASoq_46UNL6l7VGB7DW2jb4kcWlP6Hbj2EWuh7210Q,5310
|
|
39
|
-
pdd/install_completion.py,sha256=
|
|
40
|
-
pdd/llm_invoke.py,sha256=
|
|
41
|
+
pdd/install_completion.py,sha256=H_FIid0eHCn7I6HHIsBqdComAxjLIu7CbD6yfMU48aw,5085
|
|
42
|
+
pdd/llm_invoke.py,sha256=uk_Kwal4_ssd4ZPrgv2zp_ZfUDdcRgPVIbiIS1MgWzs,17192
|
|
41
43
|
pdd/load_prompt_template.py,sha256=4NH8_t5eon_vcyTznqtemJ_yAPkTJm_hSdTRgzj3qEQ,1907
|
|
42
44
|
pdd/mcp_config.json,sha256=D3ctWHlShvltbtH37zbYb6smVE0V80_lGjDKDIqsSBE,124
|
|
43
45
|
pdd/pdd_completion.fish,sha256=rs-43fa3kcDBN1uy4oxiofLAWmaqW0U2j5Mu4wCHh5M,6121
|
|
44
46
|
pdd/pdd_completion.sh,sha256=qurWrEksqptjryBZszxHv6i0MqgnIqJenMBDrzMgI98,4535
|
|
45
|
-
pdd/pdd_completion.zsh,sha256
|
|
47
|
+
pdd/pdd_completion.zsh,sha256=-yz69Rs4lnJ-bRAF8H2Tzk0GuDUo-BWjytE3fv5wTS8,13458
|
|
46
48
|
pdd/postprocess.py,sha256=7Dt4C7hZZbqCpYK0LG2Ui_vIUYw9UTN3w5Wgd_JZYBs,4021
|
|
47
49
|
pdd/postprocess_0.py,sha256=OW17GyCFLYErCyWh2tL4syuho3q2yFf2wyekQ4BLdPM,2168
|
|
48
50
|
pdd/preprocess.py,sha256=24Nwk-3H_X0EJyX52auf4JjLR9eDrAZ7YScvrgLEPKw,9520
|
|
49
51
|
pdd/preprocess_main.py,sha256=dAgFGmjuJB1taZl31c1sY2jMGtQgjnWLbpeB7EFtojY,2977
|
|
50
52
|
pdd/process_csv_change.py,sha256=10XTzVFQ0rE4lPSF93yhIW7VJmxmfe-hk1B7ui_qxJI,8415
|
|
51
53
|
pdd/pytest_output.py,sha256=kmKiMHaQItrDVi_hTCtM5pfCgBuyZVEVRbxdchpS5CY,4796
|
|
52
|
-
pdd/split.py,sha256=
|
|
53
|
-
pdd/split_main.py,sha256=
|
|
54
|
+
pdd/split.py,sha256=fTx-hjyflgD6VAZoPFaVlZVK2tRCGM0rGlg_X63d2wE,4873
|
|
55
|
+
pdd/split_main.py,sha256=NyOyhG6FNbIxWCQdfC3CwurPSHIF9IWikYNhxM-1Np0,4317
|
|
54
56
|
pdd/summarize_directory.py,sha256=3KUOP30RgkBXpz0_btmpubnO1vWAQ3tKyVI84Zp-E9Q,9041
|
|
55
57
|
pdd/trace.py,sha256=DMgL8cEk8gwdpyOumEi3am8wTq68e4OJzoc61H0vLAA,5011
|
|
56
58
|
pdd/trace_main.py,sha256=3gpd8DsdPfRpq4tjZ2rwC-7Juz90DTVubwsW3LXl8CE,4429
|
|
@@ -60,7 +62,7 @@ pdd/update_main.py,sha256=5a4nsOOaAXULdk0BS9pj4blZ_QHBFeET37uaAqoJI2g,3912
|
|
|
60
62
|
pdd/update_prompt.py,sha256=OdPRIAMu7OBx7E4SOU95hWgdtBY4oO8XOe1dvPChMlU,4351
|
|
61
63
|
pdd/xml_tagger.py,sha256=NcyWacoXarRi6_16pchMhh1M7V-Gfz1cQImO_If2ia4,4241
|
|
62
64
|
pdd/data/language_format.csv,sha256=xUTmFHXSBVBRfPV-NKG3oWo5_ped5ukP-ekFcIlVzJk,877
|
|
63
|
-
pdd/data/llm_model.csv,sha256=
|
|
65
|
+
pdd/data/llm_model.csv,sha256=Yb46r-gybY90nrRcrkN3DHUbjprC51HUg3AxQTUoeRQ,1693
|
|
64
66
|
pdd/prompts/auto_include_LLM.prompt,sha256=0t-Jmm5o6vVTmqsISTUiewqPT8bB389UZnJoHZvgtu4,13967
|
|
65
67
|
pdd/prompts/bug_to_unit_test_LLM.prompt,sha256=--ysObDv9WzOEyJMuaKEdDHkRrR_1j0dmOtlAFr4YRg,1205
|
|
66
68
|
pdd/prompts/change_LLM.prompt,sha256=W3sE6XZ2fb35XdqOykK1hDPtqkHSv9MZGD3sT8B8WjY,2083
|
|
@@ -74,17 +76,19 @@ pdd/prompts/extract_conflict_LLM.prompt,sha256=V_xXdU7V4IZK9SVFxJtXKRn_wFkP3zp4F
|
|
|
74
76
|
pdd/prompts/extract_detect_change_LLM.prompt,sha256=2HXSb9bGjHZsKrUGvfBdBAAcGBCrQ2AxC8vUJRAfB1U,1003
|
|
75
77
|
pdd/prompts/extract_program_code_fix_LLM.prompt,sha256=ra_aDz2x8MfOa5dh7JCtxjoUFa4dWeKPJOpLohMnrig,1137
|
|
76
78
|
pdd/prompts/extract_prompt_change_LLM.prompt,sha256=1e3AxcVpZ85t7pVvXqCpBUJzGI995MIimXicClagSvw,366
|
|
77
|
-
pdd/prompts/extract_prompt_split_LLM.prompt,sha256=
|
|
79
|
+
pdd/prompts/extract_prompt_split_LLM.prompt,sha256=rhStDroVxDYRcCjYq7XCCub8B-KmfCFj5_7PxhgMmz0,1097
|
|
78
80
|
pdd/prompts/extract_prompt_update_LLM.prompt,sha256=U9QsacZ9OcT-CVPYkWN5eXZMDGIOy2r2C3OFtZ61tew,365
|
|
79
81
|
pdd/prompts/extract_promptline_LLM.prompt,sha256=owIBRaF2bWwg3S64uyMKzOFMdvvmI_EEGoF97Pa9118,813
|
|
80
82
|
pdd/prompts/extract_unit_code_fix_LLM.prompt,sha256=1gWS0-Qs6vMynNNqp1Xc-2hcsyH_NTLZPB1-lvyprm8,14143
|
|
81
83
|
pdd/prompts/extract_xml_LLM.prompt,sha256=eRcHaL-khShpb7C1_b7wmBJHfo2Kh1Wvjo_aOcWZovU,561
|
|
84
|
+
pdd/prompts/find_verification_errors_LLM.prompt,sha256=yIZk1Lmz9Q0-0o_Oprm-gK1jSTng30UrkCZHpynX8b0,1449
|
|
82
85
|
pdd/prompts/fix_code_module_errors_LLM.prompt,sha256=m-oqZ3cOkWbqke_l9z0Nmunf7NsnR9JWTNVVlfcteAY,1405
|
|
83
86
|
pdd/prompts/fix_errors_from_unit_tests_LLM.prompt,sha256=m42HdbfuHOOgDUFUcx6SMtzIvHAHdRZMNNPvQayR21c,5077
|
|
87
|
+
pdd/prompts/fix_verification_errors_LLM.prompt,sha256=NM1RV7zNLqQjY40z68fN_ilN9xIZEi-mgWVGZe4a9r4,1348
|
|
84
88
|
pdd/prompts/generate_test_LLM.prompt,sha256=3SuYPVOCl41ZliCq1DTg38OcQh7r3RrgIZZIGjxKaiI,1497
|
|
85
89
|
pdd/prompts/increase_tests_LLM.prompt,sha256=rekFzLRuZy99KifEKNlmPYoQdl8wa04112mtCdIY6S8,955
|
|
86
90
|
pdd/prompts/insert_includes_LLM.prompt,sha256=g-p2gXKENsqvfK5Q9FYbqFsIJ5CP7rbxmd4rROA-W80,1453
|
|
87
|
-
pdd/prompts/split_LLM.prompt,sha256=
|
|
91
|
+
pdd/prompts/split_LLM.prompt,sha256=cMVyazsue6eerOPYeueqpSNRiITy1ht0HgGytPFiQIk,6244
|
|
88
92
|
pdd/prompts/summarize_file_LLM.prompt,sha256=qb9K61XMVFy7hgGITglI37Xg7yLPAGQBm0rUBEqRnEc,387
|
|
89
93
|
pdd/prompts/trace_LLM.prompt,sha256=XTPoQQpKrF7BtWkCJPIrinn448VyBGXJieibMsMP-y0,1231
|
|
90
94
|
pdd/prompts/trim_results_LLM.prompt,sha256=w4aL0S7v7fPSi3L9XeQR3mUOgNv3hpTDqi4rOtu7L7I,4033
|
|
@@ -92,9 +96,9 @@ pdd/prompts/trim_results_start_LLM.prompt,sha256=WwFlOHha4wzMLtRHDMI6GtcNdl2toE8
|
|
|
92
96
|
pdd/prompts/unfinished_prompt_LLM.prompt,sha256=-JgBpiPTQZdWOAwOG1XpfpD9waynFTAT3Jo84eQ4bTw,1543
|
|
93
97
|
pdd/prompts/update_prompt_LLM.prompt,sha256=_lGaxeVP4oF8yGqiN6yj6UE0j79lxfGdjsYr5w5KSYk,1261
|
|
94
98
|
pdd/prompts/xml_convertor_LLM.prompt,sha256=YGRGXJeg6EhM9690f-SKqQrKqSJjLFD51UrPOlO0Frg,2786
|
|
95
|
-
pdd_cli-0.0.
|
|
96
|
-
pdd_cli-0.0.
|
|
97
|
-
pdd_cli-0.0.
|
|
98
|
-
pdd_cli-0.0.
|
|
99
|
-
pdd_cli-0.0.
|
|
100
|
-
pdd_cli-0.0.
|
|
99
|
+
pdd_cli-0.0.24.dist-info/licenses/LICENSE,sha256=-1bjYH-CEjGEQ8VixtnRYuu37kN6F9NxmZSDkBuUQ9o,1062
|
|
100
|
+
pdd_cli-0.0.24.dist-info/METADATA,sha256=l7y1yjHTaS2myL0wuTZc2GLykZd5eFa6P2pK6YYBCwI,7256
|
|
101
|
+
pdd_cli-0.0.24.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
102
|
+
pdd_cli-0.0.24.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
|
|
103
|
+
pdd_cli-0.0.24.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
|
|
104
|
+
pdd_cli-0.0.24.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|