smith-agents 0.4.5 → 0.5.0

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.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +201 -0
  3. data/README.md +108 -4
  4. data/docs/CONFIGURATION.md +4 -1
  5. data/docs/PATTERNS.md +7 -0
  6. data/docs/PERSISTENCE.md +347 -25
  7. data/lib/smith/agent/lifecycle.rb +19 -10
  8. data/lib/smith/agent/registry/execution_binding_capture.rb +26 -0
  9. data/lib/smith/agent/registry/mutation_boundary.rb +29 -0
  10. data/lib/smith/agent/registry.rb +8 -0
  11. data/lib/smith/agent.rb +24 -2
  12. data/lib/smith/budget/amount_contract.rb +67 -0
  13. data/lib/smith/budget/amount_representation.rb +43 -0
  14. data/lib/smith/budget/decimal_context.rb +18 -0
  15. data/lib/smith/budget/ledger.rb +110 -18
  16. data/lib/smith/budget/ledger_publication.rb +60 -0
  17. data/lib/smith/budget/ledger_state.rb +21 -0
  18. data/lib/smith/budget/ledger_state_transition.rb +72 -0
  19. data/lib/smith/budget/public_state_validator.rb +25 -0
  20. data/lib/smith/budget/reservation.rb +20 -0
  21. data/lib/smith/budget/reservation_contract.rb +34 -0
  22. data/lib/smith/context/observation_masking.rb +3 -1
  23. data/lib/smith/context/state_injection.rb +1 -1
  24. data/lib/smith/doctor/checks/persistence_capabilities.rb +18 -4
  25. data/lib/smith/error.rb +5 -0
  26. data/lib/smith/errors.rb +6 -0
  27. data/lib/smith/exponential_backoff.rb +128 -0
  28. data/lib/smith/persistence_adapters/active_record_exact_predicate.rb +43 -0
  29. data/lib/smith/persistence_adapters/active_record_exact_store.rb +62 -0
  30. data/lib/smith/persistence_adapters/active_record_exact_write.rb +40 -0
  31. data/lib/smith/persistence_adapters/active_record_store.rb +7 -4
  32. data/lib/smith/persistence_adapters/cache_store.rb +1 -0
  33. data/lib/smith/persistence_adapters/memory.rb +16 -1
  34. data/lib/smith/persistence_adapters/redis_client_access.rb +38 -0
  35. data/lib/smith/persistence_adapters/redis_exact_write.rb +44 -0
  36. data/lib/smith/persistence_adapters/redis_store.rb +28 -11
  37. data/lib/smith/persistence_adapters/retry.rb +22 -10
  38. data/lib/smith/persistence_adapters.rb +21 -18
  39. data/lib/smith/persistence_payload_conflict.rb +12 -0
  40. data/lib/smith/tool/budget_enforcement.rb +2 -2
  41. data/lib/smith/types.rb +1 -0
  42. data/lib/smith/version.rb +2 -1
  43. data/lib/smith/workflow/branch_env.rb +1 -1
  44. data/lib/smith/workflow/budget_integration.rb +21 -11
  45. data/lib/smith/workflow/definition_identity/class_methods.rb +48 -0
  46. data/lib/smith/workflow/definition_identity.rb +25 -0
  47. data/lib/smith/workflow/deterministic_step.rb +2 -2
  48. data/lib/smith/workflow/dsl.rb +73 -5
  49. data/lib/smith/workflow/durability.rb +1 -1
  50. data/lib/smith/workflow/evaluator_optimizer.rb +7 -11
  51. data/lib/smith/workflow/execution.rb +16 -18
  52. data/lib/smith/workflow/execution_binding_resolution.rb +16 -0
  53. data/lib/smith/workflow/execution_result_snapshot.rb +118 -0
  54. data/lib/smith/workflow/fanout_execution.rb +1 -1
  55. data/lib/smith/workflow/graph/diagnostic.rb +27 -1
  56. data/lib/smith/workflow/graph/diagnostic_path.rb +24 -0
  57. data/lib/smith/workflow/graph/execution_successors.rb +65 -0
  58. data/lib/smith/workflow/graph/identifier_projection.rb +13 -0
  59. data/lib/smith/workflow/graph/metrics.rb +1 -3
  60. data/lib/smith/workflow/graph/nested_readiness_diagnostics.rb +15 -16
  61. data/lib/smith/workflow/graph/optimization_contract.rb +2 -2
  62. data/lib/smith/workflow/graph/orchestration_contract.rb +3 -3
  63. data/lib/smith/workflow/graph/reachability.rb +19 -31
  64. data/lib/smith/workflow/graph/reachability_diagnostics.rb +17 -1
  65. data/lib/smith/workflow/graph/retry_policy_diagnostic.rb +36 -0
  66. data/lib/smith/workflow/graph/runtime_binding_diagnostics.rb +2 -2
  67. data/lib/smith/workflow/graph/runtime_readiness.rb +3 -44
  68. data/lib/smith/workflow/graph/runtime_readiness_metrics.rb +2 -2
  69. data/lib/smith/workflow/graph/runtime_readiness_report_builder.rb +47 -0
  70. data/lib/smith/workflow/graph/runtime_readiness_traversal.rb +108 -0
  71. data/lib/smith/workflow/graph/state_diagnostics.rb +2 -2
  72. data/lib/smith/workflow/graph/transition_contract.rb +47 -0
  73. data/lib/smith/workflow/graph/transition_contract_attributes.rb +73 -0
  74. data/lib/smith/workflow/graph/transition_contract_configurations.rb +100 -0
  75. data/lib/smith/workflow/graph/transition_diagnostics.rb +54 -12
  76. data/lib/smith/workflow/graph/transition_optimization_configuration.rb +62 -0
  77. data/lib/smith/workflow/graph/transition_snapshot.rb +4 -1
  78. data/lib/smith/workflow/graph/validator.rb +1 -1
  79. data/lib/smith/workflow/graph.rb +62 -4
  80. data/lib/smith/workflow/guardrail_integration.rb +23 -9
  81. data/lib/smith/workflow/identifier.rb +24 -0
  82. data/lib/smith/workflow/message_admission.rb +40 -0
  83. data/lib/smith/workflow/message_admission_boundary.rb +22 -0
  84. data/lib/smith/workflow/message_batch.rb +60 -0
  85. data/lib/smith/workflow/message_value_normalizer.rb +133 -0
  86. data/lib/smith/workflow/nested_execution.rb +10 -0
  87. data/lib/smith/workflow/orchestrator_worker.rb +3 -7
  88. data/lib/smith/workflow/parallel/cancellation_signal.rb +14 -5
  89. data/lib/smith/workflow/parallel/execution_context.rb +113 -0
  90. data/lib/smith/workflow/parallel/nested_execution.rb +124 -0
  91. data/lib/smith/workflow/parallel/root_execution.rb +91 -0
  92. data/lib/smith/workflow/parallel.rb +19 -22
  93. data/lib/smith/workflow/parallel_agent_binding.rb +24 -0
  94. data/lib/smith/workflow/parallel_execution.rb +7 -3
  95. data/lib/smith/workflow/persistence.rb +37 -8
  96. data/lib/smith/workflow/prepared_step.rb +122 -0
  97. data/lib/smith/workflow/prepared_step_dispatch.rb +88 -0
  98. data/lib/smith/workflow/prepared_step_execution_authorization.rb +116 -0
  99. data/lib/smith/workflow/prepared_step_execution_result.rb +49 -0
  100. data/lib/smith/workflow/prepared_step_execution_scope.rb +45 -0
  101. data/lib/smith/workflow/prepared_step_recovery.rb +38 -0
  102. data/lib/smith/workflow/retry_execution.rb +20 -11
  103. data/lib/smith/workflow/split_step_persistence/boundary.rb +35 -22
  104. data/lib/smith/workflow/split_step_persistence/boundary_reset.rb +50 -0
  105. data/lib/smith/workflow/split_step_persistence/canonical_payload_digest.rb +55 -0
  106. data/lib/smith/workflow/split_step_persistence/checkpoint.rb +3 -5
  107. data/lib/smith/workflow/split_step_persistence/definition_boundary.rb +19 -0
  108. data/lib/smith/workflow/split_step_persistence/dispatch_boundary.rb +16 -0
  109. data/lib/smith/workflow/split_step_persistence/dispatch_claim.rb +118 -0
  110. data/lib/smith/workflow/split_step_persistence/dispatch_confirmation.rb +70 -0
  111. data/lib/smith/workflow/split_step_persistence/dispatch_verification.rb +35 -0
  112. data/lib/smith/workflow/split_step_persistence/execution.rb +49 -47
  113. data/lib/smith/workflow/split_step_persistence/execution_authorization.rb +89 -0
  114. data/lib/smith/workflow/split_step_persistence/execution_binding_collector.rb +90 -0
  115. data/lib/smith/workflow/split_step_persistence/execution_binding_snapshot.rb +95 -0
  116. data/lib/smith/workflow/split_step_persistence/execution_result_capture.rb +48 -0
  117. data/lib/smith/workflow/split_step_persistence/execution_verification.rb +65 -0
  118. data/lib/smith/workflow/split_step_persistence/execution_workflow_snapshot.rb +77 -0
  119. data/lib/smith/workflow/split_step_persistence/inheritance.rb +3 -1
  120. data/lib/smith/workflow/split_step_persistence/payloads.rb +7 -3
  121. data/lib/smith/workflow/split_step_persistence/preparation.rb +30 -2
  122. data/lib/smith/workflow/split_step_persistence/preparation_claim.rb +38 -12
  123. data/lib/smith/workflow/split_step_persistence/preparation_payload.rb +25 -0
  124. data/lib/smith/workflow/split_step_persistence/preparation_recovery.rb +10 -2
  125. data/lib/smith/workflow/split_step_persistence/recovery.rb +125 -0
  126. data/lib/smith/workflow/split_step_persistence/recovery_boundary.rb +56 -0
  127. data/lib/smith/workflow/split_step_persistence/recovery_class_methods.rb +14 -0
  128. data/lib/smith/workflow/split_step_persistence/replace_exact_signature.rb +46 -0
  129. data/lib/smith/workflow/split_step_persistence/restart_safe_adapter.rb +42 -0
  130. data/lib/smith/workflow/split_step_persistence/subclass_boundary.rb +50 -0
  131. data/lib/smith/workflow/split_step_persistence/transaction_identity.rb +45 -0
  132. data/lib/smith/workflow/split_step_persistence.rb +36 -0
  133. data/lib/smith/workflow/step_completion.rb +31 -0
  134. data/lib/smith/workflow/string_snapshot.rb +25 -0
  135. data/lib/smith/workflow/transition.rb +122 -133
  136. data/lib/smith/workflow/transition_actionability.rb +22 -0
  137. data/lib/smith/workflow.rb +44 -18
  138. data/lib/smith.rb +41 -2
  139. data/sig/smith.rbs +1 -0
  140. metadata +110 -19
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smith-agents
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Ralak
@@ -10,47 +10,67 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: ruby_llm
13
+ name: bigdecimal
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '3.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '5'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '3.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '5'
32
+ - !ruby/object:Gem::Dependency
33
+ name: concurrent-ruby
14
34
  requirement: !ruby/object:Gem::Requirement
15
35
  requirements:
16
36
  - - "~>"
17
37
  - !ruby/object:Gem::Version
18
- version: '1.15'
38
+ version: '1.2'
19
39
  type: :runtime
20
40
  prerelease: false
21
41
  version_requirements: !ruby/object:Gem::Requirement
22
42
  requirements:
23
43
  - - "~>"
24
44
  - !ruby/object:Gem::Version
25
- version: '1.15'
45
+ version: '1.2'
26
46
  - !ruby/object:Gem::Dependency
27
- name: dry-types
47
+ name: dry-configurable
28
48
  requirement: !ruby/object:Gem::Requirement
29
49
  requirements:
30
50
  - - "~>"
31
51
  - !ruby/object:Gem::Version
32
- version: '1.7'
52
+ version: '1.0'
33
53
  type: :runtime
34
54
  prerelease: false
35
55
  version_requirements: !ruby/object:Gem::Requirement
36
56
  requirements:
37
57
  - - "~>"
38
58
  - !ruby/object:Gem::Version
39
- version: '1.7'
59
+ version: '1.0'
40
60
  - !ruby/object:Gem::Dependency
41
- name: dry-struct
61
+ name: dry-container
42
62
  requirement: !ruby/object:Gem::Requirement
43
63
  requirements:
44
64
  - - "~>"
45
65
  - !ruby/object:Gem::Version
46
- version: '1.6'
66
+ version: '0.11'
47
67
  type: :runtime
48
68
  prerelease: false
49
69
  version_requirements: !ruby/object:Gem::Requirement
50
70
  requirements:
51
71
  - - "~>"
52
72
  - !ruby/object:Gem::Version
53
- version: '1.6'
73
+ version: '0.11'
54
74
  - !ruby/object:Gem::Dependency
55
75
  name: dry-initializer
56
76
  requirement: !ruby/object:Gem::Requirement
@@ -66,47 +86,47 @@ dependencies:
66
86
  - !ruby/object:Gem::Version
67
87
  version: '3.1'
68
88
  - !ruby/object:Gem::Dependency
69
- name: dry-configurable
89
+ name: dry-struct
70
90
  requirement: !ruby/object:Gem::Requirement
71
91
  requirements:
72
92
  - - "~>"
73
93
  - !ruby/object:Gem::Version
74
- version: '1.0'
94
+ version: '1.6'
75
95
  type: :runtime
76
96
  prerelease: false
77
97
  version_requirements: !ruby/object:Gem::Requirement
78
98
  requirements:
79
99
  - - "~>"
80
100
  - !ruby/object:Gem::Version
81
- version: '1.0'
101
+ version: '1.6'
82
102
  - !ruby/object:Gem::Dependency
83
- name: dry-container
103
+ name: dry-types
84
104
  requirement: !ruby/object:Gem::Requirement
85
105
  requirements:
86
106
  - - "~>"
87
107
  - !ruby/object:Gem::Version
88
- version: '0.11'
108
+ version: '1.7'
89
109
  type: :runtime
90
110
  prerelease: false
91
111
  version_requirements: !ruby/object:Gem::Requirement
92
112
  requirements:
93
113
  - - "~>"
94
114
  - !ruby/object:Gem::Version
95
- version: '0.11'
115
+ version: '1.7'
96
116
  - !ruby/object:Gem::Dependency
97
- name: concurrent-ruby
117
+ name: ruby_llm
98
118
  requirement: !ruby/object:Gem::Requirement
99
119
  requirements:
100
120
  - - "~>"
101
121
  - !ruby/object:Gem::Version
102
- version: '1.2'
122
+ version: '1.15'
103
123
  type: :runtime
104
124
  prerelease: false
105
125
  version_requirements: !ruby/object:Gem::Requirement
106
126
  requirements:
107
127
  - - "~>"
108
128
  - !ruby/object:Gem::Version
109
- version: '1.2'
129
+ version: '1.15'
110
130
  description: Smith is a workflow-first multi-agent orchestration library built on
111
131
  RubyLLM. It provides state machine modeling, typed contracts, budget enforcement,
112
132
  guardrails, and observability for agent workflows.
@@ -135,14 +155,25 @@ files:
135
155
  - lib/smith/agent.rb
136
156
  - lib/smith/agent/lifecycle.rb
137
157
  - lib/smith/agent/registry.rb
158
+ - lib/smith/agent/registry/execution_binding_capture.rb
138
159
  - lib/smith/agent/registry/introspection.rb
160
+ - lib/smith/agent/registry/mutation_boundary.rb
139
161
  - lib/smith/agent/registry_binding.rb
140
162
  - lib/smith/artifacts.rb
141
163
  - lib/smith/artifacts/file.rb
142
164
  - lib/smith/artifacts/memory.rb
143
165
  - lib/smith/artifacts/scoped_store.rb
144
166
  - lib/smith/budget.rb
167
+ - lib/smith/budget/amount_contract.rb
168
+ - lib/smith/budget/amount_representation.rb
169
+ - lib/smith/budget/decimal_context.rb
145
170
  - lib/smith/budget/ledger.rb
171
+ - lib/smith/budget/ledger_publication.rb
172
+ - lib/smith/budget/ledger_state.rb
173
+ - lib/smith/budget/ledger_state_transition.rb
174
+ - lib/smith/budget/public_state_validator.rb
175
+ - lib/smith/budget/reservation.rb
176
+ - lib/smith/budget/reservation_contract.rb
146
177
  - lib/smith/cli.rb
147
178
  - lib/smith/context.rb
148
179
  - lib/smith/context/observation_masking.rb
@@ -164,6 +195,7 @@ files:
164
195
  - lib/smith/doctor/installer.rb
165
196
  - lib/smith/doctor/printer.rb
166
197
  - lib/smith/doctor/report.rb
198
+ - lib/smith/error.rb
167
199
  - lib/smith/errors.rb
168
200
  - lib/smith/event.rb
169
201
  - lib/smith/events.rb
@@ -171,6 +203,7 @@ files:
171
203
  - lib/smith/events/bus.rb
172
204
  - lib/smith/events/step_completed.rb
173
205
  - lib/smith/events/subscription.rb
206
+ - lib/smith/exponential_backoff.rb
174
207
  - lib/smith/guardrails.rb
175
208
  - lib/smith/guardrails/runner.rb
176
209
  - lib/smith/guardrails/url_verifier.rb
@@ -180,16 +213,22 @@ files:
180
213
  - lib/smith/models/profile.rb
181
214
  - lib/smith/persistence_adapters.rb
182
215
  - lib/smith/persistence_adapters/active_record_connection_errors.rb
216
+ - lib/smith/persistence_adapters/active_record_exact_predicate.rb
217
+ - lib/smith/persistence_adapters/active_record_exact_store.rb
218
+ - lib/smith/persistence_adapters/active_record_exact_write.rb
183
219
  - lib/smith/persistence_adapters/active_record_initial_write.rb
184
220
  - lib/smith/persistence_adapters/active_record_store.rb
185
221
  - lib/smith/persistence_adapters/cache_store.rb
186
222
  - lib/smith/persistence_adapters/memory.rb
187
223
  - lib/smith/persistence_adapters/payload_version.rb
188
224
  - lib/smith/persistence_adapters/rails_cache.rb
225
+ - lib/smith/persistence_adapters/redis_client_access.rb
226
+ - lib/smith/persistence_adapters/redis_exact_write.rb
189
227
  - lib/smith/persistence_adapters/redis_store.rb
190
228
  - lib/smith/persistence_adapters/redis_versioned_write.rb
191
229
  - lib/smith/persistence_adapters/retry.rb
192
230
  - lib/smith/persistence_adapters/version_expectation.rb
231
+ - lib/smith/persistence_payload_conflict.rb
193
232
  - lib/smith/pricing.rb
194
233
  - lib/smith/providers/openai/responses.rb
195
234
  - lib/smith/providers/openai/routing.rb
@@ -220,6 +259,8 @@ files:
220
259
  - lib/smith/workflow/claim.rb
221
260
  - lib/smith/workflow/data_volume_policy.rb
222
261
  - lib/smith/workflow/deadline_enforcement.rb
262
+ - lib/smith/workflow/definition_identity.rb
263
+ - lib/smith/workflow/definition_identity/class_methods.rb
223
264
  - lib/smith/workflow/deterministic_execution.rb
224
265
  - lib/smith/workflow/deterministic_step.rb
225
266
  - lib/smith/workflow/dsl.rb
@@ -227,12 +268,17 @@ files:
227
268
  - lib/smith/workflow/evaluator_optimizer.rb
228
269
  - lib/smith/workflow/event_integration.rb
229
270
  - lib/smith/workflow/execution.rb
271
+ - lib/smith/workflow/execution_binding_resolution.rb
230
272
  - lib/smith/workflow/execution_frame.rb
273
+ - lib/smith/workflow/execution_result_snapshot.rb
231
274
  - lib/smith/workflow/fanout_execution.rb
232
275
  - lib/smith/workflow/graph.rb
233
276
  - lib/smith/workflow/graph/contract_helpers.rb
234
277
  - lib/smith/workflow/graph/diagnostic.rb
278
+ - lib/smith/workflow/graph/diagnostic_path.rb
279
+ - lib/smith/workflow/graph/execution_successors.rb
235
280
  - lib/smith/workflow/graph/fanout_contract.rb
281
+ - lib/smith/workflow/graph/identifier_projection.rb
236
282
  - lib/smith/workflow/graph/metrics.rb
237
283
  - lib/smith/workflow/graph/nested_readiness_diagnostics.rb
238
284
  - lib/smith/workflow/graph/optimization_contract.rb
@@ -241,18 +287,30 @@ files:
241
287
  - lib/smith/workflow/graph/reachability_diagnostics.rb
242
288
  - lib/smith/workflow/graph/reference.rb
243
289
  - lib/smith/workflow/graph/report.rb
290
+ - lib/smith/workflow/graph/retry_policy_diagnostic.rb
244
291
  - lib/smith/workflow/graph/runtime_binding_diagnostic_builder.rb
245
292
  - lib/smith/workflow/graph/runtime_binding_diagnostics.rb
246
293
  - lib/smith/workflow/graph/runtime_readiness.rb
247
294
  - lib/smith/workflow/graph/runtime_readiness_metrics.rb
248
295
  - lib/smith/workflow/graph/runtime_readiness_report.rb
296
+ - lib/smith/workflow/graph/runtime_readiness_report_builder.rb
297
+ - lib/smith/workflow/graph/runtime_readiness_traversal.rb
249
298
  - lib/smith/workflow/graph/state_diagnostics.rb
250
299
  - lib/smith/workflow/graph/targets.rb
300
+ - lib/smith/workflow/graph/transition_contract.rb
301
+ - lib/smith/workflow/graph/transition_contract_attributes.rb
302
+ - lib/smith/workflow/graph/transition_contract_configurations.rb
251
303
  - lib/smith/workflow/graph/transition_diagnostics.rb
304
+ - lib/smith/workflow/graph/transition_optimization_configuration.rb
252
305
  - lib/smith/workflow/graph/transition_snapshot.rb
253
306
  - lib/smith/workflow/graph/validator.rb
254
307
  - lib/smith/workflow/graph_dsl.rb
255
308
  - lib/smith/workflow/guardrail_integration.rb
309
+ - lib/smith/workflow/identifier.rb
310
+ - lib/smith/workflow/message_admission.rb
311
+ - lib/smith/workflow/message_admission_boundary.rb
312
+ - lib/smith/workflow/message_batch.rb
313
+ - lib/smith/workflow/message_value_normalizer.rb
256
314
  - lib/smith/workflow/nested_execution.rb
257
315
  - lib/smith/workflow/optimization_state.rb
258
316
  - lib/smith/workflow/orchestration_state.rb
@@ -260,29 +318,62 @@ files:
260
318
  - lib/smith/workflow/parallel.rb
261
319
  - lib/smith/workflow/parallel/cancellation.rb
262
320
  - lib/smith/workflow/parallel/cancellation_signal.rb
321
+ - lib/smith/workflow/parallel/execution_context.rb
322
+ - lib/smith/workflow/parallel/nested_execution.rb
323
+ - lib/smith/workflow/parallel/root_execution.rb
324
+ - lib/smith/workflow/parallel_agent_binding.rb
263
325
  - lib/smith/workflow/parallel_execution.rb
264
326
  - lib/smith/workflow/persistence.rb
265
327
  - lib/smith/workflow/pipeline.rb
328
+ - lib/smith/workflow/prepared_step.rb
329
+ - lib/smith/workflow/prepared_step_dispatch.rb
330
+ - lib/smith/workflow/prepared_step_execution_authorization.rb
331
+ - lib/smith/workflow/prepared_step_execution_result.rb
332
+ - lib/smith/workflow/prepared_step_execution_scope.rb
333
+ - lib/smith/workflow/prepared_step_recovery.rb
266
334
  - lib/smith/workflow/retry_execution.rb
267
335
  - lib/smith/workflow/router.rb
268
336
  - lib/smith/workflow/run_result.rb
269
337
  - lib/smith/workflow/split_step_persistence.rb
270
338
  - lib/smith/workflow/split_step_persistence/boundary.rb
339
+ - lib/smith/workflow/split_step_persistence/boundary_reset.rb
340
+ - lib/smith/workflow/split_step_persistence/canonical_payload_digest.rb
271
341
  - lib/smith/workflow/split_step_persistence/checkpoint.rb
272
342
  - lib/smith/workflow/split_step_persistence/checkpoint_state.rb
343
+ - lib/smith/workflow/split_step_persistence/definition_boundary.rb
344
+ - lib/smith/workflow/split_step_persistence/dispatch_boundary.rb
345
+ - lib/smith/workflow/split_step_persistence/dispatch_claim.rb
346
+ - lib/smith/workflow/split_step_persistence/dispatch_confirmation.rb
347
+ - lib/smith/workflow/split_step_persistence/dispatch_verification.rb
273
348
  - lib/smith/workflow/split_step_persistence/execution.rb
349
+ - lib/smith/workflow/split_step_persistence/execution_authorization.rb
350
+ - lib/smith/workflow/split_step_persistence/execution_binding_collector.rb
351
+ - lib/smith/workflow/split_step_persistence/execution_binding_snapshot.rb
352
+ - lib/smith/workflow/split_step_persistence/execution_result_capture.rb
353
+ - lib/smith/workflow/split_step_persistence/execution_verification.rb
354
+ - lib/smith/workflow/split_step_persistence/execution_workflow_snapshot.rb
274
355
  - lib/smith/workflow/split_step_persistence/inheritance.rb
275
356
  - lib/smith/workflow/split_step_persistence/payloads.rb
276
357
  - lib/smith/workflow/split_step_persistence/preparation.rb
277
358
  - lib/smith/workflow/split_step_persistence/preparation_claim.rb
359
+ - lib/smith/workflow/split_step_persistence/preparation_payload.rb
278
360
  - lib/smith/workflow/split_step_persistence/preparation_recovery.rb
361
+ - lib/smith/workflow/split_step_persistence/recovery.rb
362
+ - lib/smith/workflow/split_step_persistence/recovery_boundary.rb
363
+ - lib/smith/workflow/split_step_persistence/recovery_class_methods.rb
364
+ - lib/smith/workflow/split_step_persistence/replace_exact_signature.rb
365
+ - lib/smith/workflow/split_step_persistence/restart_safe_adapter.rb
279
366
  - lib/smith/workflow/split_step_persistence/state_snapshot.rb
280
367
  - lib/smith/workflow/split_step_persistence/subclass_boundary.rb
368
+ - lib/smith/workflow/split_step_persistence/transaction_identity.rb
281
369
  - lib/smith/workflow/split_step_persistence/transition_contract.rb
282
370
  - lib/smith/workflow/split_step_persistence/transition_contract_freezer.rb
283
371
  - lib/smith/workflow/split_step_persistence/transition_contract_signature.rb
284
372
  - lib/smith/workflow/split_step_persistence/transition_contract_structured_values.rb
373
+ - lib/smith/workflow/step_completion.rb
374
+ - lib/smith/workflow/string_snapshot.rb
285
375
  - lib/smith/workflow/transition.rb
376
+ - lib/smith/workflow/transition_actionability.rb
286
377
  - lib/smith/workflow/usage_entry.rb
287
378
  - lib/smith/workflow/worker_execution.rb
288
379
  - script/profile_tool_results.rb