bijux-canon-runtime 0.3.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.
Files changed (156) hide show
  1. bijux_canon_runtime-0.3.0/.gitignore +9 -0
  2. bijux_canon_runtime-0.3.0/CHANGELOG.md +91 -0
  3. bijux_canon_runtime-0.3.0/LICENSE +130 -0
  4. bijux_canon_runtime-0.3.0/PKG-INFO +255 -0
  5. bijux_canon_runtime-0.3.0/README.md +77 -0
  6. bijux_canon_runtime-0.3.0/docs/maintainer/pypi.md +63 -0
  7. bijux_canon_runtime-0.3.0/examples/datasets/README.md +9 -0
  8. bijux_canon_runtime-0.3.0/pyproject.toml +176 -0
  9. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/__init__.py +30 -0
  10. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/api/__init__.py +10 -0
  11. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/api/v1/__init__.py +22 -0
  12. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/api/v1/app.py +257 -0
  13. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/api/v1/http_contracts.py +94 -0
  14. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/api/v1/schema.hash +2 -0
  15. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/api/v1/schemas.py +95 -0
  16. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/__init__.py +41 -0
  17. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/determinism_guard.py +321 -0
  18. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/execute_flow.py +179 -0
  19. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/execution_persistence.py +157 -0
  20. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/execution_policy.py +109 -0
  21. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/execution_seed.py +22 -0
  22. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/flow_boundary.py +40 -0
  23. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/flow_execution_models.py +123 -0
  24. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/flow_preparation_support.py +321 -0
  25. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/non_determinism_lifecycle.py +13 -0
  26. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/planner.py +276 -0
  27. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/replay_event_analysis.py +66 -0
  28. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/replay_store.py +49 -0
  29. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/application/replay_support.py +106 -0
  30. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/__init__.py +8 -0
  31. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/artifact_contract.py +77 -0
  32. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/compatibility_contract.py +47 -0
  33. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/dataset_contract.py +43 -0
  34. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/execution_plan_contract.py +80 -0
  35. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/flow_contract.py +222 -0
  36. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/contracts/step_contract.py +88 -0
  37. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/core/__init__.py +86 -0
  38. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/core/authority.py +313 -0
  39. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/core/errors.py +85 -0
  40. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/core/ids.py +58 -0
  41. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/core/package_versions.py +32 -0
  42. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/core/verification_rules.py +300 -0
  43. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/__init__.py +8 -0
  44. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/__init__.py +27 -0
  45. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/entrypoint.py +63 -0
  46. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/execution_commands.py +138 -0
  47. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/manifest_loader.py +149 -0
  48. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/parser.py +152 -0
  49. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/policy_loader.py +57 -0
  50. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/result_rendering.py +192 -0
  51. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/interfaces/cli/store_commands.py +135 -0
  52. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/__init__.py +19 -0
  53. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/__init__.py +5 -0
  54. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/artifact.py +32 -0
  55. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/entropy_budget.py +36 -0
  56. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/entropy_usage.py +31 -0
  57. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/non_determinism_source.py +23 -0
  58. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/reasoning_claim.py +24 -0
  59. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/artifact/retrieved_evidence.py +33 -0
  60. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/datasets/__init__.py +5 -0
  61. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/datasets/dataset_descriptor.py +27 -0
  62. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/datasets/retrieval_request.py +25 -0
  63. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/__init__.py +5 -0
  64. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/command_modes.py +43 -0
  65. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/determinism_profile.py +37 -0
  66. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/execution_plan.py +23 -0
  67. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/execution_steps.py +56 -0
  68. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/execution_trace.py +113 -0
  69. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/non_deterministic_intent.py +25 -0
  70. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/replay_envelope.py +20 -0
  71. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/replay_verdict.py +29 -0
  72. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/resolved_step.py +45 -0
  73. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/execution/run_mode.py +21 -0
  74. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/flows/__init__.py +10 -0
  75. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/flows/manifest.py +58 -0
  76. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/identifiers/__init__.py +5 -0
  77. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/identifiers/agent_invocation.py +25 -0
  78. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/identifiers/execution_event.py +28 -0
  79. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/identifiers/tool_invocation.py +27 -0
  80. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/policy/__init__.py +12 -0
  81. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/policy/non_determinism_policy.py +69 -0
  82. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/reasoning/__init__.py +11 -0
  83. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/reasoning/bundle.py +27 -0
  84. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/reasoning/step.py +24 -0
  85. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/verification/__init__.py +5 -0
  86. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/verification/arbitration_policy.py +22 -0
  87. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/verification/verification.py +32 -0
  88. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/verification/verification_arbitration.py +31 -0
  89. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/verification/verification_result.py +33 -0
  90. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/model/verification/verification_rule.py +27 -0
  91. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/__init__.py +8 -0
  92. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/analysis/__init__.py +3 -0
  93. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/analysis/comparative_analysis.py +43 -0
  94. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/analysis/drift.py +72 -0
  95. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/analysis/flow_correlation.py +26 -0
  96. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/analysis/flow_invariants.py +64 -0
  97. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/analysis/trace_diff.py +247 -0
  98. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/capture/__init__.py +2 -0
  99. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/capture/environment.py +26 -0
  100. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/capture/hooks.py +21 -0
  101. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/capture/observed_run.py +26 -0
  102. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/capture/time.py +15 -0
  103. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/capture/trace_recorder.py +70 -0
  104. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/classification/__init__.py +2 -0
  105. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/classification/determinism_classification.py +166 -0
  106. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/classification/entropy.py +174 -0
  107. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/classification/fingerprint.py +43 -0
  108. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/classification/retrieval_fingerprint.py +23 -0
  109. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/classification/seed.py +15 -0
  110. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/migrations/001_init.sql +249 -0
  111. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/migrations/002_nondeterminism_governance.sql +34 -0
  112. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/migrations/003_entropy_budget_slices.sql +14 -0
  113. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/schema.hash +1 -0
  114. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/schema.sql +294 -0
  115. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/storage/__init__.py +2 -0
  116. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/storage/execution_store.py +1576 -0
  117. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/storage/execution_store_lock.py +41 -0
  118. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/storage/execution_store_protocol.py +184 -0
  119. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/storage/execution_store_schema.py +42 -0
  120. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/observability/storage/schema_contracts.py +31 -0
  121. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/ontology/__init__.py +98 -0
  122. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/ontology/artifact_types.py +10 -0
  123. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/ontology/ids.py +125 -0
  124. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/ontology/ontology.py +261 -0
  125. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/ontology/public.py +24 -0
  126. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/py.typed +0 -0
  127. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/__init__.py +27 -0
  128. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/artifact_store.py +219 -0
  129. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/budget.py +96 -0
  130. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/context.py +160 -0
  131. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/__init__.py +10 -0
  132. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/agent_executor.py +124 -0
  133. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/dry_run_executor.py +194 -0
  134. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/event_causality.py +37 -0
  135. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/integration_loaders.py +112 -0
  136. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/__init__.py +20 -0
  137. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/finalize.py +98 -0
  138. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/prepare.py +20 -0
  139. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/run.py +128 -0
  140. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/run_recording.py +175 -0
  141. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/step_loop.py +213 -0
  142. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/step_operations.py +428 -0
  143. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/step_verification.py +261 -0
  144. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/lifecycle/tool_event_recording.py +111 -0
  145. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/live_executor.py +254 -0
  146. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/observer_executor.py +41 -0
  147. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/reasoning_executor.py +70 -0
  148. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/retrieval_executor.py +131 -0
  149. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/state_tracker.py +34 -0
  150. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/execution/step_executor.py +34 -0
  151. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/runtime/non_determinism_lifecycle.py +97 -0
  152. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/verification/__init__.py +10 -0
  153. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/verification/arbitration_support.py +147 -0
  154. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/verification/contradiction_support.py +71 -0
  155. bijux_canon_runtime-0.3.0/src/bijux_canon_runtime/verification/orchestrator.py +215 -0
  156. bijux_canon_runtime-0.3.0/tests/api/README.md +15 -0
@@ -0,0 +1,9 @@
1
+ dist/
2
+ build/
3
+ *.egg-info/
4
+ .venv/
5
+ .pytest_cache/
6
+ .mypy_cache/
7
+ .ruff_cache/
8
+ artifacts/
9
+ site/
@@ -0,0 +1,91 @@
1
+ # Changelog
2
+ <a id="top"></a>
3
+
4
+ All notable changes to **bijux-canon-runtime** are documented here.
5
+
6
+ Historical release entries below preserve the wording that shipped with the
7
+ tagged release, including legacy distribution naming where applicable.
8
+
9
+ <a id="v0-3-0"></a>
10
+ ## [0.3.0] - 2026-04-05
11
+
12
+ <!-- release-v0-3-0 start -->
13
+ ### Added
14
+ * Package-local documentation now explains execution authority, replay
15
+ semantics, operator boundaries, API contract testing, and example datasets in
16
+ clearer human-facing language.
17
+ * Runtime now has focused package tests for command mapping, execution
18
+ persistence, canonical package-version lookup, and identifier exports.
19
+
20
+ ### Changed
21
+ * The package was realigned under the canonical `bijux-canon-runtime` identity,
22
+ with runtime models, contracts, ontology, observability, interfaces, and API
23
+ surfaces renamed around durable ownership.
24
+ * Execution orchestration was decomposed into smaller modules for flow
25
+ preparation, step execution, run recording, replay analysis, policy handling,
26
+ and persistence support.
27
+ * Runtime command handling, `RunMode` ownership, and non-determinism lifecycle
28
+ plumbing were consolidated into clearer runtime-facing modules.
29
+ * Planner behavior now uses normalized dependency ordering and canonical package
30
+ version discovery for runtime metadata.
31
+ * Flow preparation, execution recording, replay analysis, tool-event recording,
32
+ verification arbitration, and persistence support were split into smaller
33
+ modules so runtime behavior is easier to reason about and maintain.
34
+ * PyPI metadata, search keywords, and project URLs now make the canonical
35
+ runtime package easier to discover from package indexes and Bijux-owned docs.
36
+ * The package README now uses PyPI-safe badge and link targets, and it points
37
+ legacy `agentic-flows` users to the canonical migration path and retired
38
+ repository guidance.
39
+ * Package-local PyPI publication guidance is now checked in and shipped with
40
+ the source distribution so runtime release expectations stay durable.
41
+ * Source distributions now publish package-local ignore rules instead of a
42
+ generic repo-level `.gitignore`.
43
+
44
+ ### Fixed
45
+ * Duplicate dependency declarations are now rejected during planning.
46
+ * Runtime metadata and tests now align with canonical package names and the
47
+ `bijux-cli` `0.3.3` line.
48
+ * Root package quality gates were repaired after the refactor series.
49
+ * Replay and storage typing, readiness responses, and verification-policy
50
+ override handling were tightened during the runtime refactor series.
51
+ * Release artifacts now ship the repository `LICENSE` file so downstream
52
+ consumers receive the license text with the published package.
53
+ <!-- release-v0-3-0 end -->
54
+
55
+ ---
56
+
57
+ <!-- release start -->
58
+
59
+ <a id="v0-1-0"></a>
60
+ ## [0.1.0] – 2025-01-21
61
+
62
+ ### Added
63
+ - **Core runtime**
64
+ - Deterministic execution lifecycle with planning, execution, and finalization phases.
65
+ - Execution modes: plan, dry-run, live, observe, and unsafe.
66
+ - Strict determinism guardrails with explicit seed and environment fingerprints.
67
+ - **Non-determinism governance**
68
+ - Declared non-determinism intent model and policy validation.
69
+ - Entropy budgeting with enforcement, exhaustion semantics, and replay analysis.
70
+ - Determinism profiles with structured replay metadata.
71
+ - **Replay and audit**
72
+ - Replay modes (strict/bounded/observational) and acceptability classifications.
73
+ - Trace diffing, replay envelopes, and deterministic replay validation.
74
+ - Observability capture for events, artifacts, evidence, and entropy usage.
75
+ - **Persistence**
76
+ - DuckDB execution store with schema contract enforcement and migrations.
77
+ - Execution schema, replay envelopes, checkpoints, and trace storage.
78
+ - **CLI + API surface**
79
+ - CLI commands for planning, running, replaying, inspecting, and diffing runs.
80
+ - OpenAPI schema for the HTTP surface with schema hash stability checks.
81
+ - **Policies and verification**
82
+ - Verification policy and arbitration plumbing for reasoning and evidence checks.
83
+ - Failure taxonomy with deterministic error classes.
84
+ - **Docs and examples**
85
+ - Determinism/non-determinism contract docs and storage model guidance.
86
+ - Examples for deterministic and replay behavior.
87
+ - **Quality gates**
88
+ - Makefile orchestration for tests, linting, docs, API checks, SBOM, and citation outputs.
89
+
90
+
91
+ <!-- release end -->
@@ -0,0 +1,130 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ https://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by
10
+ Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting
13
+ the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all other entities that control, are
16
+ controlled by, or are under common control with that entity. For the purposes of this definition,
17
+ "control" means (i) the power, direct or indirect, to cause the direction or management of such entity,
18
+ whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding
19
+ shares, or (iii) beneficial ownership of such entity.
20
+
21
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this
22
+ License.
23
+
24
+ "Source" form shall mean the preferred form for making modifications, including but not limited to
25
+ software source code, documentation source, and configuration files.
26
+
27
+ "Object" form shall mean any form resulting from mechanical transformation or translation of a Source
28
+ form, including but not limited to compiled object code, generated documentation, and conversions to
29
+ other media types.
30
+
31
+ "Work" shall mean the work of authorship, whether in Source or Object form, made available under the
32
+ License, as indicated by a copyright notice that is included in or attached to the work (an example is
33
+ provided in the Appendix below).
34
+
35
+ "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived
36
+ from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications
37
+ represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works
38
+ shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of,
39
+ the Work and Derivative Works thereof.
40
+
41
+ "Contribution" shall mean any work of authorship, including the original version of the Work and any
42
+ modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to
43
+ Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to
44
+ submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form
45
+ of electronic, verbal, or written communication sent to the Licensor or its representatives, including but
46
+ not limited to communication on electronic mailing lists, source code control systems, and issue tracking
47
+ systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the
48
+ Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the
49
+ copyright owner as "Not a Contribution."
50
+
51
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has
52
+ been received by Licensor and subsequently incorporated within the Work.
53
+
54
+ 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor
55
+ hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
56
+ copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform,
57
+ sublicense, and distribute the Work and such Derivative Works in Source or Object form.
58
+
59
+ 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby
60
+ grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as
61
+ stated in this section) patent license to make, have made, use, offer to sell, sell, import, and
62
+ otherwise transfer the Work, where such license applies only to those patent claims licensable by such
63
+ Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their
64
+ Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent
65
+ litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the
66
+ Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement,
67
+ then any patent licenses granted to You under this License for that Work shall terminate as of the date
68
+ such litigation is filed.
69
+
70
+ 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any
71
+ medium, with or without modifications, and in Source or Object form, provided that You meet the following
72
+ conditions:
73
+
74
+ (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
75
+
76
+ (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
77
+
78
+ (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright,
79
+ patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that
80
+ do not pertain to any part of the Derivative Works; and
81
+
82
+ (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that
83
+ You distribute must include a readable copy of the attribution notices contained within such NOTICE file,
84
+ excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the
85
+ following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source
86
+ form or documentation, if provided along with the Derivative Works; or, within a display generated by the
87
+ Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file
88
+ are for informational purposes only and do not modify the License. You may add Your own attribution
89
+ notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from
90
+ the Work, provided that such additional attribution notices cannot be construed as modifying the License.
91
+
92
+ You may add Your own copyright statement to Your modifications and may provide additional or different
93
+ license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such
94
+ Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise
95
+ complies with the conditions stated in this License.
96
+
97
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally
98
+ submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this
99
+ License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall
100
+ supersede or modify the terms of any separate license agreement you may have executed with Licensor
101
+ regarding such Contributions.
102
+
103
+ 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks,
104
+ or product names of the Licensor, except as required for reasonable and customary use in describing the
105
+ origin of the Work and reproducing the content of the NOTICE file.
106
+
107
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides
108
+ the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR
109
+ CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or
110
+ conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
111
+ responsible for determining the appropriateness of using or redistributing the Work and assume any risks
112
+ associated with Your exercise of permissions under this License.
113
+
114
+ 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including
115
+ negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly
116
+ negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including
117
+ any direct, indirect, special, incidental, or consequential damages of any character arising as a result
118
+ of this License or out of the use or inability to use the Work (including but not limited to damages for
119
+ loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages
120
+ or losses), even if such Contributor has been advised of the possibility of such damages.
121
+
122
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof,
123
+ You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other
124
+ liability obligations and/or rights consistent with this License. However, in accepting such obligations,
125
+ You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other
126
+ Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any
127
+ liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such
128
+ warranty or additional liability.
129
+
130
+ END OF TERMS AND CONDITIONS
@@ -0,0 +1,255 @@
1
+ Metadata-Version: 2.4
2
+ Name: bijux-canon-runtime
3
+ Version: 0.3.0
4
+ Summary: Governed runtime execution, replay policy, and auditable non-determinism for the bijux-canon package family from Bijux.
5
+ Project-URL: Homepage, https://bijux.io/bijux-canon/bijux-canon-runtime/
6
+ Project-URL: Website, https://bijux.io/
7
+ Project-URL: Documentation, https://bijux.io/bijux-canon/bijux-canon-runtime/
8
+ Project-URL: Repository, https://github.com/bijux/bijux-canon
9
+ Project-URL: Issues, https://github.com/bijux/bijux-canon/issues
10
+ Project-URL: Changelog, https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/CHANGELOG.md
11
+ Project-URL: Security, https://github.com/bijux/bijux-canon/blob/main/SECURITY.md
12
+ Project-URL: Funding, https://github.com/sponsors/bijux
13
+ Project-URL: PackageMap, https://bijux.io/bijux-canon/package-map/
14
+ Project-URL: CompatibilityGuide, https://bijux.io/bijux-canon/compat-packages/migration-guidance/
15
+ Author-email: Bijan Mousavi <bijan@bijux.io>
16
+ Maintainer-email: Bijan Mousavi <bijan@bijux.io>
17
+ License: Apache-2.0
18
+ Keywords: agents,audit,bijux,bijux-canon,bijux.io,contract-first,execution,governance,non-determinism,replay,reproducibility,workflow-runtime
19
+ Classifier: Development Status :: 3 - Alpha
20
+ Classifier: Environment :: Console
21
+ Classifier: Intended Audience :: Developers
22
+ Classifier: Intended Audience :: Science/Research
23
+ Classifier: License :: OSI Approved :: Apache Software License
24
+ Classifier: Natural Language :: English
25
+ Classifier: Operating System :: MacOS
26
+ Classifier: Operating System :: OS Independent
27
+ Classifier: Operating System :: POSIX
28
+ Classifier: Programming Language :: Python :: 3
29
+ Classifier: Programming Language :: Python :: 3 :: Only
30
+ Classifier: Programming Language :: Python :: 3.11
31
+ Classifier: Programming Language :: Python :: 3.12
32
+ Classifier: Programming Language :: Python :: 3.13
33
+ Classifier: Programming Language :: Python :: 3.14
34
+ Classifier: Programming Language :: Python :: Implementation :: CPython
35
+ Classifier: Topic :: Software Development :: Libraries
36
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
37
+ Classifier: Topic :: Utilities
38
+ Classifier: Typing :: Typed
39
+ Requires-Python: <4,>=3.11
40
+ Requires-Dist: bijux-canon-agent<0.4.0,>=0.3.0
41
+ Requires-Dist: bijux-canon-index<0.4.0,>=0.3.0
42
+ Requires-Dist: bijux-canon-ingest<0.4.0,>=0.3.0
43
+ Requires-Dist: bijux-canon-reason<0.4.0,>=0.3.0
44
+ Requires-Dist: bijux-cli<0.4.0,>=0.3.3
45
+ Requires-Dist: duckdb<2.0.0,>=1.1.3
46
+ Requires-Dist: pydantic<3.0.0,>=2.0.2
47
+ Provides-Extra: api
48
+ Requires-Dist: fastapi<1.0,>=0.128; extra == 'api'
49
+ Requires-Dist: starlette<1.0,>=0.46; extra == 'api'
50
+ Requires-Dist: uvicorn<1.0,>=0.32; extra == 'api'
51
+ Provides-Extra: dev
52
+ Requires-Dist: bandit<2.0,>=1.7.10; extra == 'dev'
53
+ Requires-Dist: build<2.0,>=1.0.3; extra == 'dev'
54
+ Requires-Dist: codespell<3.0,>=2.3.0; extra == 'dev'
55
+ Requires-Dist: deptry<1.0,>=0.10.0; extra == 'dev'
56
+ Requires-Dist: fastapi<1.0,>=0.128; extra == 'dev'
57
+ Requires-Dist: httpx<1.0,>=0.27.0; extra == 'dev'
58
+ Requires-Dist: hypothesis-jsonschema<1.0,>=0.23.0; extra == 'dev'
59
+ Requires-Dist: hypothesis<7.0,>=6.103.0; extra == 'dev'
60
+ Requires-Dist: interrogate<2.0,>=1.7.0; extra == 'dev'
61
+ Requires-Dist: mkdocs-material<10.0,>=9.5.39; extra == 'dev'
62
+ Requires-Dist: mkdocs<2.0,>=1.6.1; extra == 'dev'
63
+ Requires-Dist: mypy<2.0,>=1.11.2; extra == 'dev'
64
+ Requires-Dist: pexpect<5.0,>=4.8.0; extra == 'dev'
65
+ Requires-Dist: pip-audit<3.0,>=2.7.3; extra == 'dev'
66
+ Requires-Dist: pydocstyle<7.0,>=6.2.1; extra == 'dev'
67
+ Requires-Dist: pyfakefs>=5.9.0; extra == 'dev'
68
+ Requires-Dist: pytest-asyncio<2.0,>=1.0.0; extra == 'dev'
69
+ Requires-Dist: pytest-benchmark<5.0,>=4.0.0; extra == 'dev'
70
+ Requires-Dist: pytest-cov<7.0,>=6.2.1; extra == 'dev'
71
+ Requires-Dist: pytest-mock<4.0,>=3.14.1; extra == 'dev'
72
+ Requires-Dist: pytest-rerunfailures<14.0,>=13.0; extra == 'dev'
73
+ Requires-Dist: pytest-timeout<3.0,>=2.4.0; extra == 'dev'
74
+ Requires-Dist: pytest<9.0,>=8.4.1; extra == 'dev'
75
+ Requires-Dist: pyyaml<7.0,>=6.0; extra == 'dev'
76
+ Requires-Dist: radon>=6.0.0; extra == 'dev'
77
+ Requires-Dist: ruff<1.0,>=0.6.8; extra == 'dev'
78
+ Requires-Dist: starlette<1.0,>=0.46; extra == 'dev'
79
+ Requires-Dist: types-colorama<1.0,>=0.0.14; extra == 'dev'
80
+ Requires-Dist: types-orjson<4.0,>=3.6.0; extra == 'dev'
81
+ Requires-Dist: types-pexpect<5.0,>=4.9.0; extra == 'dev'
82
+ Requires-Dist: types-psutil<7.0,>=6.0.0; extra == 'dev'
83
+ Requires-Dist: types-pyyaml<7.0,>=6.0.12; extra == 'dev'
84
+ Requires-Dist: typing-extensions<5.0,>=4.5.0; extra == 'dev'
85
+ Requires-Dist: vulture<3.0,>=2.7; extra == 'dev'
86
+ Description-Content-Type: text/markdown
87
+
88
+ # bijux-canon-runtime
89
+
90
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](https://pypi.org/project/bijux-canon-runtime/)
91
+ [![Typing: typed](https://img.shields.io/badge/typing-typed%20(PEP%20561)-0A7BBB)](https://pypi.org/project/bijux-canon-runtime/)
92
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-0F766E)](https://github.com/bijux/bijux-canon/blob/main/LICENSE)
93
+ [![CI Status](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-runtime.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-runtime.yml)
94
+ [![GitHub Repository](https://img.shields.io/badge/github-bijux%2Fbijux--canon-181717?logo=github)](https://github.com/bijux/bijux-canon)
95
+
96
+ [![bijux-canon-runtime](https://img.shields.io/pypi/v/bijux-canon-runtime?label=runtime&logo=pypi)](https://pypi.org/project/bijux-canon-runtime/)
97
+ [![bijux-canon-agent](https://img.shields.io/pypi/v/bijux-canon-agent?label=agent&logo=pypi)](https://pypi.org/project/bijux-canon-agent/)
98
+ [![bijux-canon-ingest](https://img.shields.io/pypi/v/bijux-canon-ingest?label=ingest&logo=pypi)](https://pypi.org/project/bijux-canon-ingest/)
99
+ [![bijux-canon-reason](https://img.shields.io/pypi/v/bijux-canon-reason?label=reason&logo=pypi)](https://pypi.org/project/bijux-canon-reason/)
100
+ [![bijux-canon-index](https://img.shields.io/pypi/v/bijux-canon-index?label=index&logo=pypi)](https://pypi.org/project/bijux-canon-index/)
101
+
102
+ [![agentic-flows](https://img.shields.io/pypi/v/agentic-flows?label=agentic--flows&logo=pypi)](https://pypi.org/project/agentic-flows/)
103
+ [![bijux-agent](https://img.shields.io/pypi/v/bijux-agent?label=bijux--agent&logo=pypi)](https://pypi.org/project/bijux-agent/)
104
+ [![bijux-rag](https://img.shields.io/pypi/v/bijux-rag?label=bijux--rag&logo=pypi)](https://pypi.org/project/bijux-rag/)
105
+ [![bijux-rar](https://img.shields.io/pypi/v/bijux-rar?label=bijux--rar&logo=pypi)](https://pypi.org/project/bijux-rar/)
106
+ [![bijux-vex](https://img.shields.io/pypi/v/bijux-vex?label=bijux--vex&logo=pypi)](https://pypi.org/project/bijux-vex/)
107
+
108
+ [![Runtime docs](https://img.shields.io/badge/docs-runtime-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-runtime/)
109
+ [![Agent docs](https://img.shields.io/badge/docs-agent-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-agent/)
110
+ [![Ingest docs](https://img.shields.io/badge/docs-ingest-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-ingest/)
111
+ [![Reason docs](https://img.shields.io/badge/docs-reason-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-reason/)
112
+ [![Index docs](https://img.shields.io/badge/docs-index-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-index/)
113
+
114
+ `bijux-canon-runtime` is the package that decides whether and how a flow runs,
115
+ what gets recorded about that run, and how a later replay should be judged. It
116
+ is the authority layer for execution, replay, runtime persistence, and
117
+ non-determinism governance.
118
+
119
+ If you need to understand plan versus run modes, replay acceptance, trace
120
+ capture, execution-store behavior, or non-determinism policy enforcement, start
121
+ here.
122
+
123
+ ## Legacy continuity
124
+
125
+ - compatibility package: [`agentic-flows`](https://pypi.org/project/agentic-flows/)
126
+ - legacy import root: `agentic_flows`
127
+ - legacy command: `agentic-flows`
128
+ - canonical migration guide: <https://bijux.io/bijux-canon/compat-packages/migration-guidance/>
129
+ - retired repository target: <https://github.com/bijux/agentic-flows>
130
+
131
+ ## What this package owns
132
+
133
+ - flow execution authority
134
+ - replay and acceptability semantics
135
+ - trace capture, runtime persistence, and execution-store behavior
136
+ - package-local CLI and API boundaries
137
+
138
+ ## What this package does not own
139
+
140
+ - agent composition policy
141
+ - ingest or index domain ownership
142
+ - repository tooling and release support
143
+
144
+ ## Source map
145
+
146
+ - [`src/bijux_canon_runtime/model`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/model) for durable runtime models
147
+ - [`src/bijux_canon_runtime/runtime`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/runtime) for execution engines and lifecycle logic
148
+ - [`src/bijux_canon_runtime/application`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/application) for orchestration and replay coordination
149
+ - [`src/bijux_canon_runtime/observability`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/observability) for trace capture, analysis, and storage support
150
+ - [`src/bijux_canon_runtime/interfaces`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/interfaces) and [`src/bijux_canon_runtime/api`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/api) for boundaries
151
+ - [`tests`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/tests) and [`examples`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/examples) for executable expectations and teaching material
152
+
153
+ ## Read this next
154
+
155
+ - [Package guide](https://bijux.io/bijux-canon/bijux-canon-runtime/)
156
+ - [Architecture](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/docs/ARCHITECTURE.md)
157
+ - [Boundaries](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/docs/BOUNDARIES.md)
158
+ - [Contracts](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/docs/CONTRACTS.md)
159
+ - [Compatibility packages](https://bijux.io/bijux-canon/compat-packages/)
160
+ - [Changelog](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/CHANGELOG.md)
161
+
162
+ ## Primary entrypoint
163
+
164
+ - console script: `bijux-canon-runtime`
165
+ # Changelog
166
+ <a id="top"></a>
167
+
168
+ All notable changes to **bijux-canon-runtime** are documented here.
169
+
170
+ Historical release entries below preserve the wording that shipped with the
171
+ tagged release, including legacy distribution naming where applicable.
172
+
173
+ <a id="v0-3-0"></a>
174
+ ## [0.3.0] - 2026-04-05
175
+
176
+ <!-- release-v0-3-0 start -->
177
+ ### Added
178
+ * Package-local documentation now explains execution authority, replay
179
+ semantics, operator boundaries, API contract testing, and example datasets in
180
+ clearer human-facing language.
181
+ * Runtime now has focused package tests for command mapping, execution
182
+ persistence, canonical package-version lookup, and identifier exports.
183
+
184
+ ### Changed
185
+ * The package was realigned under the canonical `bijux-canon-runtime` identity,
186
+ with runtime models, contracts, ontology, observability, interfaces, and API
187
+ surfaces renamed around durable ownership.
188
+ * Execution orchestration was decomposed into smaller modules for flow
189
+ preparation, step execution, run recording, replay analysis, policy handling,
190
+ and persistence support.
191
+ * Runtime command handling, `RunMode` ownership, and non-determinism lifecycle
192
+ plumbing were consolidated into clearer runtime-facing modules.
193
+ * Planner behavior now uses normalized dependency ordering and canonical package
194
+ version discovery for runtime metadata.
195
+ * Flow preparation, execution recording, replay analysis, tool-event recording,
196
+ verification arbitration, and persistence support were split into smaller
197
+ modules so runtime behavior is easier to reason about and maintain.
198
+ * PyPI metadata, search keywords, and project URLs now make the canonical
199
+ runtime package easier to discover from package indexes and Bijux-owned docs.
200
+ * The package README now uses PyPI-safe badge and link targets, and it points
201
+ legacy `agentic-flows` users to the canonical migration path and retired
202
+ repository guidance.
203
+ * Package-local PyPI publication guidance is now checked in and shipped with
204
+ the source distribution so runtime release expectations stay durable.
205
+ * Source distributions now publish package-local ignore rules instead of a
206
+ generic repo-level `.gitignore`.
207
+
208
+ ### Fixed
209
+ * Duplicate dependency declarations are now rejected during planning.
210
+ * Runtime metadata and tests now align with canonical package names and the
211
+ `bijux-cli` `0.3.3` line.
212
+ * Root package quality gates were repaired after the refactor series.
213
+ * Replay and storage typing, readiness responses, and verification-policy
214
+ override handling were tightened during the runtime refactor series.
215
+ * Release artifacts now ship the repository `LICENSE` file so downstream
216
+ consumers receive the license text with the published package.
217
+ <!-- release-v0-3-0 end -->
218
+
219
+ ---
220
+
221
+ <!-- release start -->
222
+
223
+ <a id="v0-1-0"></a>
224
+ ## [0.1.0] – 2025-01-21
225
+
226
+ ### Added
227
+ - **Core runtime**
228
+ - Deterministic execution lifecycle with planning, execution, and finalization phases.
229
+ - Execution modes: plan, dry-run, live, observe, and unsafe.
230
+ - Strict determinism guardrails with explicit seed and environment fingerprints.
231
+ - **Non-determinism governance**
232
+ - Declared non-determinism intent model and policy validation.
233
+ - Entropy budgeting with enforcement, exhaustion semantics, and replay analysis.
234
+ - Determinism profiles with structured replay metadata.
235
+ - **Replay and audit**
236
+ - Replay modes (strict/bounded/observational) and acceptability classifications.
237
+ - Trace diffing, replay envelopes, and deterministic replay validation.
238
+ - Observability capture for events, artifacts, evidence, and entropy usage.
239
+ - **Persistence**
240
+ - DuckDB execution store with schema contract enforcement and migrations.
241
+ - Execution schema, replay envelopes, checkpoints, and trace storage.
242
+ - **CLI + API surface**
243
+ - CLI commands for planning, running, replaying, inspecting, and diffing runs.
244
+ - OpenAPI schema for the HTTP surface with schema hash stability checks.
245
+ - **Policies and verification**
246
+ - Verification policy and arbitration plumbing for reasoning and evidence checks.
247
+ - Failure taxonomy with deterministic error classes.
248
+ - **Docs and examples**
249
+ - Determinism/non-determinism contract docs and storage model guidance.
250
+ - Examples for deterministic and replay behavior.
251
+ - **Quality gates**
252
+ - Makefile orchestration for tests, linting, docs, API checks, SBOM, and citation outputs.
253
+
254
+
255
+ <!-- release end -->
@@ -0,0 +1,77 @@
1
+ # bijux-canon-runtime
2
+
3
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](https://pypi.org/project/bijux-canon-runtime/)
4
+ [![Typing: typed](https://img.shields.io/badge/typing-typed%20(PEP%20561)-0A7BBB)](https://pypi.org/project/bijux-canon-runtime/)
5
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-0F766E)](https://github.com/bijux/bijux-canon/blob/main/LICENSE)
6
+ [![CI Status](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-runtime.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-runtime.yml)
7
+ [![GitHub Repository](https://img.shields.io/badge/github-bijux%2Fbijux--canon-181717?logo=github)](https://github.com/bijux/bijux-canon)
8
+
9
+ [![bijux-canon-runtime](https://img.shields.io/pypi/v/bijux-canon-runtime?label=runtime&logo=pypi)](https://pypi.org/project/bijux-canon-runtime/)
10
+ [![bijux-canon-agent](https://img.shields.io/pypi/v/bijux-canon-agent?label=agent&logo=pypi)](https://pypi.org/project/bijux-canon-agent/)
11
+ [![bijux-canon-ingest](https://img.shields.io/pypi/v/bijux-canon-ingest?label=ingest&logo=pypi)](https://pypi.org/project/bijux-canon-ingest/)
12
+ [![bijux-canon-reason](https://img.shields.io/pypi/v/bijux-canon-reason?label=reason&logo=pypi)](https://pypi.org/project/bijux-canon-reason/)
13
+ [![bijux-canon-index](https://img.shields.io/pypi/v/bijux-canon-index?label=index&logo=pypi)](https://pypi.org/project/bijux-canon-index/)
14
+
15
+ [![agentic-flows](https://img.shields.io/pypi/v/agentic-flows?label=agentic--flows&logo=pypi)](https://pypi.org/project/agentic-flows/)
16
+ [![bijux-agent](https://img.shields.io/pypi/v/bijux-agent?label=bijux--agent&logo=pypi)](https://pypi.org/project/bijux-agent/)
17
+ [![bijux-rag](https://img.shields.io/pypi/v/bijux-rag?label=bijux--rag&logo=pypi)](https://pypi.org/project/bijux-rag/)
18
+ [![bijux-rar](https://img.shields.io/pypi/v/bijux-rar?label=bijux--rar&logo=pypi)](https://pypi.org/project/bijux-rar/)
19
+ [![bijux-vex](https://img.shields.io/pypi/v/bijux-vex?label=bijux--vex&logo=pypi)](https://pypi.org/project/bijux-vex/)
20
+
21
+ [![Runtime docs](https://img.shields.io/badge/docs-runtime-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-runtime/)
22
+ [![Agent docs](https://img.shields.io/badge/docs-agent-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-agent/)
23
+ [![Ingest docs](https://img.shields.io/badge/docs-ingest-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-ingest/)
24
+ [![Reason docs](https://img.shields.io/badge/docs-reason-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-reason/)
25
+ [![Index docs](https://img.shields.io/badge/docs-index-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-index/)
26
+
27
+ `bijux-canon-runtime` is the package that decides whether and how a flow runs,
28
+ what gets recorded about that run, and how a later replay should be judged. It
29
+ is the authority layer for execution, replay, runtime persistence, and
30
+ non-determinism governance.
31
+
32
+ If you need to understand plan versus run modes, replay acceptance, trace
33
+ capture, execution-store behavior, or non-determinism policy enforcement, start
34
+ here.
35
+
36
+ ## Legacy continuity
37
+
38
+ - compatibility package: [`agentic-flows`](https://pypi.org/project/agentic-flows/)
39
+ - legacy import root: `agentic_flows`
40
+ - legacy command: `agentic-flows`
41
+ - canonical migration guide: <https://bijux.io/bijux-canon/compat-packages/migration-guidance/>
42
+ - retired repository target: <https://github.com/bijux/agentic-flows>
43
+
44
+ ## What this package owns
45
+
46
+ - flow execution authority
47
+ - replay and acceptability semantics
48
+ - trace capture, runtime persistence, and execution-store behavior
49
+ - package-local CLI and API boundaries
50
+
51
+ ## What this package does not own
52
+
53
+ - agent composition policy
54
+ - ingest or index domain ownership
55
+ - repository tooling and release support
56
+
57
+ ## Source map
58
+
59
+ - [`src/bijux_canon_runtime/model`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/model) for durable runtime models
60
+ - [`src/bijux_canon_runtime/runtime`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/runtime) for execution engines and lifecycle logic
61
+ - [`src/bijux_canon_runtime/application`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/application) for orchestration and replay coordination
62
+ - [`src/bijux_canon_runtime/observability`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/observability) for trace capture, analysis, and storage support
63
+ - [`src/bijux_canon_runtime/interfaces`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/interfaces) and [`src/bijux_canon_runtime/api`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/src/bijux_canon_runtime/api) for boundaries
64
+ - [`tests`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/tests) and [`examples`](https://github.com/bijux/bijux-canon/tree/main/packages/bijux-canon-runtime/examples) for executable expectations and teaching material
65
+
66
+ ## Read this next
67
+
68
+ - [Package guide](https://bijux.io/bijux-canon/bijux-canon-runtime/)
69
+ - [Architecture](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/docs/ARCHITECTURE.md)
70
+ - [Boundaries](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/docs/BOUNDARIES.md)
71
+ - [Contracts](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/docs/CONTRACTS.md)
72
+ - [Compatibility packages](https://bijux.io/bijux-canon/compat-packages/)
73
+ - [Changelog](https://github.com/bijux/bijux-canon/blob/main/packages/bijux-canon-runtime/CHANGELOG.md)
74
+
75
+ ## Primary entrypoint
76
+
77
+ - console script: `bijux-canon-runtime`
@@ -0,0 +1,63 @@
1
+ # PyPI Publication Guide
2
+
3
+ Use this checklist when publishing `bijux-canon-runtime` from the monorepo.
4
+
5
+ ## Package Family Badges
6
+
7
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](https://pypi.org/project/bijux-canon-runtime/)
8
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-0F766E)](https://github.com/bijux/bijux-canon/blob/main/LICENSE)
9
+ [![CI: runtime](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-runtime.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-runtime.yml)
10
+ [![CI: agent](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-agent.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-agent.yml)
11
+ [![CI: ingest](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-ingest.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-ingest.yml)
12
+ [![CI: reason](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-reason.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-reason.yml)
13
+ [![CI: index](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-index.yml/badge.svg)](https://github.com/bijux/bijux-canon/actions/workflows/ci-bijux-canon-index.yml)
14
+
15
+ [![bijux-canon-runtime](https://img.shields.io/pypi/v/bijux-canon-runtime?label=runtime&logo=pypi)](https://pypi.org/project/bijux-canon-runtime/)
16
+ [![bijux-canon-agent](https://img.shields.io/pypi/v/bijux-canon-agent?label=agent&logo=pypi)](https://pypi.org/project/bijux-canon-agent/)
17
+ [![bijux-canon-ingest](https://img.shields.io/pypi/v/bijux-canon-ingest?label=ingest&logo=pypi)](https://pypi.org/project/bijux-canon-ingest/)
18
+ [![bijux-canon-reason](https://img.shields.io/pypi/v/bijux-canon-reason?label=reason&logo=pypi)](https://pypi.org/project/bijux-canon-reason/)
19
+ [![bijux-canon-index](https://img.shields.io/pypi/v/bijux-canon-index?label=index&logo=pypi)](https://pypi.org/project/bijux-canon-index/)
20
+
21
+ [![agentic-flows](https://img.shields.io/pypi/v/agentic-flows?label=agentic--flows&logo=pypi)](https://pypi.org/project/agentic-flows/)
22
+ [![bijux-agent](https://img.shields.io/pypi/v/bijux-agent?label=bijux--agent&logo=pypi)](https://pypi.org/project/bijux-agent/)
23
+ [![bijux-rag](https://img.shields.io/pypi/v/bijux-rag?label=bijux--rag&logo=pypi)](https://pypi.org/project/bijux-rag/)
24
+ [![bijux-rar](https://img.shields.io/pypi/v/bijux-rar?label=bijux--rar&logo=pypi)](https://pypi.org/project/bijux-rar/)
25
+ [![bijux-vex](https://img.shields.io/pypi/v/bijux-vex?label=bijux--vex&logo=pypi)](https://pypi.org/project/bijux-vex/)
26
+
27
+ [![Runtime docs](https://img.shields.io/badge/docs-runtime-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-runtime/)
28
+ [![Agent docs](https://img.shields.io/badge/docs-agent-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-agent/)
29
+ [![Ingest docs](https://img.shields.io/badge/docs-ingest-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-ingest/)
30
+ [![Reason docs](https://img.shields.io/badge/docs-reason-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-reason/)
31
+ [![Index docs](https://img.shields.io/badge/docs-index-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-canon/bijux-canon-index/)
32
+
33
+ ## Release intent
34
+
35
+ Publish this package when runtime execution, replay policy, persistence, or the
36
+ operator-facing contract changed in a way that users need to consume as a
37
+ versioned distribution.
38
+
39
+ ## Pre-publish checks
40
+
41
+ - run `make PACKAGE=bijux-canon-runtime lint`
42
+ - run `make PACKAGE=bijux-canon-runtime quality`
43
+ - run `make PACKAGE=bijux-canon-runtime test`
44
+ - confirm runtime metadata, README links, and migration notes still point to
45
+ the canonical `bijux-canon-runtime` package
46
+ - confirm the compatibility path for `agentic-flows` still matches the current
47
+ release story
48
+
49
+ ## Artifacts to review
50
+
51
+ - wheel and source distribution metadata
52
+ - CLI help for `bijux-canon-runtime`
53
+ - API schema outputs and schema-hash artifacts
54
+ - replay and persistence docs that operators use during incidents or upgrades
55
+
56
+ ## Publish notes
57
+
58
+ - tag the repository with the shared `v*` release pattern so every package,
59
+ including `bijux-canon-runtime`, resolves the same version
60
+ - publish only after changelog entries, runtime docs, and package metadata are
61
+ aligned
62
+ - if execution or replay contracts changed, verify the canonical docs before
63
+ uploading artifacts
@@ -0,0 +1,9 @@
1
+ # Example Datasets
2
+
3
+ This directory contains small, versioned datasets used to demonstrate and test
4
+ runtime replay behavior, especially around non-determinism and policy
5
+ evaluation.
6
+
7
+ These files are tracked with DVC so dataset hashes stay stable and auditable
8
+ across examples, docs, and test runs. If a dataset changes, treat that as part
9
+ of the replay story, not as incidental fixture churn.