edda-framework 0.5.0__py3-none-any.whl → 0.7.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: edda-framework
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: Lightweight Durable Execution Framework
5
5
  Project-URL: Homepage, https://github.com/i2y/edda
6
6
  Project-URL: Documentation, https://github.com/i2y/edda#readme
@@ -30,11 +30,13 @@ Requires-Dist: sqlalchemy[asyncio]>=2.0.0
30
30
  Requires-Dist: uvloop>=0.22.1
31
31
  Provides-Extra: dev
32
32
  Requires-Dist: black>=25.9.0; extra == 'dev'
33
+ Requires-Dist: mcp>=1.22.0; extra == 'dev'
33
34
  Requires-Dist: mypy>=1.18.2; extra == 'dev'
34
35
  Requires-Dist: pytest-asyncio>=1.2.0; extra == 'dev'
35
36
  Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
36
37
  Requires-Dist: pytest>=8.4.2; extra == 'dev'
37
38
  Requires-Dist: ruff>=0.14.2; extra == 'dev'
39
+ Requires-Dist: starlette>=0.40.0; extra == 'dev'
38
40
  Requires-Dist: testcontainers[mysql]>=4.0.0; extra == 'dev'
39
41
  Requires-Dist: testcontainers[postgres]>=4.0.0; extra == 'dev'
40
42
  Requires-Dist: tsuno>=0.1.3; extra == 'dev'
@@ -709,7 +711,7 @@ def process_payment(ctx: WorkflowContext, amount: float) -> dict:
709
711
  @workflow
710
712
  async def payment_workflow(ctx: WorkflowContext, order_id: str) -> dict:
711
713
  # Workflows still use async (for deterministic replay)
712
- result = await process_payment(ctx, 99.99, activity_id="pay:1")
714
+ result = await process_payment(ctx, 99.99)
713
715
  return result
714
716
  ```
715
717
 
@@ -748,13 +750,14 @@ if __name__ == "__main__":
748
750
 
749
751
  ### Auto-Generated Tools
750
752
 
751
- Each `@durable_tool` automatically generates **three MCP tools**:
753
+ Each `@durable_tool` automatically generates **four MCP tools**:
752
754
 
753
755
  1. **Main tool** (`process_order`): Starts the workflow, returns instance ID
754
- 2. **Status tool** (`process_order_status`): Checks workflow progress
756
+ 2. **Status tool** (`process_order_status`): Checks workflow progress with completed activity count and suggested poll interval
755
757
  3. **Result tool** (`process_order_result`): Gets final result when completed
758
+ 4. **Cancel tool** (`process_order_cancel`): Cancels workflow if running or waiting, executes compensation handlers
756
759
 
757
- This enables AI assistants to work with workflows that take minutes, hours, or even days to complete.
760
+ This enables AI assistants to work with workflows that take minutes, hours, or even days to complete, with full control over the workflow lifecycle.
758
761
 
759
762
  ### MCP Prompts
760
763
 
@@ -14,8 +14,8 @@ edda/workflow.py,sha256=daSppYAzgXkjY_9-HS93Zi7_tPR6srmchxY5YfwgU-4,7239
14
14
  edda/wsgi.py,sha256=1pGE5fhHpcsYnDR8S3NEFKWUs5P0JK4roTAzX9BsIj0,2391
15
15
  edda/integrations/__init__.py,sha256=F_CaTvlDEbldfOpPKq_U9ve1E573tS6XzqXnOtyHcXI,33
16
16
  edda/integrations/mcp/__init__.py,sha256=YK-8m0DIdP-RSqewlIX7xnWU7TD3NioCiW2_aZSgnn8,1232
17
- edda/integrations/mcp/decorators.py,sha256=UTBb-Un2JK938pDZmANOvfsdKOMI2AF9yGtfSuy8VrE,6284
18
- edda/integrations/mcp/server.py,sha256=pzCG46Zko9hHmQ3REbo1w3A23SjrGFLiZupwSkIPhOA,13942
17
+ edda/integrations/mcp/decorators.py,sha256=31SmbDwmHEGvUNa3aaatW91hBkpnS5iN9uy47dID3J4,10037
18
+ edda/integrations/mcp/server.py,sha256=Q5r4AbMn-9gBcy2CZocbgW7O0fn7Qb4e9CBJa1FEmzU,14507
19
19
  edda/integrations/opentelemetry/__init__.py,sha256=x1_PyyygGDW-rxQTwoIrGzyjKErXHOOKdquFAMlCOAo,906
20
20
  edda/integrations/opentelemetry/hooks.py,sha256=FBYnSZBh8_0vw9M1E2AbJrx1cTTsKeiHf5wspr0UnzU,21288
21
21
  edda/outbox/__init__.py,sha256=azXG1rtheJEjOyoWmMsBeR2jp8Bz02R3wDEd5tQnaWA,424
@@ -26,17 +26,18 @@ edda/serialization/base.py,sha256=xJy2CY9gdJDCF0tmCor8NomL2Lr_w7cveVvxccuc-tA,19
26
26
  edda/serialization/json.py,sha256=Dq96V4n1yozexjCPd_CL6Iuvh1u3jJhef6sTcNxXZeA,2842
27
27
  edda/storage/__init__.py,sha256=Q-kNJsjF8hMc2Q5MYFlLBENKExlNlKkbmUkwBOosj9I,216
28
28
  edda/storage/models.py,sha256=usVPKLV4H1-LA6QC72_gkfYrG9T8AwkcmCXppBo-2gQ,7338
29
- edda/storage/protocol.py,sha256=ws9gDhiHpL1XglkdbN_-ayP_2GiIc-B9qt8bcrO2TG0,24957
30
- edda/storage/sqlalchemy_storage.py,sha256=z3OepqxVUHnknnPJj19Vii3SB4n_RI_Zu7Tz70gtwOI,71144
29
+ edda/storage/protocol.py,sha256=j1YNW1TepuLvPvn7wCcPVIehs0obD30cGOMcyqMwtlA,25852
30
+ edda/storage/sqlalchemy_storage.py,sha256=dZ0ulDp6CuZEtDzkD0g76x4ew-dseLWRXrULVsW_isk,76258
31
31
  edda/viewer_ui/__init__.py,sha256=N1-T33SXadOXcBsDSgJJ9Iqz4y4verJngWryQu70c5c,517
32
- edda/viewer_ui/app.py,sha256=VXVEiS07w76GGpTybWcgUeygfCUFpmAbGK_CxMk6EFs,75455
33
- edda/viewer_ui/components.py,sha256=Fx78Im3-TvAfwIckGKmvdT_qMKw5m_qrwNcQEI7ci6M,44664
34
- edda/viewer_ui/data_service.py,sha256=mXV6bL6REa_UKsk8xMGBIFbsbLpIxe91lX3wgn-FOjw,34843
32
+ edda/viewer_ui/app.py,sha256=Zf-ZMDWhmaTuKGJbb27NTQoLhOXMlF-aqRJ7VsC9BwA,95502
33
+ edda/viewer_ui/components.py,sha256=A0IxLwgj_Lu51O57OfzOwME8jzoJtKegEVvSnWc7uPo,45174
34
+ edda/viewer_ui/data_service.py,sha256=IK5I9Y2eho5VJz63DhBKuTEsS3LqkeV24Ctc75OGxDM,36478
35
+ edda/viewer_ui/theme.py,sha256=mrXoXLRzgSnvE2a58LuMcPJkhlvHEDMWVa8Smqtk4l0,8118
35
36
  edda/visualizer/__init__.py,sha256=DOpDstNhR0VcXAs_eMKxaL30p_0u4PKZ4o2ndnYhiRo,343
36
37
  edda/visualizer/ast_analyzer.py,sha256=plmx7C9X_X35xLY80jxOL3ljg3afXxBePRZubqUIkxY,13663
37
38
  edda/visualizer/mermaid_generator.py,sha256=XWa2egoOTNDfJEjPcwoxwQmblUqXf7YInWFjFRI1QGo,12457
38
- edda_framework-0.5.0.dist-info/METADATA,sha256=GfZ0zYUy_g4zjV_OkYPPmNRTwIxZb77nh-aaS6Z_OYE,31503
39
- edda_framework-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
40
- edda_framework-0.5.0.dist-info/entry_points.txt,sha256=dPH47s6UoJgUZxHoeSMqZsQkLaSE-SGLi-gh88k2WrU,48
41
- edda_framework-0.5.0.dist-info/licenses/LICENSE,sha256=udxb-V7_cYKTHqW7lNm48rxJ-Zpf0WAY_PyGDK9BPCo,1069
42
- edda_framework-0.5.0.dist-info/RECORD,,
39
+ edda_framework-0.7.0.dist-info/METADATA,sha256=d2PVbDx-LymunfaAs13Hvxb1U8dOf-NR4VmX6whrrP0,31794
40
+ edda_framework-0.7.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
41
+ edda_framework-0.7.0.dist-info/entry_points.txt,sha256=dPH47s6UoJgUZxHoeSMqZsQkLaSE-SGLi-gh88k2WrU,48
42
+ edda_framework-0.7.0.dist-info/licenses/LICENSE,sha256=udxb-V7_cYKTHqW7lNm48rxJ-Zpf0WAY_PyGDK9BPCo,1069
43
+ edda_framework-0.7.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any