predev-api 0.8.0__tar.gz → 0.9.0__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: predev-api
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Summary: Python client for the Pre.dev Architect API - Generate comprehensive software specifications
5
5
  Home-page: https://github.com/predotdev/predev-api
6
6
  Author: Pre.dev
@@ -348,6 +348,11 @@ class SpecResponse:
348
348
  codingAgentSpecUrl: Optional[str] = None # Spec optimized for AI/LLM systems
349
349
  humanSpecUrl: Optional[str] = None # Spec optimized for human readers
350
350
  totalHumanHours: Optional[int] = None # Estimated hours for human developers
351
+ # Direct returns (new)
352
+ codingAgentSpecJson: Optional[CodingAgentSpecJson] = None # Simplified JSON for coding tools
353
+ codingAgentSpecMarkdown: Optional[str] = None # Simplified markdown for coding tools
354
+ humanSpecJson: Optional[HumanSpecJson] = None # Full JSON with hours/personas/roles
355
+ humanSpecMarkdown: Optional[str] = None # Full markdown with all details
351
356
  executionTime: Optional[int] = None # Processing time in milliseconds
352
357
 
353
358
  # Integration URLs (when completed)
@@ -368,6 +373,100 @@ class SpecResponse:
368
373
  progress: Optional[str] = None # Progress information
369
374
  ```
370
375
 
376
+ ### Direct Spec JSON structures
377
+ ```python
378
+ @dataclass
379
+ class SpecCoreFunctionality:
380
+ name: str
381
+ description: str
382
+ priority: Optional[str] = None
383
+
384
+ @dataclass
385
+ class SpecTechStackItem:
386
+ name: str
387
+ category: str
388
+
389
+ @dataclass
390
+ class SpecPersona:
391
+ title: str
392
+ description: str
393
+ primaryGoals: Optional[List[str]] = None
394
+ painPoints: Optional[List[str]] = None
395
+ keyTasks: Optional[List[str]] = None
396
+
397
+ @dataclass
398
+ class SpecRole:
399
+ name: str
400
+ shortHand: str
401
+
402
+ @dataclass
403
+ class CodingAgentSubTask:
404
+ id: Optional[str] = None
405
+ description: str = ""
406
+ complexity: str = ""
407
+
408
+ @dataclass
409
+ class CodingAgentStory:
410
+ id: Optional[str] = None
411
+ title: str = ""
412
+ description: Optional[str] = None
413
+ acceptanceCriteria: Optional[List[str]] = None
414
+ complexity: Optional[str] = None
415
+ subTasks: Optional[List[CodingAgentSubTask]] = None
416
+
417
+ @dataclass
418
+ class CodingAgentMilestone:
419
+ milestoneNumber: int = 0
420
+ description: str = ""
421
+ stories: Optional[List[CodingAgentStory]] = None
422
+
423
+ @dataclass
424
+ class CodingAgentSpecJson:
425
+ title: Optional[str] = None
426
+ executiveSummary: str = ""
427
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
428
+ techStack: Optional[List[SpecTechStackItem]] = None
429
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
430
+ milestones: Optional[List[CodingAgentMilestone]] = None
431
+
432
+ @dataclass
433
+ class HumanSpecSubTask:
434
+ id: Optional[str] = None
435
+ description: str = ""
436
+ hours: float = 0
437
+ complexity: str = ""
438
+ roles: Optional[List[SpecRole]] = None
439
+
440
+ @dataclass
441
+ class HumanSpecStory:
442
+ id: Optional[str] = None
443
+ title: str = ""
444
+ description: Optional[str] = None
445
+ acceptanceCriteria: Optional[List[str]] = None
446
+ hours: float = 0
447
+ complexity: Optional[str] = None
448
+ subTasks: Optional[List[HumanSpecSubTask]] = None
449
+
450
+ @dataclass
451
+ class HumanSpecMilestone:
452
+ milestoneNumber: int = 0
453
+ description: str = ""
454
+ hours: float = 0
455
+ stories: Optional[List[HumanSpecStory]] = None
456
+
457
+ @dataclass
458
+ class HumanSpecJson:
459
+ title: Optional[str] = None
460
+ executiveSummary: str = ""
461
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
462
+ personas: Optional[List[SpecPersona]] = None
463
+ techStack: Optional[List[SpecTechStackItem]] = None
464
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
465
+ milestones: Optional[List[HumanSpecMilestone]] = None
466
+ totalHours: Optional[float] = None
467
+ roles: Optional[List[SpecRole]] = None
468
+ ```
469
+
371
470
  ### `ListSpecsResponse`
372
471
  ```python
373
472
  @dataclass
@@ -308,6 +308,11 @@ class SpecResponse:
308
308
  codingAgentSpecUrl: Optional[str] = None # Spec optimized for AI/LLM systems
309
309
  humanSpecUrl: Optional[str] = None # Spec optimized for human readers
310
310
  totalHumanHours: Optional[int] = None # Estimated hours for human developers
311
+ # Direct returns (new)
312
+ codingAgentSpecJson: Optional[CodingAgentSpecJson] = None # Simplified JSON for coding tools
313
+ codingAgentSpecMarkdown: Optional[str] = None # Simplified markdown for coding tools
314
+ humanSpecJson: Optional[HumanSpecJson] = None # Full JSON with hours/personas/roles
315
+ humanSpecMarkdown: Optional[str] = None # Full markdown with all details
311
316
  executionTime: Optional[int] = None # Processing time in milliseconds
312
317
 
313
318
  # Integration URLs (when completed)
@@ -328,6 +333,100 @@ class SpecResponse:
328
333
  progress: Optional[str] = None # Progress information
329
334
  ```
330
335
 
336
+ ### Direct Spec JSON structures
337
+ ```python
338
+ @dataclass
339
+ class SpecCoreFunctionality:
340
+ name: str
341
+ description: str
342
+ priority: Optional[str] = None
343
+
344
+ @dataclass
345
+ class SpecTechStackItem:
346
+ name: str
347
+ category: str
348
+
349
+ @dataclass
350
+ class SpecPersona:
351
+ title: str
352
+ description: str
353
+ primaryGoals: Optional[List[str]] = None
354
+ painPoints: Optional[List[str]] = None
355
+ keyTasks: Optional[List[str]] = None
356
+
357
+ @dataclass
358
+ class SpecRole:
359
+ name: str
360
+ shortHand: str
361
+
362
+ @dataclass
363
+ class CodingAgentSubTask:
364
+ id: Optional[str] = None
365
+ description: str = ""
366
+ complexity: str = ""
367
+
368
+ @dataclass
369
+ class CodingAgentStory:
370
+ id: Optional[str] = None
371
+ title: str = ""
372
+ description: Optional[str] = None
373
+ acceptanceCriteria: Optional[List[str]] = None
374
+ complexity: Optional[str] = None
375
+ subTasks: Optional[List[CodingAgentSubTask]] = None
376
+
377
+ @dataclass
378
+ class CodingAgentMilestone:
379
+ milestoneNumber: int = 0
380
+ description: str = ""
381
+ stories: Optional[List[CodingAgentStory]] = None
382
+
383
+ @dataclass
384
+ class CodingAgentSpecJson:
385
+ title: Optional[str] = None
386
+ executiveSummary: str = ""
387
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
388
+ techStack: Optional[List[SpecTechStackItem]] = None
389
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
390
+ milestones: Optional[List[CodingAgentMilestone]] = None
391
+
392
+ @dataclass
393
+ class HumanSpecSubTask:
394
+ id: Optional[str] = None
395
+ description: str = ""
396
+ hours: float = 0
397
+ complexity: str = ""
398
+ roles: Optional[List[SpecRole]] = None
399
+
400
+ @dataclass
401
+ class HumanSpecStory:
402
+ id: Optional[str] = None
403
+ title: str = ""
404
+ description: Optional[str] = None
405
+ acceptanceCriteria: Optional[List[str]] = None
406
+ hours: float = 0
407
+ complexity: Optional[str] = None
408
+ subTasks: Optional[List[HumanSpecSubTask]] = None
409
+
410
+ @dataclass
411
+ class HumanSpecMilestone:
412
+ milestoneNumber: int = 0
413
+ description: str = ""
414
+ hours: float = 0
415
+ stories: Optional[List[HumanSpecStory]] = None
416
+
417
+ @dataclass
418
+ class HumanSpecJson:
419
+ title: Optional[str] = None
420
+ executiveSummary: str = ""
421
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
422
+ personas: Optional[List[SpecPersona]] = None
423
+ techStack: Optional[List[SpecTechStackItem]] = None
424
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
425
+ milestones: Optional[List[HumanSpecMilestone]] = None
426
+ totalHours: Optional[float] = None
427
+ roles: Optional[List[SpecRole]] = None
428
+ ```
429
+
331
430
  ### `ListSpecsResponse`
332
431
  ```python
333
432
  @dataclass
@@ -0,0 +1,46 @@
1
+ """
2
+ predev_api - Python client for the Pre.dev Architect API
3
+
4
+ Generate comprehensive software specifications using AI.
5
+ """
6
+
7
+ from .client import (
8
+ PredevAPI,
9
+ ZippedDocsUrl,
10
+ SpecCoreFunctionality,
11
+ SpecTechStackItem,
12
+ SpecPersona,
13
+ SpecRole,
14
+ CodingAgentSubTask,
15
+ CodingAgentStory,
16
+ CodingAgentMilestone,
17
+ CodingAgentSpecJson,
18
+ HumanSpecSubTask,
19
+ HumanSpecStory,
20
+ HumanSpecMilestone,
21
+ HumanSpecJson,
22
+ SpecResponse,
23
+ )
24
+ from .exceptions import PredevAPIError, AuthenticationError, RateLimitError
25
+
26
+ __version__ = "0.9.0"
27
+ __all__ = [
28
+ "PredevAPI",
29
+ "PredevAPIError",
30
+ "AuthenticationError",
31
+ "RateLimitError",
32
+ "ZippedDocsUrl",
33
+ "SpecCoreFunctionality",
34
+ "SpecTechStackItem",
35
+ "SpecPersona",
36
+ "SpecRole",
37
+ "CodingAgentSubTask",
38
+ "CodingAgentStory",
39
+ "CodingAgentMilestone",
40
+ "CodingAgentSpecJson",
41
+ "HumanSpecSubTask",
42
+ "HumanSpecStory",
43
+ "HumanSpecMilestone",
44
+ "HumanSpecJson",
45
+ "SpecResponse",
46
+ ]
@@ -22,6 +22,109 @@ class ZippedDocsUrl:
22
22
  masterZipShortUrl: str
23
23
 
24
24
 
25
+ @dataclass
26
+ class SpecCoreFunctionality:
27
+ name: str
28
+ description: str
29
+ priority: Optional[str] = None
30
+
31
+
32
+ @dataclass
33
+ class SpecTechStackItem:
34
+ name: str
35
+ category: str
36
+
37
+
38
+ @dataclass
39
+ class SpecPersona:
40
+ title: str
41
+ description: str
42
+ primaryGoals: Optional[List[str]] = None
43
+ painPoints: Optional[List[str]] = None
44
+ keyTasks: Optional[List[str]] = None
45
+
46
+
47
+ @dataclass
48
+ class SpecRole:
49
+ name: str
50
+ shortHand: str
51
+
52
+
53
+ @dataclass
54
+ class CodingAgentSubTask:
55
+ id: Optional[str] = None
56
+ description: str = ""
57
+ complexity: str = ""
58
+
59
+
60
+ @dataclass
61
+ class CodingAgentStory:
62
+ id: Optional[str] = None
63
+ title: str = ""
64
+ description: Optional[str] = None
65
+ acceptanceCriteria: Optional[List[str]] = None
66
+ complexity: Optional[str] = None
67
+ subTasks: Optional[List[CodingAgentSubTask]] = None
68
+
69
+
70
+ @dataclass
71
+ class CodingAgentMilestone:
72
+ milestoneNumber: int = 0
73
+ description: str = ""
74
+ stories: Optional[List[CodingAgentStory]] = None
75
+
76
+
77
+ @dataclass
78
+ class CodingAgentSpecJson:
79
+ title: Optional[str] = None
80
+ executiveSummary: str = ""
81
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
82
+ techStack: Optional[List[SpecTechStackItem]] = None
83
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
84
+ milestones: Optional[List[CodingAgentMilestone]] = None
85
+
86
+
87
+ @dataclass
88
+ class HumanSpecSubTask:
89
+ id: Optional[str] = None
90
+ description: str = ""
91
+ hours: float = 0
92
+ complexity: str = ""
93
+ roles: Optional[List[SpecRole]] = None
94
+
95
+
96
+ @dataclass
97
+ class HumanSpecStory:
98
+ id: Optional[str] = None
99
+ title: str = ""
100
+ description: Optional[str] = None
101
+ acceptanceCriteria: Optional[List[str]] = None
102
+ hours: float = 0
103
+ complexity: Optional[str] = None
104
+ subTasks: Optional[List[HumanSpecSubTask]] = None
105
+
106
+
107
+ @dataclass
108
+ class HumanSpecMilestone:
109
+ milestoneNumber: int = 0
110
+ description: str = ""
111
+ hours: float = 0
112
+ stories: Optional[List[HumanSpecStory]] = None
113
+
114
+
115
+ @dataclass
116
+ class HumanSpecJson:
117
+ title: Optional[str] = None
118
+ executiveSummary: str = ""
119
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
120
+ personas: Optional[List[SpecPersona]] = None
121
+ techStack: Optional[List[SpecTechStackItem]] = None
122
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
123
+ milestones: Optional[List[HumanSpecMilestone]] = None
124
+ totalHours: Optional[float] = None
125
+ roles: Optional[List[SpecRole]] = None
126
+
127
+
25
128
  @dataclass
26
129
  class SpecResponse:
27
130
  """Status check response class"""
@@ -39,6 +142,10 @@ class SpecResponse:
39
142
  codingAgentSpecUrl: Optional[str] = None
40
143
  humanSpecUrl: Optional[str] = None
41
144
  totalHumanHours: Optional[int] = None
145
+ codingAgentSpecJson: Optional['CodingAgentSpecJson'] = None
146
+ codingAgentSpecMarkdown: Optional[str] = None
147
+ humanSpecJson: Optional['HumanSpecJson'] = None
148
+ humanSpecMarkdown: Optional[str] = None
42
149
  executionTime: Optional[int] = None
43
150
 
44
151
  predevUrl: Optional[str] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: predev-api
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Summary: Python client for the Pre.dev Architect API - Generate comprehensive software specifications
5
5
  Home-page: https://github.com/predotdev/predev-api
6
6
  Author: Pre.dev
@@ -348,6 +348,11 @@ class SpecResponse:
348
348
  codingAgentSpecUrl: Optional[str] = None # Spec optimized for AI/LLM systems
349
349
  humanSpecUrl: Optional[str] = None # Spec optimized for human readers
350
350
  totalHumanHours: Optional[int] = None # Estimated hours for human developers
351
+ # Direct returns (new)
352
+ codingAgentSpecJson: Optional[CodingAgentSpecJson] = None # Simplified JSON for coding tools
353
+ codingAgentSpecMarkdown: Optional[str] = None # Simplified markdown for coding tools
354
+ humanSpecJson: Optional[HumanSpecJson] = None # Full JSON with hours/personas/roles
355
+ humanSpecMarkdown: Optional[str] = None # Full markdown with all details
351
356
  executionTime: Optional[int] = None # Processing time in milliseconds
352
357
 
353
358
  # Integration URLs (when completed)
@@ -368,6 +373,100 @@ class SpecResponse:
368
373
  progress: Optional[str] = None # Progress information
369
374
  ```
370
375
 
376
+ ### Direct Spec JSON structures
377
+ ```python
378
+ @dataclass
379
+ class SpecCoreFunctionality:
380
+ name: str
381
+ description: str
382
+ priority: Optional[str] = None
383
+
384
+ @dataclass
385
+ class SpecTechStackItem:
386
+ name: str
387
+ category: str
388
+
389
+ @dataclass
390
+ class SpecPersona:
391
+ title: str
392
+ description: str
393
+ primaryGoals: Optional[List[str]] = None
394
+ painPoints: Optional[List[str]] = None
395
+ keyTasks: Optional[List[str]] = None
396
+
397
+ @dataclass
398
+ class SpecRole:
399
+ name: str
400
+ shortHand: str
401
+
402
+ @dataclass
403
+ class CodingAgentSubTask:
404
+ id: Optional[str] = None
405
+ description: str = ""
406
+ complexity: str = ""
407
+
408
+ @dataclass
409
+ class CodingAgentStory:
410
+ id: Optional[str] = None
411
+ title: str = ""
412
+ description: Optional[str] = None
413
+ acceptanceCriteria: Optional[List[str]] = None
414
+ complexity: Optional[str] = None
415
+ subTasks: Optional[List[CodingAgentSubTask]] = None
416
+
417
+ @dataclass
418
+ class CodingAgentMilestone:
419
+ milestoneNumber: int = 0
420
+ description: str = ""
421
+ stories: Optional[List[CodingAgentStory]] = None
422
+
423
+ @dataclass
424
+ class CodingAgentSpecJson:
425
+ title: Optional[str] = None
426
+ executiveSummary: str = ""
427
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
428
+ techStack: Optional[List[SpecTechStackItem]] = None
429
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
430
+ milestones: Optional[List[CodingAgentMilestone]] = None
431
+
432
+ @dataclass
433
+ class HumanSpecSubTask:
434
+ id: Optional[str] = None
435
+ description: str = ""
436
+ hours: float = 0
437
+ complexity: str = ""
438
+ roles: Optional[List[SpecRole]] = None
439
+
440
+ @dataclass
441
+ class HumanSpecStory:
442
+ id: Optional[str] = None
443
+ title: str = ""
444
+ description: Optional[str] = None
445
+ acceptanceCriteria: Optional[List[str]] = None
446
+ hours: float = 0
447
+ complexity: Optional[str] = None
448
+ subTasks: Optional[List[HumanSpecSubTask]] = None
449
+
450
+ @dataclass
451
+ class HumanSpecMilestone:
452
+ milestoneNumber: int = 0
453
+ description: str = ""
454
+ hours: float = 0
455
+ stories: Optional[List[HumanSpecStory]] = None
456
+
457
+ @dataclass
458
+ class HumanSpecJson:
459
+ title: Optional[str] = None
460
+ executiveSummary: str = ""
461
+ coreFunctionalities: Optional[List[SpecCoreFunctionality]] = None
462
+ personas: Optional[List[SpecPersona]] = None
463
+ techStack: Optional[List[SpecTechStackItem]] = None
464
+ techStackGrouped: Optional[Dict[str, List[str]]] = None
465
+ milestones: Optional[List[HumanSpecMilestone]] = None
466
+ totalHours: Optional[float] = None
467
+ roles: Optional[List[SpecRole]] = None
468
+ ```
469
+
371
470
  ### `ListSpecsResponse`
372
471
  ```python
373
472
  @dataclass
@@ -9,7 +9,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
9
9
 
10
10
  setup(
11
11
  name="predev-api",
12
- version="0.8.0",
12
+ version="0.9.0",
13
13
  author="Pre.dev",
14
14
  author_email="support@pre.dev",
15
15
  description="Python client for the Pre.dev Architect API - Generate comprehensive software specifications",
@@ -1,12 +0,0 @@
1
- """
2
- predev_api - Python client for the Pre.dev Architect API
3
-
4
- Generate comprehensive software specifications using AI.
5
- """
6
-
7
- from .client import PredevAPI, ZippedDocsUrl
8
- from .exceptions import PredevAPIError, AuthenticationError, RateLimitError
9
-
10
- __version__ = "0.8.0"
11
- __all__ = ["PredevAPI", "PredevAPIError",
12
- "AuthenticationError", "RateLimitError", "ZippedDocsUrl"]
File without changes
File without changes
File without changes