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 +1 -1
- pdd/data/language_format.csv +3 -1
- pdd/preprocess.py +6 -3
- pdd/templates/architecture/architecture_json.prompt +45 -6
- {pdd_cli-0.0.62.dist-info → pdd_cli-0.0.64.dist-info}/METADATA +3 -3
- {pdd_cli-0.0.62.dist-info → pdd_cli-0.0.64.dist-info}/RECORD +10 -10
- {pdd_cli-0.0.62.dist-info → pdd_cli-0.0.64.dist-info}/WHEEL +0 -0
- {pdd_cli-0.0.62.dist-info → pdd_cli-0.0.64.dist-info}/entry_points.txt +0 -0
- {pdd_cli-0.0.62.dist-info → pdd_cli-0.0.64.dist-info}/licenses/LICENSE +0 -0
- {pdd_cli-0.0.62.dist-info → pdd_cli-0.0.64.dist-info}/top_level.txt +0 -0
pdd/__init__.py
CHANGED
pdd/data/language_format.csv
CHANGED
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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:
|
|
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": {
|
|
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.
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
116
|
-
pdd_cli-0.0.
|
|
117
|
-
pdd_cli-0.0.
|
|
118
|
-
pdd_cli-0.0.
|
|
119
|
-
pdd_cli-0.0.
|
|
120
|
-
pdd_cli-0.0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|