monoid-agent-kernel 0.19.1__tar.gz → 0.19.2__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 (427) hide show
  1. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.github/workflows/ci.yml +14 -0
  2. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/CHANGELOG.md +47 -0
  3. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/PKG-INFO +1 -1
  4. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/COMPATIBILITY.md +22 -10
  5. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CONFORMANCE.md +71 -2
  6. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CONTRACTS.md +98 -10
  7. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/DBOS_REFERENCE.md +52 -24
  8. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/EMBEDDING.md +27 -17
  9. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/README.md +2 -2
  10. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/RUNNER_BACKEND_RESPONSIBILITY_MAP.md +4 -3
  11. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/security/PRODUCTION_CHECKLIST.md +7 -2
  12. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/embedding_local_product.py +4 -1
  13. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/pyproject.toml +1 -1
  14. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/_version.py +1 -1
  15. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/cli.py +59 -7
  16. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/__init__.py +115 -0
  17. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/fixtures/compatibility-v1.json +165 -0
  18. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/harness.py +26 -0
  19. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/profiles/minimal_agent.py +240 -0
  20. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/provenance.py +654 -0
  21. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/report.py +771 -0
  22. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/runner.py +465 -0
  23. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/verification.py +302 -0
  24. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/core/_event_log.py +503 -0
  25. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/compatibility.py +43 -7
  26. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/durable_codec.py +6 -1
  27. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/event_sequencing.py +11 -14
  28. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/projections.py +2 -11
  29. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/schemas.py +14 -8
  30. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/recorder.py +59 -20
  31. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/projection.py +17 -7
  32. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/service.py +20 -0
  33. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/conformance.py +130 -4
  34. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/dbos/_compat_226.py +743 -0
  35. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/dbos/control_plane.py +232 -12
  36. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/dbos/run_driver.py +231 -4
  37. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/dbos/runtime.py +692 -0
  38. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/event_index.py +416 -0
  39. monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/event_reader.py +593 -0
  40. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/chat_projection.py +7 -1
  41. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_compatibility_fixtures.py +12 -1
  42. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_external_runner.py +19 -0
  43. monoid_agent_kernel-0.19.2/tests/conformance/test_provenance.py +358 -0
  44. monoid_agent_kernel-0.19.2/tests/conformance/test_provenance_capture.py +416 -0
  45. monoid_agent_kernel-0.19.2/tests/conformance/test_report_versioning.py +445 -0
  46. monoid_agent_kernel-0.19.2/tests/conformance/test_runner_publication.py +809 -0
  47. monoid_agent_kernel-0.19.2/tests/conformance/test_verification.py +563 -0
  48. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/dbos_control_worker.py +73 -0
  49. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/dbos_run_worker.py +115 -16
  50. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_dbos_control.py +49 -0
  51. monoid_agent_kernel-0.19.2/tests/test_backend_dbos_run.py +277 -0
  52. monoid_agent_kernel-0.19.2/tests/test_backend_event_index.py +273 -0
  53. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_turn_recovery.py +8 -8
  54. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_compatibility_ledger.py +26 -2
  55. monoid_agent_kernel-0.19.2/tests/test_dbos_hosted_control.py +634 -0
  56. monoid_agent_kernel-0.19.2/tests/test_dbos_hosted_run.py +749 -0
  57. monoid_agent_kernel-0.19.2/tests/test_dbos_owned_runtime.py +641 -0
  58. monoid_agent_kernel-0.19.2/tests/test_dbos_runtime_host.py +1861 -0
  59. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_durable_codec.py +6 -0
  60. monoid_agent_kernel-0.19.2/tests/test_event_log.py +279 -0
  61. monoid_agent_kernel-0.19.2/tests/test_event_sequencing.py +381 -0
  62. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_observability.py +158 -1
  63. monoid_agent_kernel-0.19.2/tests/test_reference_event_index.py +739 -0
  64. monoid_agent_kernel-0.19.2/tests/test_reference_event_reader.py +818 -0
  65. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_chat_projection.py +22 -0
  66. monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/__init__.py +0 -57
  67. monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/fixtures/compatibility-v1.json +0 -46
  68. monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/profiles/minimal_agent.py +0 -112
  69. monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/report.py +0 -184
  70. monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/runner.py +0 -98
  71. monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/reference/dbos/runtime.py +0 -76
  72. monoid_agent_kernel-0.19.1/tests/test_backend_dbos_run.py +0 -153
  73. monoid_agent_kernel-0.19.1/tests/test_event_sequencing.py +0 -113
  74. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.env.example +0 -0
  75. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.gitattributes +0 -0
  76. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.github/workflows/publish.yml +0 -0
  77. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.gitignore +0 -0
  78. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.nvmrc +0 -0
  79. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/CODE_OF_CONDUCT.md +0 -0
  80. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/CONTRIBUTING.md +0 -0
  81. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/LICENSE +0 -0
  82. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/NOTICE +0 -0
  83. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/README.md +0 -0
  84. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/SECURITY.md +0 -0
  85. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/BACKEND.md +0 -0
  86. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CLI.md +0 -0
  87. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CORE_HELPER_KIT.md +0 -0
  88. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/FIRST_SKILL_TUTORIAL.md +0 -0
  89. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/OBSERVABILITY.md +0 -0
  90. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/OPERATIONAL_RULE_COVERAGE.md +0 -0
  91. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/PHASE_1S_COVERAGE.md +0 -0
  92. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/PHASE_4_CLOSURE.md +0 -0
  93. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/REFERENCE.md +0 -0
  94. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/SKILLS_DESIGN.md +0 -0
  95. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/SUBAGENT_DESIGN.md +0 -0
  96. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/TOOL_SURFACE.md +0 -0
  97. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/V0_18_RELEASE_AUDIT.md +0 -0
  98. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/a2a.png +0 -0
  99. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/hero.png +0 -0
  100. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v016-main.png +0 -0
  101. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v016-profile-builder.png +0 -0
  102. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v019-main.jpg +0 -0
  103. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v019-profile-builder.jpg +0 -0
  104. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v019-review-changes.jpg +0 -0
  105. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/security/SECURITY_MODEL.md +0 -0
  106. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/security/THREAT_MODEL.md +0 -0
  107. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/custom_model_adapter.py +0 -0
  108. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/custom_tool_quickstart.py +0 -0
  109. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/custom_tools/word_count_tool.py +0 -0
  110. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/embedding_hosted_product.py +0 -0
  111. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/full_stack_integration.py +0 -0
  112. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/memory_quickstart.py +0 -0
  113. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/messy_workspace_cleanup.py +0 -0
  114. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/minimal_quickstart.py +0 -0
  115. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/otel_tracing.py +0 -0
  116. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/redacting_event_sink.py +0 -0
  117. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/run-spec.json +0 -0
  118. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/runtime-config.json +0 -0
  119. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/workspaces/edit_markdown_notes/notes.md +0 -0
  120. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/__init__.py +0 -0
  121. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/_policy_util.py +0 -0
  122. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/_proc.py +0 -0
  123. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/builder.py +0 -0
  124. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/contracts.py +0 -0
  125. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/fixtures.py +0 -0
  126. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/__init__.py +0 -0
  127. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/_metadata.py +0 -0
  128. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/capability_security.py +0 -0
  129. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/control_plane.py +0 -0
  130. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/durable_runner.py +0 -0
  131. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/message_fabric.py +0 -0
  132. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/multi_agent.py +0 -0
  133. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/provider_gateway.py +0 -0
  134. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/reference_full.py +0 -0
  135. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/side_effect_tool_agent.py +0 -0
  136. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/tool_agent.py +0 -0
  137. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/contracts.py +0 -0
  138. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/__init__.py +0 -0
  139. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/_util.py +0 -0
  140. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/agents.py +0 -0
  141. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/cancellation.py +0 -0
  142. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/capability.py +0 -0
  143. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/capability_revocation.py +0 -0
  144. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/checkpoint.py +0 -0
  145. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/content.py +0 -0
  146. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/context.py +0 -0
  147. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/control.py +0 -0
  148. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/control_audit.py +0 -0
  149. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/durable_metadata.py +0 -0
  150. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/event_subscription.py +0 -0
  151. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/events.py +0 -0
  152. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/external_agent_envelope.py +0 -0
  153. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/frontmatter.py +0 -0
  154. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/inbox.py +0 -0
  155. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/lease_admission.py +0 -0
  156. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/lifecycle.py +0 -0
  157. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/manifest.py +0 -0
  158. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/media.py +0 -0
  159. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/outbox.py +0 -0
  160. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/output_validator.py +0 -0
  161. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/packages.py +0 -0
  162. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/prompt.py +0 -0
  163. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/proposal_file.py +0 -0
  164. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/result.py +0 -0
  165. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/scope.py +0 -0
  166. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/side_effect_policy.py +0 -0
  167. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/spec.py +0 -0
  168. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/streaming.py +0 -0
  169. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/subagent_runtime.py +0 -0
  170. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/tool_approval.py +0 -0
  171. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/tool_surface.py +0 -0
  172. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/trace_context.py +0 -0
  173. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/wire_validation.py +0 -0
  174. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/workspace.py +0 -0
  175. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/workspace_index.py +0 -0
  176. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/env.py +0 -0
  177. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/errors.py +0 -0
  178. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/event_loader.py +0 -0
  179. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/identifiers.py +0 -0
  180. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/loop.py +0 -0
  181. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/loop_phases.py +0 -0
  182. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/mcp/__init__.py +0 -0
  183. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/mcp/client.py +0 -0
  184. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/mcp/provider.py +0 -0
  185. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/memory.py +0 -0
  186. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/narration.py +0 -0
  187. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/observability/__init__.py +0 -0
  188. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/observability/otel.py +0 -0
  189. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/permissions.py +0 -0
  190. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/__init__.py +0 -0
  191. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/_common.py +0 -0
  192. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/base.py +0 -0
  193. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/fake.py +0 -0
  194. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/gateway.py +0 -0
  195. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/openai.py +0 -0
  196. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/public_view.py +0 -0
  197. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/py.typed +0 -0
  198. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/__init__.py +0 -0
  199. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/__init__.py +0 -0
  200. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/control_transport.py +0 -0
  201. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/http_util.py +0 -0
  202. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/tokens.py +0 -0
  203. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/__init__.py +0 -0
  204. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/commands.py +0 -0
  205. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/http.py +0 -0
  206. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/jobs.py +0 -0
  207. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/loop_factory.py +0 -0
  208. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/outbox_dispatch.py +0 -0
  209. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/ports.py +0 -0
  210. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/proposal.py +0 -0
  211. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/proposal_reader.py +0 -0
  212. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/recovery.py +0 -0
  213. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_execution.py +0 -0
  214. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_preparation.py +0 -0
  215. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_state.py +0 -0
  216. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_types.py +0 -0
  217. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/runtime_config.py +0 -0
  218. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/session.py +0 -0
  219. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/session_drive.py +0 -0
  220. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/capability.py +0 -0
  221. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/command_inbox.py +0 -0
  222. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/dbos/__init__.py +0 -0
  223. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/__init__.py +0 -0
  224. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/http.py +0 -0
  225. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/providers.py +0 -0
  226. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/service.py +0 -0
  227. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/mcp_gateway/__init__.py +0 -0
  228. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/mcp_gateway/http.py +0 -0
  229. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/mcp_gateway/service.py +0 -0
  230. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/outbox.py +0 -0
  231. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/stores/__init__.py +0 -0
  232. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/stores/lease.py +0 -0
  233. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/stores/sqlite.py +0 -0
  234. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/README.md +0 -0
  235. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/__init__.py +0 -0
  236. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/activity.py +0 -0
  237. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/cli.py +0 -0
  238. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/code-review-checklist/SKILL.md +0 -0
  239. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/code-review-checklist/references/review-checklist.md +0 -0
  240. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/commit-message/SKILL.md +0 -0
  241. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/incident-summary/SKILL.md +0 -0
  242. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/incident-summary/references/incident-template.md +0 -0
  243. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/release-notes/SKILL.md +0 -0
  244. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/release-notes/references/release-note-template.md +0 -0
  245. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/sample-skills/release-notes/scripts/collect_changes.py +0 -0
  246. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/server.py +0 -0
  247. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/dist/assets/index-DOYa7R5h.js +0 -0
  248. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/dist/assets/index-GoYjJIxI.css +0 -0
  249. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/dist/index.html +0 -0
  250. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/auto-render.min.js +0 -0
  251. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  252. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  253. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  254. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  255. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  256. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  257. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  258. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  259. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  260. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  261. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  262. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  263. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  264. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  265. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  266. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  267. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  268. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  269. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  270. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  271. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/katex.min.css +0 -0
  272. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/vendor/katex/katex.min.js +0 -0
  273. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/window.py +0 -0
  274. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/__init__.py +0 -0
  275. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/http.py +0 -0
  276. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/providers.py +0 -0
  277. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/service.py +0 -0
  278. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/shell.py +0 -0
  279. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/__init__.py +0 -0
  280. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/definition.py +0 -0
  281. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/loader.py +0 -0
  282. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/provider.py +0 -0
  283. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/subagent_loader.py +0 -0
  284. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tasks.py +0 -0
  285. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_loader.py +0 -0
  286. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/__init__.py +0 -0
  287. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/base.py +0 -0
  288. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/jobs.py +0 -0
  289. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/shell.py +0 -0
  290. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/web.py +0 -0
  291. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/__init__.py +0 -0
  292. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/base.py +0 -0
  293. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/builtin.py +0 -0
  294. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/decorator.py +0 -0
  295. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/defaults.py +0 -0
  296. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/tool_ids.py +0 -0
  297. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/web.py +0 -0
  298. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/workspace/__init__.py +0 -0
  299. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/workspace/local.py +0 -0
  300. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/workspace/paths.py +0 -0
  301. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/native_agent_runner/__init__.py +0 -0
  302. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/native_agent_runner/py.typed +0 -0
  303. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_capability_revocation_profile.py +0 -0
  304. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_capability_security_profile.py +0 -0
  305. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_control_plane_profile.py +0 -0
  306. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_durable_runner_profile.py +0 -0
  307. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_import_boundaries.py +0 -0
  308. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_message_fabric_profile.py +0 -0
  309. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_multi_agent_profile.py +0 -0
  310. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_provider_gateway_profile.py +0 -0
  311. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_reference_full_profile.py +0 -0
  312. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_side_effect_tool_agent_profile.py +0 -0
  313. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_skeleton.py +0 -0
  314. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_tool_agent_profile.py +0 -0
  315. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conftest.py +0 -0
  316. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/__init__.py +0 -0
  317. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/backend.py +0 -0
  318. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/backend_factory.py +0 -0
  319. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/backend_harness.py +0 -0
  320. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/http.py +0 -0
  321. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/mcp.py +0 -0
  322. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/process.py +0 -0
  323. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/runtime.py +0 -0
  324. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/studio_harness.py +0 -0
  325. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/test_tiers.py +0 -0
  326. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/waiting.py +0 -0
  327. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_agent_loop_lifecycle.py +0 -0
  328. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_agent_runtime_config.py +0 -0
  329. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_async_loop.py +0 -0
  330. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_async_tools.py +0 -0
  331. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend.py +0 -0
  332. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_command_inbox.py +0 -0
  333. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_control.py +0 -0
  334. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_event_subscription.py +0 -0
  335. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_http_api.py +0 -0
  336. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_media.py +0 -0
  337. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_providers.py +0 -0
  338. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_recovery.py +0 -0
  339. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_runtime_config.py +0 -0
  340. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_stream.py +0 -0
  341. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_watchdog.py +0 -0
  342. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_builder_cli.py +0 -0
  343. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_cancellation.py +0 -0
  344. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_canonical_hash.py +0 -0
  345. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_capability.py +0 -0
  346. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_capability_broker_contract.py +0 -0
  347. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_capability_revocation.py +0 -0
  348. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_checkpoint.py +0 -0
  349. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_checkpoint_store_contract.py +0 -0
  350. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_cli_and_openai.py +0 -0
  351. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_command_store_contract.py +0 -0
  352. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_content_parts.py +0 -0
  353. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_context_providers.py +0 -0
  354. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_dbos_control_models.py +0 -0
  355. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_dbos_run_driver.py +0 -0
  356. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_dbos_run_models.py +0 -0
  357. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_durability_fault_matrix.py +0 -0
  358. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_durable_metadata.py +0 -0
  359. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_event_data_schema.py +0 -0
  360. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_event_subscription.py +0 -0
  361. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_examples.py +0 -0
  362. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_external_agent_envelope.py +0 -0
  363. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_external_agent_envelope_properties.py +0 -0
  364. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_external_implementation_contract.py +0 -0
  365. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_file_lock.py +0 -0
  366. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_frontmatter.py +0 -0
  367. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_gateway_provider.py +0 -0
  368. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_hitl.py +0 -0
  369. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_inbox.py +0 -0
  370. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_inbox_outbox_properties.py +0 -0
  371. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_jobs.py +0 -0
  372. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_lease_admission.py +0 -0
  373. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_lease_store_contract.py +0 -0
  374. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_llm_gateway_backend.py +0 -0
  375. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_llm_gateway_stream.py +0 -0
  376. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_loop.py +0 -0
  377. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_mcp.py +0 -0
  378. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_mcp_gateway.py +0 -0
  379. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_media.py +0 -0
  380. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_memory.py +0 -0
  381. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_multimodal_forwarding.py +0 -0
  382. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_namespace_compat.py +0 -0
  383. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_narration.py +0 -0
  384. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_openai_adapter.py +0 -0
  385. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_otel.py +0 -0
  386. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_outbox.py +0 -0
  387. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_output_validator.py +0 -0
  388. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_prompt_composition.py +0 -0
  389. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_proposal_package.py +0 -0
  390. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_public_surface.py +0 -0
  391. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_pump.py +0 -0
  392. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_release_packaging.py +0 -0
  393. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_scenario_scoring.py +0 -0
  394. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_scope_relation.py +0 -0
  395. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_scope_relation_properties.py +0 -0
  396. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_session_drive.py +0 -0
  397. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_session_lifecycle.py +0 -0
  398. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_shell.py +0 -0
  399. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_side_effect_policy.py +0 -0
  400. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_skills.py +0 -0
  401. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_spec_serialization.py +0 -0
  402. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio.py +0 -0
  403. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_cli.py +0 -0
  404. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_proposals.py +0 -0
  405. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_sessions.py +0 -0
  406. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_settings.py +0 -0
  407. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_shell_web.py +0 -0
  408. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_skills_mcp.py +0 -0
  409. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_subagent.py +0 -0
  410. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_subagent_runtime_context.py +0 -0
  411. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_test_tiering.py +0 -0
  412. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tokens.py +0 -0
  413. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_approval.py +0 -0
  414. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_decorator.py +0 -0
  415. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_ids.py +0 -0
  416. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_result_envelope.py +0 -0
  417. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_services.py +0 -0
  418. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_surface.py +0 -0
  419. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tools.py +0 -0
  420. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_trace_context.py +0 -0
  421. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_usage_accounting.py +0 -0
  422. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_web_gateway.py +0 -0
  423. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_wire_validation.py +0 -0
  424. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_contract.py +0 -0
  425. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_paths_properties.py +0 -0
  426. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_permissions.py +0 -0
  427. {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_protocol.py +0 -0
@@ -146,6 +146,10 @@ jobs:
146
146
  tests/test_backend_dbos_run.py
147
147
  tests/test_backend_dbos_control.py
148
148
  tests/test_dbos_control_models.py
149
+ tests/test_dbos_hosted_control.py
150
+ tests/test_dbos_hosted_run.py
151
+ tests/test_dbos_owned_runtime.py
152
+ tests/test_dbos_runtime_host.py
149
153
  tests/test_dbos_run_driver.py
150
154
  tests/test_dbos_run_models.py
151
155
  --durations=10
@@ -179,6 +183,16 @@ jobs:
179
183
  - name: Verify optional dependencies
180
184
  if: matrix.install == 'all-extras'
181
185
  run: python -c "import dbos, openai, httpx, opentelemetry.sdk"
186
+ - name: Run installed conformance evidence smoke
187
+ if: matrix.install == 'minimal'
188
+ working-directory: ${{ runner.temp }}
189
+ run: |
190
+ python -m monoid_agent_kernel.conformance.runner \
191
+ --harness monoid_agent_kernel.reference.conformance:create_minimal_harness \
192
+ --json-out conformance.json \
193
+ --junit-out conformance.xml \
194
+ --evidence-dir conformance-evidence
195
+ python -c "from pathlib import Path; from monoid_agent_kernel.conformance import read_conformance_report, verify_conformance_report; loaded = read_conformance_report(Path('conformance.json')); assert loaded.status == 'loaded' and loaded.value is not None; report = loaded.value; reference = report.evidence[0]; result = verify_conformance_report(report, {reference.evidence_id: (Path('conformance-evidence') / reference.resource.name).read_bytes()}); assert result.verified and result.report_passed"
182
196
  - name: Run minimal Studio acceptance from installed package
183
197
  if: matrix.install == 'minimal'
184
198
  working-directory: ${{ runner.temp }}
@@ -7,6 +7,53 @@ out in commit messages and here.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.19.2] - 2026-07-19
11
+
12
+ ### Added
13
+
14
+ - Added a Reference-private single-handle, snapshot-bounded event page reader with
15
+ monotonic-prefix and content-verified byte-offset anchors plus raw-read source-work metrics,
16
+ supplying the sparse index's verified scan primitive while preserving Core cursor semantics
17
+ inside the protected append-only run-directory boundary.
18
+ - Added a Reference-private process-local sparse offset index that retains verified anchors,
19
+ stages bounded candidates during successful page scans, performs logarithmic warm lookup, and
20
+ rebuilds safely after detected source invalidation or process restart.
21
+ - Bounded the sparse index's retained source slots with a pinned least-recently-used policy and
22
+ an authoritative uncached fallback for saturated admission, plus cache-capacity metrics.
23
+ - Wired one backend-owned sparse event index into root, descendant, and diagnostics projections,
24
+ with configurable retained-source capacity and unchanged Core subscription semantics.
25
+ - Added exact-byte conformance evidence descriptors plus a checked reader that reads retained v1
26
+ reports into the current typed provenance model with provenance explicitly unavailable.
27
+ - Added offline minimal-agent report verification of exact-byte digest integrity, sanitized
28
+ self-asserted target metadata, profile binding, lifecycle completeness, rule-reference coverage,
29
+ and internal report/evidence semantic consistency.
30
+ - Added opt-in v2 external reports. When `--evidence-dir` is supplied with an evidence-capable
31
+ adapter, the runner retains content-addressed normalized evidence, binds all four rules to its
32
+ content-addressed evidence reference, self-verifies, then publishes retained evidence and
33
+ configured JUnit/JSON outputs before stdout. Default report-only and legacy adapter runs preserve
34
+ the v1 output contract.
35
+ - Added a Reference-private DBOS 2.26 owned-runtime adapter that binds workflow registration,
36
+ identity-scoped enqueue and retrieval, queue, launch, and shutdown operations to one captured
37
+ singleton and registry, rejects Cloud/Conductor mode, and verifies global identity plus
38
+ DBOS-owned thread cleanup before ownership release.
39
+ - Added a single-owner Reference-private DBOS runtime host that composes hosted control and run
40
+ participants under one captured runtime, with deterministic workflow identity, an explicit
41
+ shared surface-configuration contract, pre-launch workflow/listener aggregation, one
42
+ launch/shutdown lifecycle, pre-destroy admission drain, deadline-bounded close, and process
43
+ fencing when participant drain or ownership verification is uncertain.
44
+ - Added a Reference-private hosted control participant that defers workflow, queue, admission,
45
+ and shutdown ownership to the single DBOS runtime host while preserving standalone behavior.
46
+ - Added a Reference-private hosted run participant with host-owned workflow, queue, admission,
47
+ active-drive, and shutdown lifecycle while keeping checkpoint semantics portable.
48
+
49
+ ### Fixed
50
+
51
+ - Projected MIN-03 result identity and completion checks as booleans so raw run identifiers and
52
+ result status strings do not enter conformance report projections.
53
+ - Treated newline-terminated event-log records as committed and repaired uncommitted crash
54
+ fragments before recorder or direct append, preventing malformed concatenation and sequence
55
+ reuse during restart. Committed records with invalid sequence fields now fail closed.
56
+
10
57
  ## [0.19.1] - 2026-07-16
11
58
 
12
59
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monoid-agent-kernel
3
- Version: 0.19.1
3
+ Version: 0.19.2
4
4
  Summary: Lightweight durable agent kernel for product integrations
5
5
  Project-URL: Homepage, https://github.com/hoonseokyoon/monoid-agent-kernel
6
6
  Project-URL: Repository, https://github.com/hoonseokyoon/monoid-agent-kernel
@@ -5,12 +5,15 @@ namespace aliases, and source aliases. The machine-readable source is
5
5
  `monoid_agent_kernel.core.compatibility.PUBLIC_ARTIFACT_COMPATIBILITY`; the table below is
6
6
  checked against it in CI.
7
7
 
8
- Experimental optional Reference profiles are outside this stable inventory. In v0.18,
9
- `DbosResumeCommand` and `DbosRunReceipt` are experimental Reference operational records for the
10
- finite-activation proof. Core compatibility excludes them. Keep the DBOS `application_version`
11
- stable while pending work must recover, drain that work before an incompatible workflow change,
12
- and treat their exported version constants as local profile identifiers without a rolling-reader
13
- guarantee. DBOS types and upgrade policy stay inside the optional Reference profile.
8
+ Experimental optional Reference profiles sit outside this stable inventory. v0.19.2 treats
9
+ `DbosResumeCommand`, `DbosRunReceipt`, and the DBOS-specific control envelope as experimental
10
+ Reference operational records for the finite-activation profile. Their compatibility belongs to
11
+ the DBOS profile rather than Core. Control workflow output uses the stable writer-only
12
+ `CommandReceipt` listed below. Keep the DBOS `application_version` stable while pending work must
13
+ recover, drain that work before an incompatible workflow change, and treat exported DBOS version
14
+ constants and the internal control-envelope version as local profile identifiers without a
15
+ rolling-reader guarantee. DBOS types and upgrade policy stay inside the optional Reference
16
+ profile.
14
17
 
15
18
  ## Reader policy
16
19
 
@@ -23,8 +26,10 @@ guarantee. DBOS types and upgrade policy stay inside the optional Reference prof
23
26
  accept unknown identifiers.
24
27
  - `writer-only` formats have a public producer and no public serialized reader contract.
25
28
 
26
- `Missing id accepted` records an existing compatibility behavior. New producers must always
27
- write the current identifier.
29
+ `current_writer` is the default producer identifier. The machine-readable `active_writers` tuple
30
+ lists every identifier this release can emit; most artifacts contain only `current_writer`.
31
+ `Missing id accepted` records an existing compatibility behavior. New producers write
32
+ `current_writer` unless a documented variant selects another active writer.
28
33
 
29
34
  ## Versioned artifact inventory
30
35
 
@@ -60,12 +65,18 @@ write the current identifier.
60
65
  | `failure` | durable | `monoid.failure.v1` | permissive; missing id accepted | `monoid.failure.v1`<br>`native-agent-runner.failure.v1` |
61
66
  | `command-inbox` | durable | `monoid.command-inbox.v1` | strict | `monoid.command-inbox.v1` |
62
67
  | `command-receipt` | wire | `monoid.command-receipt.v1` | writer-only | None (writer-only) |
63
- | `conformance-report` | reference | `monoid.conformance-report.v1` | writer-only | None (writer-only) |
68
+ | `conformance-report` | reference | `monoid.conformance-report.v1` | checked | `monoid.conformance-report.v1`<br>`monoid.conformance-report.v2` |
69
+ | `conformance-evidence` | reference | `monoid.conformance-evidence.v1` | strict | `monoid.conformance-evidence.v1` |
64
70
  | `conformance-fixtures` | reference | `monoid.conformance-fixtures.v1` | strict | `monoid.conformance-fixtures.v1` |
65
71
  | `studio-chat` | reference | `studio.chat.v1` | strict | `studio.chat.v1` |
66
72
  | `studio-chat-message` | reference | `studio.chat.message.v1` | permissive; missing id accepted | `studio.chat.message.v1` |
67
73
  <!-- compatibility-registry:end -->
68
74
 
75
+ The v0.19.2 conformance rollout keeps the default external report writer on v1 and adds an opt-in
76
+ v2 evidence path after deploying its checked reader. Retained v1 reports migrate into the v2 typed
77
+ model with provenance explicitly marked unavailable. `--evidence-dir` emits v2 when an enhanced
78
+ adapter supplies retained evidence; consumers of that output need a v2 reader.
79
+
69
80
  Source locations and format-specific notes are available through
70
81
  `compatibility_registry()`. Integrators can serialize that result directly as JSON.
71
82
 
@@ -131,7 +142,8 @@ a web call, control delivery, and checkpoint resume before advancing the rollout
131
142
  4. Deploy readers first: gateways and backend recovery workers before clients and run workers.
132
143
  5. Resume a non-terminal checkpoint canary and verify its run metadata, event sequence, queued
133
144
  messages, hosted tasks, and blob references.
134
- 6. Enable new writers. Confirm they emit the registry's `current_writer` identifiers.
145
+ 6. Enable new writers. Confirm each emitted identifier appears in the registry's `active_writers`;
146
+ use `current_writer` for the default producer path.
135
147
  7. Retain the pre-upgrade snapshot until recovery, Studio projection, proposal verification,
136
148
  and gateway smoke checks pass.
137
149
 
@@ -50,6 +50,8 @@ optional external-agent envelope profile for runtimes that exchange messages wit
50
50
  The conformance package defines profile-specific Protocol families:
51
51
 
52
52
  - `MinimalAgentHarness`: reports one submission-to-result lifecycle and its event sequence.
53
+ - `MinimalAgentEvidenceHarness`: optionally returns the same case with a closed, secret-minimized
54
+ evidence bundle from one invocation.
53
55
  - `ToolAgentHarness`: runs tool surface admission and generic approval behavior cases.
54
56
  - `ControlPlaneHarness`: runs decision and control audit sequencing behavior cases.
55
57
  - `DurableRunnerHarness`: runs event sequence, recovery metadata, and subagent diagnostics cases.
@@ -78,7 +80,8 @@ python -m monoid_agent_kernel.conformance.runner \
78
80
  --harness your_package.conformance:create_harness \
79
81
  --profile minimal-agent \
80
82
  --json-out build/conformance.json \
81
- --junit-out build/conformance.xml
83
+ --junit-out build/conformance.xml \
84
+ --evidence-dir build/conformance-evidence
82
85
  ```
83
86
 
84
87
  Exit code `0` means every rule passed, `1` means at least one rule failed, and `2` means the runner
@@ -87,12 +90,78 @@ observations. `load_compatibility_fixtures()` supplies packaged historical wire
87
90
  payloads for downstream reader tests. JSON, JUnit, and console diagnostics retain a safe exception
88
91
  category and redact the exception body; keep raw stack traces in protected implementation logs.
89
92
 
90
- The v0.18 command-line runner executes the `minimal-agent` profile. Other profile harnesses remain
93
+ The command-line runner executes the `minimal-agent` profile. Other profile harnesses remain
91
94
  Python test integrations. Store and broker implementers call
92
95
  `run_checkpoint_store_contract(factory, root)` and `run_capability_broker_contract(factory)`
93
96
  directly from their own pytest suites or CI tools. These functions return the same typed rule
94
97
  outcomes and carry no pytest dependency.
95
98
 
99
+ ## Provenance and retained evidence
100
+
101
+ An evidence-retaining v2 report marks provenance `available` only while the caller owns the exact
102
+ evidence bytes. The command-line runner emits that report when `--evidence-dir` is present and the
103
+ adapter implements `MinimalAgentEvidenceHarness`. A report-only call or a legacy adapter preserves
104
+ the v1 output contract. Programmatic callers use
105
+ `monoid_agent_kernel.conformance.runner.execute_conformance(..., retain_evidence=True)` to receive
106
+ the report and exact evidence artifacts from the same invocation.
107
+
108
+ One normalized lifecycle bundle supports all four `MIN-*` outcomes. Every outcome references the
109
+ stable evidence id `minimal-agent.lifecycle`. The runner stores the bytes under a content-addressed
110
+ name such as:
111
+
112
+ ```text
113
+ minimal-agent.lifecycle.sha256-<64 lowercase hexadecimal digits>.json
114
+ ```
115
+
116
+ Resolve an artifact as `evidence_dir / report.evidence[0].resource.name`. The runner verifies the
117
+ assembled report and bytes before publication, reuses an identical content-addressed artifact,
118
+ and rejects conflicting content without overwriting it. Evidence publication requires atomic
119
+ no-replace support; the runner fails before publishing the report when that primitive is
120
+ unavailable. Publication writes evidence first,
121
+ JUnit second, JSON last, and stdout after file outputs succeed. JSON plus retained evidence is the
122
+ authoritative verification set. JUnit remains a secondary xUnit2-compatible CI projection with
123
+ suite-level target, evidence, and per-rule reference descriptors; it never embeds the raw evidence
124
+ bundle. Give each concurrent runner its own mutable JSON and JUnit destinations; content-addressed
125
+ evidence directories may be shared.
126
+
127
+ Offline verification does not invoke the original harness:
128
+
129
+ ```python
130
+ from pathlib import Path
131
+
132
+ from monoid_agent_kernel.conformance import (
133
+ read_conformance_report,
134
+ verify_conformance_report,
135
+ )
136
+
137
+ report_path = Path("build/conformance.json")
138
+ evidence_dir = Path("build/conformance-evidence")
139
+ loaded = read_conformance_report(report_path)
140
+ assert loaded.status == "loaded" and loaded.value is not None
141
+ report = loaded.value
142
+ assert report.provenance_status == "available"
143
+ reference = report.evidence[0]
144
+ result = verify_conformance_report(
145
+ report,
146
+ {reference.evidence_id: (evidence_dir / reference.resource.name).read_bytes()},
147
+ )
148
+ assert result.verified
149
+ ```
150
+
151
+ The closed evidence schema retains sanitized target identity, a domain-separated case fingerprint,
152
+ lifecycle scalars, and event sequence/type pairs. It excludes raw run ids, provider errors, event
153
+ payloads, model text, tool arguments, tokens, timestamps, filesystem paths, and environment data.
154
+ `harness_id` is public adapter metadata; adapters must keep credentials, paths, and user data out of
155
+ that field. The JUnit projection renders XML-forbidden code points as visible `#xHEX` tokens so
156
+ public metadata cannot produce malformed XML.
157
+
158
+ The harness adapter is the trusted translator and asserts that the normalized bundle reflects the
159
+ tested runtime. Offline report verification first checks exact-byte digest integrity, then checks
160
+ target/profile binding, lifecycle completeness, rule-reference coverage, and internal
161
+ report/evidence semantic consistency. Target metadata remains a sanitized self-assertion. Producer
162
+ authenticity, freshness, and adapter honesty require a trusted distribution channel, signature, or
163
+ external attestation.
164
+
96
165
  ## Reference Full
97
166
 
98
167
  The `reference-full` profile runs the bundled Reference implementation through the concrete current
@@ -626,7 +626,89 @@ redrive.
626
626
  `from_seq` remains inclusive for backward compatibility. When `limit` is present, callers resume
627
627
  with `from_seq=next_seq` to avoid duplicates; omitting `limit` preserves the historical "return all
628
628
  events from N" behavior. `RunnerBackend.descendant_events(...)` uses the same pagination contract
629
- for subagent event streams authorized through an ancestor run token.
629
+ for subagent event streams authorized through an ancestor run token. Stored event sequences are
630
+ positive integers; `from_seq=0` remains the valid cursor for reading from before the first event.
631
+
632
+ The physical JSONL commit marker is the terminating newline. Readers withhold any trailing bytes
633
+ after the last newline, including an otherwise valid JSON object. Before a recorder or guarded
634
+ direct append reopens the log, it removes that uncommitted suffix only when the status watermark
635
+ does not advertise a later event. A later watermark or a malformed newline-terminated tail fails
636
+ closed without changing the file. Logical `seq` values remain the public cursor; binary offsets
637
+ are private storage details. Tail preparation runs only after the existing queued, live, or
638
+ terminal sequence-owner decision; it validates storage and does not elect another writer. Status
639
+ acts only as a contradiction guard. Writer restart continues to validate all committed sequences
640
+ and fails on duplicate or decreasing physical values; the derived read index never seeds writers.
641
+
642
+ The Reference package also provides an internal snapshot-bounded page-scan primitive that can
643
+ begin at a content-verified `(seq, byte offset, next byte offset, record digest)` anchor. Tail
644
+ capture, bounded scan, and tail-witness verification share one open file description, so pathname
645
+ replacement cannot mix records from different files in one page. A concurrent append stays outside
646
+ the captured committed prefix. The result reports decoded records, logical scan span, and raw bytes
647
+ fetched by the Reference reader, including fixed-size buffer read-ahead, for deterministic scale
648
+ tests.
649
+
650
+ The run directory is a protected append-only trust boundary. Deployments reserve run-artifact write
651
+ access for runtime event and metadata owners. Committed event records are immutable, and tool
652
+ workspaces and untrusted processes have no write access to run artifacts. Persistent anchors derive
653
+ transitively from a contiguous prefix originally verified from byte zero. Each warm seek rechecks
654
+ the source identity and nonshrinking committed extent, then verifies the anchored record at its byte
655
+ offset. The current snapshot's committed tail witness is verified before new anchors are minted.
656
+ The in-memory primitive accepts only anchors minted while scanning a strictly increasing prefix.
657
+ Within this boundary, every skipped prefix sequence remains below the anchor sequence, preserving
658
+ Core page results.
659
+ Each proof is process-local and bound to the normalized source path, open-file identity, and captured
660
+ source metadata; copied or field-tampered anchors, cross-log anchors, truncated sources, and
661
+ same-size sources with a changed modification timestamp fail closed. A persisted index row remains
662
+ an untrusted candidate after process restart and must be reverified from byte zero before minting a
663
+ fresh in-memory proof.
664
+
665
+ A same-inode prefix rewrite followed by suffix growth violates this trust boundary and is
666
+ indistinguishable from a valid append through portable path, inode, timestamp, and size metadata. A
667
+ live warm anchor can therefore skip rewritten earlier records. A new process verifies the current
668
+ bytes from zero. Detecting this mutation while retaining bounded warm I/O requires future
669
+ writer-authenticated generation lineage. The Reference projection injects this reader behind its
670
+ private page-reader seam; Core subscriptions and the authoritative from-zero reader remain
671
+ storage-neutral.
672
+
673
+ `ReferenceEventOffsetIndex` is the internal warm-read coordinator for those anchors. It retains the
674
+ first verified record, sparse anchors at fixed byte or record strides, and the newest verified
675
+ record as strong process-local references. One per-source lock single-flights cold construction;
676
+ different event logs remain independent. A page scan stages only lightweight stride-selected
677
+ candidates plus its newest safe-prefix candidate. It mints and publishes anchor capabilities after
678
+ the captured snapshot passes final verification. Path replacement, committed-prefix truncation,
679
+ physical shrink, a detected same-size rewrite, or an expired proof clears the derived state and
680
+ permits one authoritative from-zero retry. Committed event-log corruption remains authoritative and
681
+ propagates unchanged.
682
+
683
+ The index retains at most 128 source slots by default. Its `max_sources` constructor setting defines
684
+ that hard retained-slot capacity; `RunnerBackend.event_index_max_sources` configures the owned
685
+ Reference instance. Page reads pin admitted slots before taking the per-source I/O lock, so
686
+ concurrent readers for one retained cold source share one construction. A miss replaces the
687
+ least-recently-used idle slot. When every retained slot is active, a miss reads one authoritative
688
+ snapshot from byte zero without creating a slot or anchor capabilities. This bypass preserves event
689
+ delivery and the hard metadata bound. It uses an independent snapshot, and another read can repeat
690
+ that cold work until capacity becomes available. Capacity zero routes every read through this
691
+ authoritative uncached path.
692
+
693
+ `cache_stats()` exposes retained sources, pins, page-read hits and misses, idle-slot evictions, and
694
+ saturated bypasses. `stats()` and `invalidate()` create no slots and leave recency unchanged. An
695
+ evicted source verifies from byte zero on its next read, so deployments size `max_sources` for the
696
+ hot polled-source working set. Source capacity bounds retained slot and capability metadata;
697
+ per-source sparse-anchor density remains governed by the byte and record strides.
698
+
699
+ A new process starts with an empty offset index. Its first relevant read verifies JSONL from byte
700
+ zero while rebuilding sparse anchors; later pages and append-only-conforming same-process appends
701
+ extend from the retained tail. Persisting candidate offsets cannot reduce that required verification
702
+ under the current process-local proof contract. Constant-work restart remains coupled to the future
703
+ writer-authenticated generation lineage.
704
+
705
+ Each `RunnerBackend` owns one index and injects its page reader into `RunProjectionService`. Root
706
+ events, authorized descendant events, and diagnostics share that instance. Authorization and
707
+ descendant-lineage validation complete before cache admission. Backend JSON, SSE, Studio transports,
708
+ `SequenceCursor`, Last-Event-ID resume, heartbeat emission, and terminal final draining continue to
709
+ consume the same `{events, next_seq, has_more}` page shape. Backend shutdown leaves the cache alone
710
+ because shutdown is a non-terminal operational stop and Studio ingress can still be active; bounded
711
+ capacity supplies the process-lifetime memory control.
630
712
 
631
713
  `SequenceCursor` and `EventSubscription` turn that inclusive page API into a reusable next-sequence
632
714
  subscription. A cursor advances only after an event is presented, suppresses replayed sequences,
@@ -1140,14 +1222,19 @@ competing input.
1140
1222
  each run (re-issuing gateway tokens from the signing key, **re-provisioning the base workspace**
1141
1223
  is the deployment's job), `restore()`s the loop with the store's blobs, re-enqueues durably-saved
1142
1224
  follow-up messages, and resumes.
1143
- - The experimental v0.18 DBOS activation-recovery profile has a narrower operational scope. One
1225
+ - The experimental v0.19.2 DBOS activation-recovery profile has a narrow operational scope. One
1144
1226
  stable executor slot has one active process; a restart reuses the same executor identity and
1145
- application version after the prior process terminates or is fenced. DBOS schedules and retries
1146
- one finite activation. The configured `CheckpointStore` remains authoritative for checkpoint
1147
- sequence, input deduplication, the committed boundary receipt, suspension, and terminal meaning.
1148
- The profile scope covers same-slot finite-activation recovery. The Reference backend, terminal
1149
- artifact finalization, HTTP, Studio, and arbitrary-host takeover remain separate. Portable
1150
- recovery semantics remain unchanged.
1227
+ application version after the prior process terminates or is fenced. One private Reference host
1228
+ owns a captured process-global DBOS runtime. Its private control and run participants register
1229
+ distinct workflow families, preflight their queue names, and contribute one aggregate listener
1230
+ set before one launch. The host registers participant queue objects after launch, then opens
1231
+ shared admission. The participants also share host drain and shutdown. DBOS schedules and retries
1232
+ finite control-dispatch and run-resume activations. The configured `CheckpointStore` remains
1233
+ authoritative for checkpoint sequence, input deduplication, committed boundary receipts,
1234
+ suspension, and terminal meaning. The profile scope covers same-slot finite-activation recovery
1235
+ and private lifecycle composition. The Reference backend, terminal artifact finalization, HTTP,
1236
+ Studio, product routing, and arbitrary-host takeover sit outside this scope. Portable recovery
1237
+ semantics remain unchanged.
1151
1238
 
1152
1239
  **Assumption (workspace):** the agent workspace is not durable; on restore the
1153
1240
  deployment re-provisions the base (re-clone/re-mount) and the checkpoint re-applies
@@ -1163,8 +1250,9 @@ by-value `messages` in the checkpoint are the load-bearing conversation record).
1163
1250
 
1164
1251
  ## Legacy Reference Production Hardening
1165
1252
 
1166
- This section describes the legacy `RunnerBackend` lease/watchdog profile. The DBOS Reference path
1167
- does not compose these services. The core never auto-recovers.
1253
+ This section applies to the legacy `RunnerBackend` lease/watchdog profile. The DBOS Reference
1254
+ profile has a private host-owned runtime lifecycle and no lease/watchdog stack. Core recovery
1255
+ requires explicit host orchestration.
1168
1256
 
1169
1257
  ### Failure surfacing & bounded recovery
1170
1258
 
@@ -1,13 +1,15 @@
1
1
  # DBOS Reference Activation-Recovery Profile
2
2
 
3
- Status: experimental v0.18.0 Reference profile. The optional extra pins the validated DBOS 2.26
4
- minor line. DBOS owns the operational execution of one finite activation: admission, per-run
5
- serialization, retry, same-slot workflow recovery, and the workflow result. The Core-defined
6
- `CheckpointStore` owns the portable semantic state, including input deduplication, the committed
7
- boundary receipt, suspension, and terminal meaning.
3
+ Status: experimental v0.19.2 Reference profile. The optional extra pins the validated DBOS 2.26
4
+ minor line. DBOS owns finite-activation admission, participant-local per-run serialization, retry,
5
+ same-slot workflow recovery, and workflow results. The private hosted composition adds one shared
6
+ process-runtime lifecycle for control and run participants. The Core-defined `CheckpointStore`
7
+ owns portable semantic state, including input deduplication, committed boundary receipts,
8
+ suspension, and terminal meaning.
8
9
 
9
- This profile is a recovery interoperability proof. Its v0.18 scope covers one finite activation;
10
- `RunnerBackend`, Studio, and production cutover remain separate.
10
+ This profile is a recovery interoperability proof. Its v0.19.2 scope covers finite control-dispatch
11
+ and run-resume activations plus private shared-host ownership for those hosted workflows.
12
+ `RunnerBackend`, Studio, product routing, and production cutover sit outside this profile.
11
13
 
12
14
  Install the profile with:
13
15
 
@@ -16,7 +18,7 @@ python -m pip install "monoid-agent-kernel[reference-dbos]"
16
18
  ```
17
19
 
18
20
  Importing `monoid_agent_kernel` or `monoid_agent_kernel.reference.dbos` stays lazy. DBOS loads when
19
- `DbosRunDriver` or `DbosControlPlane` is constructed.
21
+ a standalone `DbosRunDriver` or `DbosControlPlane`, or the private runtime host, is constructed.
20
22
 
21
23
  ## Boundary
22
24
 
@@ -105,10 +107,18 @@ driver.enqueue_resume(command)
105
107
  receipt = driver.wait_for_receipt(command)
106
108
  ```
107
109
 
108
- `DbosControlPlane` remains the isolated authenticated, credential-sanitizing transport experiment
109
- from the earlier control-plane spike. v0.18 evaluates it separately from `DbosRunDriver`. The
110
- legacy Reference command inbox remains a separate valid multi-instance assembly. Shared DBOS host
111
- composition belongs to a future architecture decision.
110
+ The exported `DbosControlPlane` and `DbosRunDriver` remain standalone experimental entry points.
111
+ Their Reference-private hosted forms register with one private runtime host. The host constructs
112
+ one captured DBOS runtime and registry, aggregates the participants' distinct versioned queues and
113
+ stable workflow names under one shared namespace, launches once, and owns shared admission and
114
+ shutdown. Every hosted participant must request the same database URL, application name,
115
+ application version, executor ID, and shutdown grace. Queue and retry settings remain
116
+ participant-local.
117
+
118
+ The control and run queues serialize their own partitions independently. Cross-surface per-run
119
+ serialization and control-to-run semantic routing require product integration. The host and
120
+ participant-registration factories are private Reference implementation details. The legacy
121
+ Reference command inbox remains a separate valid multi-instance assembly.
112
122
 
113
123
  ## Stable executor slot
114
124
 
@@ -125,7 +135,7 @@ excludes Conductor. A later multi-host requirement can add a narrow Reference re
125
135
  coordinator that reassigns eligible DBOS work while preserving checkpoint sequence and slot
126
136
  fencing. That coordinator stays smaller than a general orchestration control plane.
127
137
 
128
- SQLite is the checked development and single-host acceptance database. v0.18 validates that
138
+ SQLite is the checked development and single-host acceptance database. v0.19.2 validates that
129
139
  configuration only. DBOS recommends PostgreSQL for production system-database deployments;
130
140
  PostgreSQL process qualification and any broader takeover contract belong to a future milestone.
131
141
 
@@ -180,10 +190,17 @@ then resumes the still-pending DBOS workflow.
180
190
 
181
191
  ## Runtime and version lifecycle
182
192
 
183
- DBOS owns a process-global runtime and workflow registry. Reference DBOS components claim one
184
- process owner before workflow registration. `close()` stops admission, waits for active workflows,
185
- verifies the DBOS active-workflow set, and releases ownership. A grace timeout requires process
186
- termination.
193
+ DBOS owns a process-global runtime and workflow registry. Standalone Reference DBOS components
194
+ claim one process owner before workflow registration. In the private hosted composition, control
195
+ and run participants register before launch and share an exact host identity. The host registers
196
+ both workflow families, preflights both queues, installs one aggregate listener set, launches the
197
+ captured runtime once, registers both queues, and then opens admission.
198
+
199
+ Identity-scoped hosted submissions require a clean external call context; an ambient DBOS workflow
200
+ context is rejected before durable enqueue. Shared close stops host and participant admission,
201
+ drains admitted facade calls, destroys the captured runtime once under one deadline, proves both
202
+ participants drained, clears DBOS globals, and releases process ownership. Uncertain launch,
203
+ drain, or shutdown fences the host and requires process termination.
187
204
 
188
205
  Finite workflows keep version-drain pressure bounded. A deployment retains compatible workflow
189
206
  code for pending work, keeps `application_version` stable across a slot restart, and changes the
@@ -191,7 +208,7 @@ version when workflow operation order or durable input/result compatibility chan
191
208
 
192
209
  The exported resume-command and run-receipt version constants describe this experimental
193
210
  Reference profile only. They are excluded from the stable Core compatibility inventory and carry
194
- no mixed-version rolling-reader guarantee in v0.18. Drain pending workflows before deploying an
211
+ no mixed-version rolling-reader guarantee in v0.19.2. Drain pending workflows before deploying an
195
212
  incompatible record or operation-order change.
196
213
 
197
214
  Official references:
@@ -202,7 +219,7 @@ Official references:
202
219
  - [Workflow recovery](https://docs.dbos.dev/production/workflow-recovery)
203
220
  - [Workflow code upgrades](https://docs.dbos.dev/python/tutorials/upgrading-workflows)
204
221
 
205
- ## v0.18 status and non-goals
222
+ ## v0.19.2 status and non-goals
206
223
 
207
224
  Completed vertical-slice gates:
208
225
 
@@ -215,16 +232,27 @@ Completed vertical-slice gates:
215
232
  finite-activation workflow result copied from the committed checkpoint receipt.
216
233
  4. Core checkpoints carry the exact portable suspension observation, and `AgentLoop.release_parked`
217
234
  closes process resources without finalizing the run.
235
+ 5. The DBOS 2.26 adapter binds workflow registration, identity-scoped workflow access, queues,
236
+ launch, and shutdown to one captured runtime and verifies process-global ownership.
237
+ 6. The private runtime host aggregates hosted control and run workflows under one listener set,
238
+ launch, admission, drain, and shutdown lifecycle. Hosted control recovery and hosted run
239
+ recovery pass same-slot process-restart acceptance.
240
+ 7. Run recovery covers effect-committed and boundary-committed crashes across standalone,
241
+ hosted, and standalone-to-hosted transitions. Real composition acceptance proves one runtime,
242
+ two queues, one launch, one destroy, both participant receipts, and fresh replacement ownership.
218
243
 
219
- The v0.18 profile deliberately stops at that vertical slice. Its non-goals are:
244
+ The v0.19.2 profile stops at that Reference-private vertical slice. Its non-goals are:
220
245
 
221
246
  - replacing `RunnerBackend`, its HTTP facade, or Studio;
222
- - composing the control-plane experiment and run driver into a production host;
247
+ - publishing the private runtime host or participant-registration seam as a supported product API;
248
+ - automatic standalone-component composition or control-to-run semantic routing;
223
249
  - migrating submission, task-result, pause, cancel, status, or terminal artifact projection;
224
250
  - claiming one physical write for proposal, metrics, `run.finished`, or other rebuildable views;
225
251
  - PostgreSQL production qualification, rolling upgrades, or arbitrary-host takeover;
226
252
  - retiring the accepted durable Reference command-inbox workstream.
227
253
 
228
- These items sit outside the v0.18 release scope. A future DBOS milestone must first choose one
229
- explicit authority model. The portable model keeps `CheckpointStore` authoritative for
230
- boundary/terminal receipts and other semantic state while DBOS remains an activation scheduler.
254
+ These items sit outside the v0.19.2 release scope and require separate product-integration design
255
+ review. The private host owns DBOS lifecycle. Hosted participants add no `LeaseStore`,
256
+ `CommandStore`, `RecoveryService`, or watchdog lifecycle. `CheckpointStore` remains authoritative
257
+ for boundary and terminal receipts and other portable semantic state while DBOS remains the
258
+ activation scheduler.
@@ -64,11 +64,11 @@ with tenant routing, multiple API instances, external workers, callbacks, and du
64
64
 
65
65
  ## Choose one hosted assembly
66
66
 
67
- | Assembly | v0.18 position | Operational owner | Recovery scope |
67
+ | Assembly | v0.19.2 position | Operational owner | Recovery scope |
68
68
  |---|---|---|---|
69
69
  | Product-owned runtime | Production integration target | The product's scheduler and worker control plane | Defined and qualified by the product |
70
70
  | Reference inbox assembly | Runnable Reference example and CI-qualified hosted golden path | `RunnerBackend`, `LeaseStore`, `CommandStore`, `RecoveryService`, and watchdog | Shared-store stale-owner claim demonstrated with SQLite |
71
- | Optional DBOS activation-recovery profile | Experimental Reference recovery proof | DBOS owns finite activation admission, serialization, retry, and same-slot workflow recovery | Same `executor_id` and `application_version` after a fenced restart |
71
+ | Optional DBOS activation-recovery profile | Experimental private Reference composition proof | One private host owns the process-global DBOS runtime and hosted control/run lifecycle | Same `executor_id` and `application_version` after a fenced restart; hosted control and run recovery are acceptance-tested |
72
72
 
73
73
  The hosted golden path uses owner-local Reference submission together with the durable inbox for
74
74
  post-submission status, task-result, and approval commands. It also covers event projection and
@@ -76,12 +76,18 @@ tenant usage through one executable facade. `submit_run()` has no durable client
76
76
  the product edge owns idempotent initial-submission admission and routes each accepted submission
77
77
  to the selected owner. Integrators place this Reference fixture behind their own product API.
78
78
 
79
- The optional DBOS profile covers one finite resume activation. `CheckpointStore` remains the
80
- semantic authority, and the DBOS workflow result copies the committed boundary receipt. Its v0.18
81
- scope excludes `RunnerBackend` replacement, Studio integration, terminal artifact projection,
82
- PostgreSQL production qualification, rolling upgrades, and arbitrary-host takeover. Conductor is
83
- outside this profile. The isolated DBOS control experiment and run driver also remain separate.
84
- See [DBOS_REFERENCE.md](DBOS_REFERENCE.md) for the exact verified invariant and non-goals.
79
+ The optional DBOS profile covers finite control-dispatch and run-resume activations.
80
+ `CheckpointStore` remains the run-semantic authority, and each run-resume workflow result copies
81
+ its committed boundary receipt. Control workflows return a versioned, credential-sanitized
82
+ `CommandReceipt` after dispatch. Private hosted control and run participants share one captured
83
+ runtime, listener set, launch, admission, drain, and shutdown lifecycle while retaining distinct
84
+ partitioned queues. The exported standalone components remain individual experimental entry
85
+ points.
86
+
87
+ The v0.19.2 scope excludes `RunnerBackend` replacement, hosted-golden-path routing, Studio and
88
+ terminal-projection migration, PostgreSQL production qualification, rolling upgrades,
89
+ arbitrary-host takeover, and Conductor. See [DBOS_REFERENCE.md](DBOS_REFERENCE.md) for the exact
90
+ verified invariant and non-goals.
85
91
 
86
92
  ## Golden path A: embedded/local product
87
93
 
@@ -228,10 +234,11 @@ one transactional command store. A fresh backend can call `recover_runs()` and s
228
234
  after an atomic stale-owner claim. Queue limits and claim TTLs bound durable command admission and
229
235
  recovery. The bundled SQLite composition remains a single-host Reference fixture.
230
236
 
231
- For the experimental DBOS profile, a supervisor fences the previous process and restarts the same
232
- stable executor slot with the same application version. DBOS resumes pending finite activations;
233
- the checked checkpoint remains canonical for semantic state. The profile contains no Reference
234
- lease, command inbox, recovery service, or watchdog.
237
+ For the experimental DBOS profile, the private host is the sole DBOS lifecycle authority in one
238
+ process. A supervisor fences the previous process and restarts the same stable executor slot with
239
+ the same application version. DBOS resumes pending finite activations; the checked checkpoint
240
+ remains canonical for semantic state. The profile contains no Reference lease, command inbox,
241
+ recovery service, or watchdog lifecycle.
235
242
 
236
243
  Every durable family has a versioned codec and compatibility-ledger entry. Upgrade in this order:
237
244
 
@@ -244,7 +251,7 @@ Every durable family has a versioned codec and compatibility-ledger entry. Upgra
244
251
  Run `python -m pytest -q tests/test_compatibility_ledger.py`, then follow the mixed-version and
245
252
  rollback procedures in [COMPATIBILITY.md](COMPATIBILITY.md). DBOS workflow inputs, results, executor
246
253
  identity, and application-version operation remain governed by the experimental profile document;
247
- v0.18 makes no production rolling-upgrade claim for that profile.
254
+ v0.19.2 makes no production rolling-upgrade claim for that profile.
248
255
 
249
256
  ## Streaming and cursor ownership
250
257
 
@@ -305,8 +312,10 @@ For tool approvals, render the sanitized durable task request, preserve the task
305
312
  decision through the callback-scoped path. Record the approver and reason. Execute the original
306
313
  durable request after approval.
307
314
 
308
- The v0.18 `DbosControlPlane` is an isolated transport experiment. It does not supply the hosted
309
- facade used by this golden path and does not compose with `DbosRunDriver`.
315
+ The exported `DbosControlPlane` is an isolated transport experiment outside the hosted golden
316
+ facade. Its private hosted form composes with the private hosted run participant under one
317
+ Reference runtime host. Public product routing across those participants sits outside the v0.19.2
318
+ proof.
310
319
 
311
320
  ## Gateway credentials and security
312
321
 
@@ -381,8 +390,9 @@ Before production traffic:
381
390
  7. complete [security/PRODUCTION_CHECKLIST.md](security/PRODUCTION_CHECKLIST.md).
382
391
 
383
392
  For the Reference inbox fixture, run `tests/test_backend_command_inbox.py` and its shared-store
384
- recovery tests. For DBOS evaluation, install `reference-dbos`, run its focused model/driver/process
385
- tests, and apply the scope limits in [DBOS_REFERENCE.md](DBOS_REFERENCE.md).
393
+ recovery tests. For DBOS evaluation, install `reference-dbos`, run the owned-runtime, shared-host,
394
+ hosted-control, hosted-run, and process-restart suites, and apply the scope limits in
395
+ [DBOS_REFERENCE.md](DBOS_REFERENCE.md).
386
396
 
387
397
  `tests/test_examples.py` imports and executes both golden paths. Contract, Helper Kit, and Reference
388
398
  facade drift therefore fails CI at the same integration points shown here.