pdd-cli 0.0.62__py3-none-any.whl → 0.0.64__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 CHANGED
@@ -1,6 +1,6 @@
1
1
  """PDD - Prompt Driven Development"""
2
2
 
3
- __version__ = "0.0.62"
3
+ __version__ = "0.0.64"
4
4
 
5
5
  # Strength parameter used for LLM extraction across the codebase
6
6
  # Used in postprocessing, XML tagging, code generation, and other extraction
@@ -66,4 +66,6 @@ Text,del,.txt
66
66
  INI,;,.ini
67
67
  Verilog,//,.v
68
68
  Systemverilog,//,.sv
69
- Prisma,///,.prisma
69
+ Prisma,///,.prisma
70
+ Lean,--,.lean
71
+ Agda,--,.agda
pdd/preprocess.py CHANGED
@@ -28,9 +28,12 @@ def _write_debug_report() -> None:
28
28
  fh.write("Preprocess Debug Report\n\n")
29
29
  for line in _DEBUG_EVENTS:
30
30
  fh.write(line + "\n")
31
- except Exception:
32
- # Avoid interfering with normal flow if writing fails
33
- pass
31
+ console.print(f"[green]Debug report written to:[/green] {_DEBUG_OUTPUT_FILE}")
32
+ except Exception as e:
33
+ # Report the error so users know why the log file wasn't written
34
+ console.print(f"[yellow]Warning: Could not write debug report to {_DEBUG_OUTPUT_FILE}: {e}[/yellow]")
35
+ elif _DEBUG_PREPROCESS and not _DEBUG_OUTPUT_FILE:
36
+ console.print("[dim]Debug mode enabled but PDD_PREPROCESS_DEBUG_FILE not set (output shown in console only)[/dim]")
34
37
 
35
38
  def _extract_fence_spans(text: str) -> List[Tuple[int, int]]:
36
39
  """Return list of (start, end) spans for fenced code blocks ```...```.
@@ -66,13 +66,14 @@ output_schema:
66
66
  type: array
67
67
  items:
68
68
  type: object
69
- required: [reason, description, dependencies, priority, filename]
69
+ required: [reason, description, dependencies, priority, filename, filepath]
70
70
  properties:
71
71
  reason: { type: string }
72
72
  description: { type: string }
73
73
  dependencies: { type: array, items: { type: string } }
74
74
  priority: { type: integer, minimum: 1 }
75
75
  filename: { type: string }
76
+ filepath: { type: string }
76
77
  tags: { type: array, items: { type: string } }
77
78
  interface:
78
79
  type: object
@@ -83,7 +84,15 @@ output_schema:
83
84
  type: object
84
85
  properties:
85
86
  route: { type: string }
86
- params: { type: array, items: { type: object } }
87
+ params:
88
+ type: array
89
+ items:
90
+ type: object
91
+ required: [name, type]
92
+ properties:
93
+ name: { type: string }
94
+ type: { type: string }
95
+ description: { type: string }
87
96
  dataSources:
88
97
  type: array
89
98
  items:
@@ -121,7 +130,7 @@ INSTRUCTIONS:
121
130
  - Use only the facts from the included documents and files. Do not invent technologies or filenames.
122
131
  - If TECH_STACK_FILE is absent, infer a reasonable tech stack from the PRD and included files; state key assumptions within each item's description.
123
132
  - Output a single top-level JSON array of items. Each item must include:
124
- - reason, description, dependencies (filenames), priority (1 = highest), filename, optional tags.
133
+ - reason (briefly explain why this code module needs to exist), description, dependencies (filenames), priority (1 = highest), filename, filepath, optional tags.
125
134
  - interface: include only the applicable sub-object (component, page, module, api, graphql, cli, job, message, or config). Omit all non-applicable sub-objects entirely.
126
135
  - When interface.type is "page", each entry in `dataSources` must be an object with at least `kind` (e.g., api/query) and `source` (e.g., URL or identifier). Provide `method`, `description`, and any other useful metadata when known.
127
136
  - Valid JSON only. No comments or trailing commas.
@@ -132,20 +141,38 @@ OUTPUT FORMAT (authoritative):
132
141
  "type": "array",
133
142
  "items": {
134
143
  "type": "object",
135
- "required": ["reason", "description", "dependencies", "priority", "filename"],
144
+ "required": ["reason", "description", "dependencies", "priority", "filename", "filepath"],
136
145
  "properties": {
137
146
  "reason": {"type": "string"},
138
147
  "description": {"type": "string"},
139
148
  "dependencies": {"type": "array", "items": {"type": "string"}},
140
149
  "priority": {"type": "integer", "minimum": 1},
141
150
  "filename": {"type": "string"},
151
+ "filepath": {"type": "string"},
142
152
  "tags": {"type": "array", "items": {"type": "string"}},
143
153
  "interface": {
144
154
  "type": "object",
145
155
  "properties": {
146
156
  "type": {"enum": ["component", "page", "module", "api", "graphql", "cli", "job", "message", "config"]},
147
157
  "component": {"type": "object"},
148
- "page": {"type": "object", "properties": {"route": {"type": "string"}}},
158
+ "page": {
159
+ "type": "object",
160
+ "properties": {
161
+ "route": {"type": "string"},
162
+ "params": {
163
+ "type": "array",
164
+ "items": {
165
+ "type": "object",
166
+ "required": ["name", "type"],
167
+ "properties": {
168
+ "name": {"type": "string"},
169
+ "type": {"type": "string"},
170
+ "description": {"type": "string"}
171
+ }
172
+ }
173
+ }
174
+ }
175
+ },
149
176
  "module": {"type": "object"},
150
177
  "api": {"type": "object"},
151
178
  "graphql": {"type": "object"},
@@ -161,7 +188,7 @@ OUTPUT FORMAT (authoritative):
161
188
  ```
162
189
 
163
190
  INTERFACE TYPES (emit only applicable):
164
- - page: route (string), params? (array), dataSources? (array), layout? (object)
191
+ - page: route (string), params? (array of {name, type, description?}), dataSources? (array), layout? (object)
165
192
  - component: props (array of {name, type, required?}), emits? (array), context? (array)
166
193
  - module: functions (array of {name, signature, returns?, errors?, sideEffects?})
167
194
  - api: endpoints (array of {method, path, auth?, requestSchema?, responseSchema?, errors?})
@@ -178,6 +205,18 @@ FILENAME CONVENTIONS:
178
205
  - Python backend: api_Python.prompt -> api.py; orders_Python.prompt -> orders.py
179
206
  - Choose descriptive <base> names (e.g., orders_page, orders_api) and keep names consistent across dependencies.
180
207
 
208
+ FILEPATH CONVENTIONS:
209
+ - The "filepath" field specifies the path of the output source file from the source tree root, using conventions appropriate for the language and framework.
210
+ - Examples (adapt to your stack):
211
+ - Next.js app router: app/orders/page.tsx, app/layout.tsx, app/api/orders/route.ts
212
+ - Next.js pages router: pages/orders.tsx, pages/api/orders.ts
213
+ - Python FastAPI: src/api.py, src/orders.py, src/models/order.py
214
+ - React components: src/components/OrderList.tsx, src/hooks/useOrders.ts
215
+ - Config files: .env.example, pyproject.toml, package.json
216
+ - Use forward slashes (/) for path separators regardless of OS.
217
+ - Include the appropriate file extension for the target language (.tsx, .py, .rs, .go, etc.).
218
+ - Follow standard directory structures for the framework (e.g., app/ for Next.js 13+, src/ for typical React/Python projects).
219
+
181
220
  DEPENDENCY RULES:
182
221
  - The "dependencies" array must list other items by their prompt filenames (the "filename" values), not code filenames.
183
222
  - Do not reference files that are not part of this array unless they were explicitly provided via INCLUDE_FILES/DOC_FILES.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pdd-cli
3
- Version: 0.0.62
3
+ Version: 0.0.64
4
4
  Summary: PDD (Prompt-Driven Development) Command Line Interface
5
5
  Author: Greg Tanaka
6
6
  Author-email: glt@alumni.caltech.edu
@@ -53,7 +53,7 @@ Requires-Dist: build; extra == "dev"
53
53
  Requires-Dist: twine; extra == "dev"
54
54
  Dynamic: license-file
55
55
 
56
- .. image:: https://img.shields.io/badge/pdd--cli-v0.0.62-blue
56
+ .. image:: https://img.shields.io/badge/pdd--cli-v0.0.64-blue
57
57
  :alt: PDD-CLI Version
58
58
 
59
59
  .. image:: https://img.shields.io/badge/Discord-join%20chat-7289DA.svg?logo=discord&logoColor=white&link=https://discord.gg/Yp4RTh8bG7
@@ -130,7 +130,7 @@ After installation, verify:
130
130
 
131
131
  pdd --version
132
132
 
133
- You'll see the current PDD version (e.g., 0.0.62).
133
+ You'll see the current PDD version (e.g., 0.0.64).
134
134
 
135
135
  Getting Started with Examples
136
136
  -----------------------------
@@ -1,4 +1,4 @@
1
- pdd/__init__.py,sha256=41MUueYvzpXybf55GOfmYTViLeVAZihThf7Y-8g_YI4,633
1
+ pdd/__init__.py,sha256=HzNFDKj8do2Uvh7QRAXsZuEpch_RV0HK0lq7vl9Q1no,633
2
2
  pdd/auto_deps_main.py,sha256=cpP3bbzVL3jomrGinpzTxzIDIC8tmDDYOwUAC1TKRaw,3970
3
3
  pdd/auto_include.py,sha256=OJcdcwTwJNqHPHKG9P4m9Ij-PiLex0EbuwJP0uiQi_Y,7484
4
4
  pdd/auto_update.py,sha256=w6jzTnMiYRNpwQHQxWNiIAwQ0d6xh1iOB3xgDsabWtc,5236
@@ -50,7 +50,7 @@ pdd/pdd_completion.sh,sha256=xgx-g6aeCCrlh6loeLyJN5jCsX15YXrWyT1U499p3C0,6490
50
50
  pdd/pdd_completion.zsh,sha256=V9-V8jqw3osjlXNOvjYMJf0E771-_EQe-Cboo1xzPvY,17090
51
51
  pdd/postprocess.py,sha256=mNw3iSDxE-eTYo3QwJCj_EmdEnnB5ysUN62YPapC_IM,4433
52
52
  pdd/postprocess_0.py,sha256=OW17GyCFLYErCyWh2tL4syuho3q2yFf2wyekQ4BLdPM,2168
53
- pdd/preprocess.py,sha256=STmC_e4ST253jrhYtya1GfGBDIECu2n3P68S0qyGIxs,17779
53
+ pdd/preprocess.py,sha256=tmZiYlpiJHFDPuwlYtl1htQ7ZA77roGdPRvO4sHXYGU,18162
54
54
  pdd/preprocess_main.py,sha256=WGhOB9qEu7MmFoyXNml_AmqGii73LJWngx4kTlZ526k,3262
55
55
  pdd/process_csv_change.py,sha256=ckNqVPRooWVyIvmqjdEgo2PDLnpoQ6Taa2dUaWGRlzU,27926
56
56
  pdd/pytest_output.py,sha256=IrRKYneW_F6zv9WaJwKFGnOBLFBFjk1CnhO_EVAjb9E,6612
@@ -72,7 +72,7 @@ pdd/update_main.py,sha256=SWCd7Us3YatrDR7B66dQCpRCIgQoMHysPzxa4dedVmk,4385
72
72
  pdd/update_model_costs.py,sha256=RfeOlAHtc1FCx47A7CjrH2t5WXQclQ_9uYtNjtQh75I,22998
73
73
  pdd/update_prompt.py,sha256=zc-HiI1cwGBkJHVmNDyoSZa13lZH90VdB9l8ajdj6Kk,4543
74
74
  pdd/xml_tagger.py,sha256=5Bc3HRm7iz_XjBdzQIcMb8KocUQ8PELI2NN5Gw4amd4,4825
75
- pdd/data/language_format.csv,sha256=i4AfibdhmMnx_xAnv5jHA8TGSftjOJnLcKE53kS7kLY,1010
75
+ pdd/data/language_format.csv,sha256=7vrzwf84jHhEPSq_YNjHNtVBURBginiuN22ab3nGQl8,1038
76
76
  pdd/data/llm_model.csv,sha256=u7naNW110fejsV443qlzs0_TmCAzxa8EJogjmmJSAZs,1702
77
77
  pdd/prompts/auto_include_LLM.prompt,sha256=sNF2rdJu9wJ8c0lwjCfZ9ZReX8zGXRUNehRs1ZiyDoc,12108
78
78
  pdd/prompts/bug_to_unit_test_LLM.prompt,sha256=KdMkvRVnjVSf0NTYIaDXIMT93xPttXEwkMpjWx5leLs,1588
@@ -110,11 +110,11 @@ pdd/prompts/trim_results_start_LLM.prompt,sha256=OKz8fAf1cYWKWgslFOHEkUpfaUDARh3
110
110
  pdd/prompts/unfinished_prompt_LLM.prompt,sha256=vud_G9PlVv9Ig64uBC-hPEVFRk5lwpc8pW6tOIxJM4I,5082
111
111
  pdd/prompts/update_prompt_LLM.prompt,sha256=prIc8uLp2jqnLTHt6JvWDZGanPZipivhhYeXe0lVaYw,1328
112
112
  pdd/prompts/xml_convertor_LLM.prompt,sha256=YGRGXJeg6EhM9690f-SKqQrKqSJjLFD51UrPOlO0Frg,2786
113
- pdd/templates/architecture/architecture_json.prompt,sha256=omwivayKRP87_PJXqmUPEOwWItZ10b42tnn1aLoslGE,8986
113
+ pdd/templates/architecture/architecture_json.prompt,sha256=lmEM6f1EGK73wivONssvlSNXuTy2nYv-p-oRqBg1iFg,10745
114
114
  pdd/templates/generic/generate_prompt.prompt,sha256=4PhcNczpYpwSiaGt0r2f-vhSO3JFqeU1fTEy6YpPudQ,10758
115
- pdd_cli-0.0.62.dist-info/licenses/LICENSE,sha256=kvTJnnxPVTYlGKSY4ZN1kzdmJ0lxRdNWxgupaB27zsU,1066
116
- pdd_cli-0.0.62.dist-info/METADATA,sha256=Ha871-qxdSiVohQUS1P-kfhePM1SBYMzYWmtGojHaMw,12687
117
- pdd_cli-0.0.62.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
- pdd_cli-0.0.62.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
119
- pdd_cli-0.0.62.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
120
- pdd_cli-0.0.62.dist-info/RECORD,,
115
+ pdd_cli-0.0.64.dist-info/licenses/LICENSE,sha256=kvTJnnxPVTYlGKSY4ZN1kzdmJ0lxRdNWxgupaB27zsU,1066
116
+ pdd_cli-0.0.64.dist-info/METADATA,sha256=mYroLJ9iMY7mcxAkiZxYs0CV5tzH6Ew1wu6JZbwBCmo,12687
117
+ pdd_cli-0.0.64.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
+ pdd_cli-0.0.64.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
119
+ pdd_cli-0.0.64.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
120
+ pdd_cli-0.0.64.dist-info/RECORD,,