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.

@@ -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
- with importlib.resources.path("pdd", "cli.py") as p:
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
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 users shell,
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 users shell RC file if not already present.
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-4o-mini".
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') and 'mini' not in model_name:
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
- reasoning_effort='high')
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-4o-mini')
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
- compdef _pdd pdd
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: ```{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 explaination 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 the input prompt.
7
- - 'sub_prompt': String containing the sub_prompt that was split from the input_prompt.
8
- - 'modified_prompt': String containing the complete modified prompt from input_prompt split from the 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 get the complete modified prompt.
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
@@ -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 the code example of how the code generated from the sub_prompt would be used by the code generated from the modified_prompt.
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 sub_prompt that was split from the input_prompt.
77
- 'modified_prompt' - A string that contains the modified prompt from input_prompt split from the above sub_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
- sub_prompt: str = Field(description="The extracted sub-prompt")
11
- modified_prompt: str = Field(description="The modified original prompt")
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 a sub_prompt and modified_prompt.
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]: (sub_prompt, modified_prompt, model_name, total_cost)
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
- sub_prompt = result.sub_prompt
104
- modified_prompt = result.modified_prompt
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"### Sub Prompt\n{sub_prompt}"))
110
- rprint(Markdown(f"### Modified Prompt\n{modified_prompt}"))
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 sub_prompt, modified_prompt, model_name, total_cost
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 a sub_prompt and modified_prompt.
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 sub-prompt.
26
- output_modified: Optional path where to save the modified prompt.
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 sub-prompt content
31
- - str: The modified prompt content
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
- sub_prompt, modified_prompt, model_name, total_cost = split(
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(sub_prompt)
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(modified_prompt)
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]Sub-prompt saved to:[/bold] {output_file_paths['output_sub']}")
86
- rprint(f"[bold]Modified prompt saved to:[/bold] {output_file_paths['output_modified']}")
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 sub_prompt, modified_prompt, total_cost, model_name
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.22
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.22-blue
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.22).
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=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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=myKU9--QWdkV4Wf3mD2PoLPJFNgRjwf4z8s7TC28G_s,3720
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=LdJtulJ50L1pWUYcGghr7AUoS5fYwK6WY2VTKtWlbPI,16593
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/generate_output_paths.py,sha256=zz42GTx9eGyWIYSl3jcWvtJRGnieC3eoPM6DIVcWz2k,7219
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=joTIKRkx0e6kRrXj9NXtMODnIG-G0Twt7wBmj8TirmE,5102
40
- pdd/llm_invoke.py,sha256=Yhpoom9Ptgl_hjfWOFA_AhNQE2VFy07J9qWiEuHTP4Y,17343
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=gav5kYLizpMLe9H_MK34sisgFx6LFDgfBW49nsg-5P0,12304
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=aISO7DcD8UkE_r7w1Ii466RgxSlVDFfTCymJ7IWUhsw,4692
53
- pdd/split_main.py,sha256=dV9G2YJDp12ik6x1a_dgBtyu27BSt4Fyd2trgxL7qFI,4123
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=tOHyoa_Cl2GaRI-NjbeXgH116SsMZ8_IvoXs60CPGf0,1712
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=CZU4KhMUgkSxhFs0dIqbsNMrybzrNQMTZva9V-IM-1A,970
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=T6KH6JWaMxRE1aA-IaVNlb2e85NfkYKRxqgDZZb2aBQ,6140
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.22.dist-info/licenses/LICENSE,sha256=-1bjYH-CEjGEQ8VixtnRYuu37kN6F9NxmZSDkBuUQ9o,1062
96
- pdd_cli-0.0.22.dist-info/METADATA,sha256=yCqlXrfcKqJWPmwOBFL52z6U9ICqamhiuLKs625bXQo,7114
97
- pdd_cli-0.0.22.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
98
- pdd_cli-0.0.22.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
99
- pdd_cli-0.0.22.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
100
- pdd_cli-0.0.22.dist-info/RECORD,,
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,,