devflow-toolkit 0.3.0__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.
- devflow/__init__.py +0 -0
- devflow/adapters/__init__.py +47 -0
- devflow/adapters/agents.py +49 -0
- devflow/adapters/base.py +81 -0
- devflow/adapters/claude_code.py +120 -0
- devflow/adapters/codex.py +111 -0
- devflow/adapters/detector.py +118 -0
- devflow/adapters/instructions.py +263 -0
- devflow/adapters/kiro.py +211 -0
- devflow/adapters/opencode.py +237 -0
- devflow/adapters/registry.py +41 -0
- devflow/cli.py +39 -0
- devflow/commands/__init__.py +6 -0
- devflow/commands/approve.py +98 -0
- devflow/commands/harness.py +98 -0
- devflow/commands/init.py +544 -0
- devflow/commands/spec.py +514 -0
- devflow/commands/status.py +156 -0
- devflow/core/__init__.py +15 -0
- devflow/core/architecture.py +469 -0
- devflow/core/artifacts/__init__.py +29 -0
- devflow/core/artifacts/errors.py +19 -0
- devflow/core/artifacts/models.py +82 -0
- devflow/core/artifacts/store.py +130 -0
- devflow/core/clock.py +67 -0
- devflow/core/config.py +706 -0
- devflow/core/constitution.py +166 -0
- devflow/core/discovery.py +1304 -0
- devflow/core/ports.py +159 -0
- devflow/core/profile_manager.py +311 -0
- devflow/core/project.py +533 -0
- devflow/core/spec_workflow.py +932 -0
- devflow/core/specification.py +2443 -0
- devflow/core/state/__init__.py +75 -0
- devflow/core/state/errors.py +39 -0
- devflow/core/state/events.py +725 -0
- devflow/core/state/locator.py +116 -0
- devflow/core/state/lock.py +69 -0
- devflow/core/state/manager.py +960 -0
- devflow/core/state/models.py +164 -0
- devflow/core/state/transitions.py +114 -0
- devflow/models/__init__.py +6 -0
- devflow/models/profile.py +63 -0
- devflow/models/project.py +47 -0
- devflow/profiles/ai-rag/constitution/ai-rag-standards.md +49 -0
- devflow/profiles/ai-rag/profile.yaml +28 -0
- devflow/profiles/base/constitution/architecture.md +58 -0
- devflow/profiles/base/constitution/code-standards.md +85 -0
- devflow/profiles/base/constitution/constitution.md +85 -0
- devflow/profiles/base/profile.yaml +15 -0
- devflow/profiles/django-backend/constitution/django-standards.md +64 -0
- devflow/profiles/django-backend/profile.yaml +24 -0
- devflow/profiles/fastapi-backend/constitution/fastapi-standards.md +59 -0
- devflow/profiles/fastapi-backend/profile.yaml +23 -0
- devflow/prompts/__init__.py +200 -0
- devflow/prompts/discovery.md +119 -0
- devflow/prompts/spec.greenfield.md +149 -0
- devflow/prompts/spec.md +116 -0
- devflow_toolkit-0.3.0.dist-info/METADATA +628 -0
- devflow_toolkit-0.3.0.dist-info/RECORD +63 -0
- devflow_toolkit-0.3.0.dist-info/WHEEL +4 -0
- devflow_toolkit-0.3.0.dist-info/entry_points.txt +2 -0
- devflow_toolkit-0.3.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"""Workflow state, approvals and event replay."""
|
|
2
|
+
|
|
3
|
+
from devflow.core.state.errors import (
|
|
4
|
+
ArtifactNotValidatedError,
|
|
5
|
+
ChangeLockedError,
|
|
6
|
+
ChangeNotFoundError,
|
|
7
|
+
InvalidEventLogError,
|
|
8
|
+
InvalidStateError,
|
|
9
|
+
InvalidTransitionError,
|
|
10
|
+
StaleArtifactError,
|
|
11
|
+
StateError,
|
|
12
|
+
UnsupportedStageError,
|
|
13
|
+
)
|
|
14
|
+
from devflow.core.state.events import (
|
|
15
|
+
WorkflowEvent,
|
|
16
|
+
append_event,
|
|
17
|
+
apply_event,
|
|
18
|
+
read_events,
|
|
19
|
+
)
|
|
20
|
+
from devflow.core.state.locator import (
|
|
21
|
+
ChangeLocation,
|
|
22
|
+
WorkflowLocator,
|
|
23
|
+
)
|
|
24
|
+
from devflow.core.state.manager import (
|
|
25
|
+
ApprovalResult,
|
|
26
|
+
ChangeStatus,
|
|
27
|
+
WorkflowStateManager,
|
|
28
|
+
)
|
|
29
|
+
from devflow.core.state.models import (
|
|
30
|
+
STAGE_ARTIFACTS,
|
|
31
|
+
STAGE_TARGETS,
|
|
32
|
+
WORKFLOW_STATUSES,
|
|
33
|
+
ApprovalRecord,
|
|
34
|
+
WorkflowState,
|
|
35
|
+
WorkflowStatus,
|
|
36
|
+
)
|
|
37
|
+
from devflow.core.state.transitions import (
|
|
38
|
+
artifact_blockers,
|
|
39
|
+
can_transition,
|
|
40
|
+
ensure_artifacts_ready,
|
|
41
|
+
ensure_transition,
|
|
42
|
+
required_artifacts,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
__all__ = [
|
|
46
|
+
"STAGE_ARTIFACTS",
|
|
47
|
+
"STAGE_TARGETS",
|
|
48
|
+
"WORKFLOW_STATUSES",
|
|
49
|
+
"ApprovalRecord",
|
|
50
|
+
"ApprovalResult",
|
|
51
|
+
"ArtifactNotValidatedError",
|
|
52
|
+
"ChangeLockedError",
|
|
53
|
+
"ChangeLocation",
|
|
54
|
+
"ChangeNotFoundError",
|
|
55
|
+
"ChangeStatus",
|
|
56
|
+
"InvalidEventLogError",
|
|
57
|
+
"InvalidStateError",
|
|
58
|
+
"InvalidTransitionError",
|
|
59
|
+
"StaleArtifactError",
|
|
60
|
+
"StateError",
|
|
61
|
+
"UnsupportedStageError",
|
|
62
|
+
"WorkflowEvent",
|
|
63
|
+
"WorkflowLocator",
|
|
64
|
+
"WorkflowState",
|
|
65
|
+
"WorkflowStateManager",
|
|
66
|
+
"WorkflowStatus",
|
|
67
|
+
"append_event",
|
|
68
|
+
"apply_event",
|
|
69
|
+
"artifact_blockers",
|
|
70
|
+
"can_transition",
|
|
71
|
+
"ensure_artifacts_ready",
|
|
72
|
+
"ensure_transition",
|
|
73
|
+
"read_events",
|
|
74
|
+
"required_artifacts",
|
|
75
|
+
]
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Workflow state errors."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class StateError(Exception):
|
|
7
|
+
"""Raised when workflow state cannot be read or advanced."""
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ChangeNotFoundError(StateError):
|
|
11
|
+
"""Raised when a change directory or selector does not exist."""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class InvalidStateError(StateError):
|
|
15
|
+
"""Raised when workflow.yaml has an invalid structure."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class InvalidEventLogError(StateError):
|
|
19
|
+
"""Raised when events.jsonl is malformed or out of sequence."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class InvalidTransitionError(StateError):
|
|
23
|
+
"""Raised when a workflow transition is not allowed."""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ArtifactNotValidatedError(StateError):
|
|
27
|
+
"""Raised when an artifact must be validated before approval."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class StaleArtifactError(StateError):
|
|
31
|
+
"""Raised when an artifact changed after validation or approval."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class ChangeLockedError(StateError):
|
|
35
|
+
"""Raised when another DevFlow operation holds the change lock."""
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class UnsupportedStageError(StateError):
|
|
39
|
+
"""Raised when a stage is not part of the DevFlow lifecycle."""
|