flowspec2 1.0.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.
Files changed (92) hide show
  1. flowspec2/__init__.py +105 -0
  2. flowspec2/authoring/__init__.py +275 -0
  3. flowspec2/authoring/authoring-evidence-signature.schema.json +34 -0
  4. flowspec2/authoring/authoring-evidence.schema.json +455 -0
  5. flowspec2/authoring/authoring-operational-evidence.schema.json +160 -0
  6. flowspec2/authoring/benchmark.py +1409 -0
  7. flowspec2/authoring/corpus/await_correction.case.json +220 -0
  8. flowspec2/authoring/corpus/flowspec2.ctk.json +769 -0
  9. flowspec2/authoring/corpus/gated_derive.case.json +100 -0
  10. flowspec2/authoring/corpus/linear.case.json +55 -0
  11. flowspec2/authoring/corpus/manifest.json +31 -0
  12. flowspec2/authoring/corpus/subflow.case.json +66 -0
  13. flowspec2/authoring/corpus/terminal.case.json +94 -0
  14. flowspec2/authoring/corpus.py +307 -0
  15. flowspec2/authoring/ctk.py +836 -0
  16. flowspec2/authoring/detached_signature.py +120 -0
  17. flowspec2/authoring/evidence.py +311 -0
  18. flowspec2/authoring/evidence_signature.py +187 -0
  19. flowspec2/authoring/evidence_verification.py +229 -0
  20. flowspec2/authoring/gemini.py +215 -0
  21. flowspec2/authoring/operational-corpus.json +61 -0
  22. flowspec2/authoring/operational.py +956 -0
  23. flowspec2/authoring/operational_providers.py +167 -0
  24. flowspec2/authoring/presentation_review.py +1013 -0
  25. flowspec2/authoring/presentation_review_signature.py +305 -0
  26. flowspec2/authoring/projection.py +299 -0
  27. flowspec2/authoring/provider_prompt.py +83 -0
  28. flowspec2/backends/__init__.py +82 -0
  29. flowspec2/backends/http.py +189 -0
  30. flowspec2/checker.py +238 -0
  31. flowspec2/cli.py +789 -0
  32. flowspec2/cli_parser.py +345 -0
  33. flowspec2/clock.py +23 -0
  34. flowspec2/compat/__init__.py +47 -0
  35. flowspec2/compat/models.py +82 -0
  36. flowspec2/compat/open_workflow.py +616 -0
  37. flowspec2/compat/rasa.py +19 -0
  38. flowspec2/compat/rasa_export.py +876 -0
  39. flowspec2/compat/rasa_import.py +992 -0
  40. flowspec2/compat/rasa_shared.py +270 -0
  41. flowspec2/compat/schemas/open-workflow-conversation-1.schema.json +138 -0
  42. flowspec2/compat/schemas/vendor/open-workflow-1.0.3.LICENSE +201 -0
  43. flowspec2/compat/schemas/vendor/open-workflow-1.0.3.provenance.json +13 -0
  44. flowspec2/compat/schemas/vendor/open-workflow-1.0.3.workflow.yaml +1956 -0
  45. flowspec2/compat/tool_profiles.py +149 -0
  46. flowspec2/compat/yaml.py +147 -0
  47. flowspec2/compiler.py +957 -0
  48. flowspec2/compiler_contracts.py +17 -0
  49. flowspec2/compiler_resume_contracts.py +594 -0
  50. flowspec2/compiler_schema_relations.py +1830 -0
  51. flowspec2/compiler_tool_contracts.py +245 -0
  52. flowspec2/compiler_value_contracts.py +447 -0
  53. flowspec2/derive.py +32 -0
  54. flowspec2/diagnostics.py +94 -0
  55. flowspec2/domains.py +489 -0
  56. flowspec2/experimental/__init__.py +57 -0
  57. flowspec2/experimental/flowspec-3-draft.schema.json +923 -0
  58. flowspec2/experimental/v3-preview-loss-policy.json +161 -0
  59. flowspec2/experimental/v3_lowering.py +928 -0
  60. flowspec2/experimental/v3_preview.py +2460 -0
  61. flowspec2/flowspec-2.schema.json +635 -0
  62. flowspec2/interactive.py +300 -0
  63. flowspec2/ir.py +1459 -0
  64. flowspec2/json_codec.py +120 -0
  65. flowspec2/llm.py +366 -0
  66. flowspec2/models.py +121 -0
  67. flowspec2/nodes.py +1537 -0
  68. flowspec2/observability.py +151 -0
  69. flowspec2/predicates.py +89 -0
  70. flowspec2/profiles.py +118 -0
  71. flowspec2/py.typed +0 -0
  72. flowspec2/runtime.py +1059 -0
  73. flowspec2/schema.py +54 -0
  74. flowspec2/schema_contracts.py +203 -0
  75. flowspec2/semantic_derive_contracts.py +530 -0
  76. flowspec2/semantic_path_contracts.py +528 -0
  77. flowspec2/semantic_predicate_contracts.py +355 -0
  78. flowspec2/semantic_schema_contracts.py +137 -0
  79. flowspec2/semantic_source_contracts.py +21 -0
  80. flowspec2/semantic_state_contracts.py +450 -0
  81. flowspec2/semantic_support.py +40 -0
  82. flowspec2/semantics.py +410 -0
  83. flowspec2/state_migration.py +1034 -0
  84. flowspec2/subflows/__init__.py +1117 -0
  85. flowspec2/subflows/address.py +328 -0
  86. flowspec2/subflows/identification.py +1031 -0
  87. flowspec2/tools.py +1154 -0
  88. flowspec2-1.0.0.dist-info/METADATA +482 -0
  89. flowspec2-1.0.0.dist-info/RECORD +92 -0
  90. flowspec2-1.0.0.dist-info/WHEEL +4 -0
  91. flowspec2-1.0.0.dist-info/entry_points.txt +2 -0
  92. flowspec2-1.0.0.dist-info/licenses/LICENSE +21 -0
flowspec2/__init__.py ADDED
@@ -0,0 +1,105 @@
1
+ """flowspec2 — a JSON conversational-flow format compiled to a LangGraph StateGraph.
2
+
3
+ Public API::
4
+
5
+ from flowspec2 import FlowRuntime, check_flow, load_flow, validate_flow, schema
6
+ from flowspec2 import ServiceState, AgentResponse, compile_flow
7
+
8
+ See ``docs/DESIGN.md`` for the format rationale and the construct→primitive map.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import logging
14
+ from importlib.metadata import version as package_version
15
+
16
+ from .backends import BackendConfig, make_registry
17
+ from .checker import check_flow, check_json, structural_diagnostics
18
+ from .clock import UtcClock
19
+ from .compiler import CompiledFlow, compile_flow
20
+ from .diagnostics import DiagnosticLocation, FlowCheckReport, FlowDiagnostic
21
+ from .ir import (
22
+ FLOW_IR_FORMAT,
23
+ FlowIR,
24
+ FlowNode,
25
+ FlowReference,
26
+ FlowSlot,
27
+ FlowTransition,
28
+ build_flow_ir,
29
+ normalize_flow,
30
+ )
31
+ from .models import AgentResponse, AwaitResumeProvenance, ServiceMetadata, ServiceState
32
+ from .observability import SnowflakeIdGenerator
33
+ from .profiles import FlowProfile, reference_profile
34
+ from .runtime import FlowRuntime
35
+ from .schema import load_flow, schema, validate_flow
36
+ from .semantics import FlowLinkError, semantic_diagnostics
37
+ from .state_migration import (
38
+ FlowStateContract,
39
+ StateCopy,
40
+ StateDefault,
41
+ StateMigrationError,
42
+ StateMigrationLossReport,
43
+ StateMigrationPlan,
44
+ StateMigrationResult,
45
+ StatePath,
46
+ migrate_service_state,
47
+ )
48
+ from .subflows import SubflowDefinition, SubflowRegistry, default_subflows
49
+ from .tools import ToolDefinition, ToolEffects, ToolRegistry, default_tool_registry
50
+
51
+ __version__ = package_version("flowspec2")
52
+
53
+ logging.getLogger(__name__).addHandler(logging.NullHandler())
54
+
55
+ __all__ = [
56
+ "FlowRuntime",
57
+ "FlowLinkError",
58
+ "FlowCheckReport",
59
+ "FlowDiagnostic",
60
+ "DiagnosticLocation",
61
+ "CompiledFlow",
62
+ "check_flow",
63
+ "check_json",
64
+ "structural_diagnostics",
65
+ "semantic_diagnostics",
66
+ "migrate_service_state",
67
+ "normalize_flow",
68
+ "build_flow_ir",
69
+ "FlowIR",
70
+ "FLOW_IR_FORMAT",
71
+ "FlowNode",
72
+ "FlowSlot",
73
+ "FlowReference",
74
+ "FlowTransition",
75
+ "FlowStateContract",
76
+ "FlowProfile",
77
+ "reference_profile",
78
+ "compile_flow",
79
+ "load_flow",
80
+ "validate_flow",
81
+ "schema",
82
+ "ServiceState",
83
+ "AgentResponse",
84
+ "AwaitResumeProvenance",
85
+ "ServiceMetadata",
86
+ "StatePath",
87
+ "StateCopy",
88
+ "StateDefault",
89
+ "StateMigrationPlan",
90
+ "StateMigrationResult",
91
+ "StateMigrationLossReport",
92
+ "StateMigrationError",
93
+ "SnowflakeIdGenerator",
94
+ "ToolRegistry",
95
+ "ToolDefinition",
96
+ "ToolEffects",
97
+ "UtcClock",
98
+ "default_tool_registry",
99
+ "SubflowRegistry",
100
+ "SubflowDefinition",
101
+ "default_subflows",
102
+ "BackendConfig",
103
+ "make_registry",
104
+ "__version__",
105
+ ]
@@ -0,0 +1,275 @@
1
+ """Provider-neutral evaluation contracts for AI-authored flow sources."""
2
+
3
+ from .benchmark import (
4
+ AUTHORING_ACCEPTANCE_FORMAT,
5
+ DEFAULT_FORBIDDEN_CONSTRUCTS,
6
+ DEFAULT_VARIABLE_POINTER_PATTERNS,
7
+ TOKEN_PROXY_BYTES_PER_UNIT,
8
+ TOKEN_PROXY_METHOD,
9
+ AcceptanceExpectation,
10
+ AuthoredSource,
11
+ AuthoringAcceptanceContract,
12
+ AuthoringAttempt,
13
+ AuthoringAuthor,
14
+ AuthoringBenchmarkCase,
15
+ AuthoringBenchmarkLimits,
16
+ AuthoringBenchmarkReport,
17
+ AuthoringBenchmarkResult,
18
+ AuthoringRequest,
19
+ AuthoringSourceAdapter,
20
+ AuthoringTask,
21
+ FlowSpec2JsonAdapter,
22
+ ForbiddenConstruct,
23
+ RequiredFlowConstruct,
24
+ SourceAdaptation,
25
+ acceptance_diagnostics,
26
+ authoring_acceptance_for_flow,
27
+ observe_authoring_flow,
28
+ replay_authoring_benchmark,
29
+ run_authoring_benchmark,
30
+ )
31
+ from .corpus import (
32
+ AUTHORING_CASE_FORMAT,
33
+ AUTHORING_CORPUS_FORMAT,
34
+ REFERENCE_AUTHORING_CORPUS_ID,
35
+ AuthoringCorpus,
36
+ load_reference_authoring_corpus,
37
+ )
38
+ from .ctk import (
39
+ CTK_CORPUS_FORMAT,
40
+ CTK_REPORT_FORMAT,
41
+ CTK_VERSION,
42
+ CtkCase,
43
+ CtkCaseReport,
44
+ CtkCorpus,
45
+ CtkDiagnosticOracle,
46
+ CtkIrOracle,
47
+ CtkReport,
48
+ CtkTurn,
49
+ load_ctk_corpus,
50
+ run_ctk_corpus,
51
+ )
52
+ from .evidence import (
53
+ AUTHORING_EVIDENCE_FORMAT,
54
+ SOURCE_ADAPTER_CONTRACT,
55
+ AuthoringBenchmarkEvidence,
56
+ AuthoringCapture,
57
+ AuthoringProviderProvenance,
58
+ RecordingAuthor,
59
+ )
60
+ from .evidence_signature import (
61
+ AUTHORING_EVIDENCE_SIGNATURE_ALGORITHM,
62
+ AUTHORING_EVIDENCE_SIGNATURE_FORMAT,
63
+ AuthoringEvidenceAuthentication,
64
+ AuthoringEvidenceSignature,
65
+ authoring_evidence_signature_schema,
66
+ sign_authoring_evidence,
67
+ verify_authoring_evidence_signature,
68
+ )
69
+ from .evidence_verification import (
70
+ AuthoringEvidenceVerification,
71
+ authoring_evidence_schema,
72
+ verify_authoring_evidence,
73
+ )
74
+ from .gemini import (
75
+ DEFAULT_GEMINI_AUTHOR_MODEL,
76
+ DEFAULT_GEMINI_AUTHOR_TIMEOUT_MILLISECONDS,
77
+ GEMINI_AUTHOR_PROMPT_DIGEST,
78
+ GEMINI_AUTHOR_PROMPT_FORMAT,
79
+ GeminiAuthor,
80
+ GeminiAuthorError,
81
+ )
82
+ from .operational import (
83
+ AUTHORING_OPERATIONAL_EVIDENCE_FORMAT,
84
+ OPERATIONAL_CORPUS_FORMAT,
85
+ OPERATIONAL_EVIDENCE_CLASSIFICATION,
86
+ OPERATIONAL_PROBE_FORMAT,
87
+ OPERATIONAL_PROMPT_DIGEST,
88
+ OPERATIONAL_PROMPT_FORMAT,
89
+ AuthoringOperationalEvidence,
90
+ AuthoringOperationalEvidenceVerification,
91
+ OperationalCorpus,
92
+ OperationalModelResponse,
93
+ OperationalProbe,
94
+ OperationalProbeRequest,
95
+ authoring_operational_evidence_schema,
96
+ load_reference_operational_corpus,
97
+ run_authoring_operational_evidence,
98
+ verify_authoring_operational_evidence,
99
+ )
100
+ from .operational_providers import (
101
+ DEFAULT_GEMINI_OPERATIONAL_MODEL,
102
+ DEFAULT_GEMINI_OPERATIONAL_TIMEOUT_MILLISECONDS,
103
+ GeminiOperationalExecutor,
104
+ OperationalProviderError,
105
+ )
106
+ from .presentation_review import (
107
+ PRESENTATION_REVIEW_DRAFT_FORMAT,
108
+ PRESENTATION_REVIEW_FORMAT,
109
+ PRESENTATION_RUBRIC_CRITERIA,
110
+ PRESENTATION_RUBRIC_DIGEST,
111
+ PRESENTATION_RUBRIC_FORMAT,
112
+ PRESENTATION_RUBRIC_IDENTIFIER,
113
+ AuthoringPresentationReview,
114
+ PresentationAssessment,
115
+ PresentationCriterionResult,
116
+ PresentationReviewDraft,
117
+ PresentationReviewDraftSubject,
118
+ PresentationReviewTaskContext,
119
+ PresentationReviewVerification,
120
+ PresentationRubricCriterion,
121
+ PresentationSubject,
122
+ finalize_presentation_review_draft,
123
+ presentation_review_draft,
124
+ presentation_review_schema,
125
+ presentation_rubric,
126
+ verify_presentation_review,
127
+ )
128
+ from .presentation_review_signature import (
129
+ AUTHORING_PRESENTATION_REVIEW_SIGNATURE_ALGORITHM,
130
+ AUTHORING_PRESENTATION_REVIEW_SIGNATURE_FORMAT,
131
+ AuthoringPresentationReviewAuthentication,
132
+ AuthoringPresentationReviewSignature,
133
+ AuthoringPromotionVerification,
134
+ authoring_presentation_review_signature_schema,
135
+ sign_presentation_review,
136
+ verify_authoring_promotion,
137
+ verify_presentation_review_signature,
138
+ )
139
+ from .projection import (
140
+ AUTHORING_PROJECTION_FORMAT,
141
+ AUTHORING_PROJECTION_VERSION,
142
+ AuthoringProjectionArtifact,
143
+ AuthoringProjectionError,
144
+ authoring_projection,
145
+ authoring_projection_diagnostics,
146
+ canonical_projection_json,
147
+ lower_authoring_projection,
148
+ project_flow_document,
149
+ )
150
+
151
+ __all__ = [
152
+ "AUTHORING_ACCEPTANCE_FORMAT",
153
+ "DEFAULT_FORBIDDEN_CONSTRUCTS",
154
+ "DEFAULT_VARIABLE_POINTER_PATTERNS",
155
+ "DEFAULT_GEMINI_AUTHOR_MODEL",
156
+ "DEFAULT_GEMINI_AUTHOR_TIMEOUT_MILLISECONDS",
157
+ "TOKEN_PROXY_BYTES_PER_UNIT",
158
+ "TOKEN_PROXY_METHOD",
159
+ "AUTHORING_PROJECTION_FORMAT",
160
+ "AUTHORING_PROJECTION_VERSION",
161
+ "AUTHORING_PRESENTATION_REVIEW_SIGNATURE_ALGORITHM",
162
+ "AUTHORING_PRESENTATION_REVIEW_SIGNATURE_FORMAT",
163
+ "AUTHORING_CASE_FORMAT",
164
+ "AUTHORING_CORPUS_FORMAT",
165
+ "AUTHORING_EVIDENCE_FORMAT",
166
+ "AUTHORING_EVIDENCE_SIGNATURE_ALGORITHM",
167
+ "AUTHORING_EVIDENCE_SIGNATURE_FORMAT",
168
+ "AUTHORING_OPERATIONAL_EVIDENCE_FORMAT",
169
+ "CTK_CORPUS_FORMAT",
170
+ "CTK_REPORT_FORMAT",
171
+ "CTK_VERSION",
172
+ "AcceptanceExpectation",
173
+ "AuthoringAttempt",
174
+ "AuthoringAcceptanceContract",
175
+ "AuthoredSource",
176
+ "AuthoringBenchmarkEvidence",
177
+ "AuthoringEvidenceVerification",
178
+ "AuthoringEvidenceAuthentication",
179
+ "AuthoringEvidenceSignature",
180
+ "AuthoringAuthor",
181
+ "AuthoringBenchmarkCase",
182
+ "AuthoringBenchmarkLimits",
183
+ "AuthoringBenchmarkReport",
184
+ "AuthoringBenchmarkResult",
185
+ "AuthoringCapture",
186
+ "AuthoringCorpus",
187
+ "AuthoringProviderProvenance",
188
+ "AuthoringRequest",
189
+ "AuthoringSourceAdapter",
190
+ "AuthoringTask",
191
+ "AuthoringProjectionArtifact",
192
+ "AuthoringProjectionError",
193
+ "AuthoringPresentationReview",
194
+ "AuthoringPresentationReviewAuthentication",
195
+ "AuthoringPresentationReviewSignature",
196
+ "AuthoringOperationalEvidence",
197
+ "AuthoringOperationalEvidenceVerification",
198
+ "AuthoringPromotionVerification",
199
+ "CtkCase",
200
+ "CtkCaseReport",
201
+ "CtkCorpus",
202
+ "CtkDiagnosticOracle",
203
+ "CtkIrOracle",
204
+ "CtkReport",
205
+ "CtkTurn",
206
+ "FlowSpec2JsonAdapter",
207
+ "ForbiddenConstruct",
208
+ "RequiredFlowConstruct",
209
+ "RecordingAuthor",
210
+ "PRESENTATION_REVIEW_DRAFT_FORMAT",
211
+ "PRESENTATION_REVIEW_FORMAT",
212
+ "PRESENTATION_RUBRIC_CRITERIA",
213
+ "PRESENTATION_RUBRIC_DIGEST",
214
+ "PRESENTATION_RUBRIC_FORMAT",
215
+ "PRESENTATION_RUBRIC_IDENTIFIER",
216
+ "OPERATIONAL_CORPUS_FORMAT",
217
+ "OPERATIONAL_EVIDENCE_CLASSIFICATION",
218
+ "OPERATIONAL_PROBE_FORMAT",
219
+ "OPERATIONAL_PROMPT_DIGEST",
220
+ "OPERATIONAL_PROMPT_FORMAT",
221
+ "OperationalCorpus",
222
+ "OperationalModelResponse",
223
+ "OperationalProbe",
224
+ "OperationalProbeRequest",
225
+ "OperationalProviderError",
226
+ "PresentationAssessment",
227
+ "PresentationCriterionResult",
228
+ "PresentationReviewDraft",
229
+ "PresentationReviewDraftSubject",
230
+ "PresentationReviewTaskContext",
231
+ "PresentationReviewVerification",
232
+ "PresentationRubricCriterion",
233
+ "PresentationSubject",
234
+ "REFERENCE_AUTHORING_CORPUS_ID",
235
+ "SOURCE_ADAPTER_CONTRACT",
236
+ "SourceAdaptation",
237
+ "acceptance_diagnostics",
238
+ "authoring_acceptance_for_flow",
239
+ "authoring_projection",
240
+ "authoring_projection_diagnostics",
241
+ "authoring_evidence_schema",
242
+ "authoring_evidence_signature_schema",
243
+ "authoring_operational_evidence_schema",
244
+ "authoring_presentation_review_signature_schema",
245
+ "canonical_projection_json",
246
+ "finalize_presentation_review_draft",
247
+ "load_ctk_corpus",
248
+ "load_reference_authoring_corpus",
249
+ "load_reference_operational_corpus",
250
+ "lower_authoring_projection",
251
+ "observe_authoring_flow",
252
+ "presentation_review_draft",
253
+ "presentation_review_schema",
254
+ "presentation_rubric",
255
+ "project_flow_document",
256
+ "replay_authoring_benchmark",
257
+ "run_authoring_benchmark",
258
+ "run_authoring_operational_evidence",
259
+ "run_ctk_corpus",
260
+ "sign_authoring_evidence",
261
+ "sign_presentation_review",
262
+ "verify_authoring_promotion",
263
+ "verify_authoring_evidence",
264
+ "verify_authoring_evidence_signature",
265
+ "verify_authoring_operational_evidence",
266
+ "verify_presentation_review",
267
+ "verify_presentation_review_signature",
268
+ "GEMINI_AUTHOR_PROMPT_DIGEST",
269
+ "GEMINI_AUTHOR_PROMPT_FORMAT",
270
+ "GeminiAuthor",
271
+ "GeminiAuthorError",
272
+ "GeminiOperationalExecutor",
273
+ "DEFAULT_GEMINI_OPERATIONAL_MODEL",
274
+ "DEFAULT_GEMINI_OPERATIONAL_TIMEOUT_MILLISECONDS",
275
+ ]
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://wllsena.github.io/flowspec2/schemas/authoring-evidence-signature-1.json",
4
+ "title": "FlowSpec2 authoring evidence signature",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "format",
9
+ "algorithm",
10
+ "evidence_digest",
11
+ "key_id",
12
+ "signature"
13
+ ],
14
+ "properties": {
15
+ "format": {
16
+ "const": "flowspec2/authoring-evidence-signature@1"
17
+ },
18
+ "algorithm": {
19
+ "const": "ed25519"
20
+ },
21
+ "evidence_digest": {
22
+ "type": "string",
23
+ "pattern": "^[0-9a-f]{64}$"
24
+ },
25
+ "key_id": {
26
+ "type": "string",
27
+ "pattern": "^[0-9a-f]{64}$"
28
+ },
29
+ "signature": {
30
+ "type": "string",
31
+ "pattern": "^[A-Za-z0-9+/]{86}==$"
32
+ }
33
+ }
34
+ }