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.
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.github/workflows/ci.yml +14 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/CHANGELOG.md +47 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/PKG-INFO +1 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/COMPATIBILITY.md +22 -10
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CONFORMANCE.md +71 -2
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CONTRACTS.md +98 -10
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/DBOS_REFERENCE.md +52 -24
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/EMBEDDING.md +27 -17
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/README.md +2 -2
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/RUNNER_BACKEND_RESPONSIBILITY_MAP.md +4 -3
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/security/PRODUCTION_CHECKLIST.md +7 -2
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/embedding_local_product.py +4 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/pyproject.toml +1 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/_version.py +1 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/cli.py +59 -7
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/__init__.py +115 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/fixtures/compatibility-v1.json +165 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/harness.py +26 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/profiles/minimal_agent.py +240 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/provenance.py +654 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/report.py +771 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/runner.py +465 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/conformance/verification.py +302 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/core/_event_log.py +503 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/compatibility.py +43 -7
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/durable_codec.py +6 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/event_sequencing.py +11 -14
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/projections.py +2 -11
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/schemas.py +14 -8
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/recorder.py +59 -20
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/projection.py +17 -7
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/service.py +20 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/conformance.py +130 -4
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/dbos/_compat_226.py +743 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/dbos/control_plane.py +232 -12
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/dbos/run_driver.py +231 -4
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/dbos/runtime.py +692 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/event_index.py +416 -0
- monoid_agent_kernel-0.19.2/src/monoid_agent_kernel/reference/event_reader.py +593 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/chat_projection.py +7 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_compatibility_fixtures.py +12 -1
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_external_runner.py +19 -0
- monoid_agent_kernel-0.19.2/tests/conformance/test_provenance.py +358 -0
- monoid_agent_kernel-0.19.2/tests/conformance/test_provenance_capture.py +416 -0
- monoid_agent_kernel-0.19.2/tests/conformance/test_report_versioning.py +445 -0
- monoid_agent_kernel-0.19.2/tests/conformance/test_runner_publication.py +809 -0
- monoid_agent_kernel-0.19.2/tests/conformance/test_verification.py +563 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/dbos_control_worker.py +73 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/dbos_run_worker.py +115 -16
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_dbos_control.py +49 -0
- monoid_agent_kernel-0.19.2/tests/test_backend_dbos_run.py +277 -0
- monoid_agent_kernel-0.19.2/tests/test_backend_event_index.py +273 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_turn_recovery.py +8 -8
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_compatibility_ledger.py +26 -2
- monoid_agent_kernel-0.19.2/tests/test_dbos_hosted_control.py +634 -0
- monoid_agent_kernel-0.19.2/tests/test_dbos_hosted_run.py +749 -0
- monoid_agent_kernel-0.19.2/tests/test_dbos_owned_runtime.py +641 -0
- monoid_agent_kernel-0.19.2/tests/test_dbos_runtime_host.py +1861 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_durable_codec.py +6 -0
- monoid_agent_kernel-0.19.2/tests/test_event_log.py +279 -0
- monoid_agent_kernel-0.19.2/tests/test_event_sequencing.py +381 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_observability.py +158 -1
- monoid_agent_kernel-0.19.2/tests/test_reference_event_index.py +739 -0
- monoid_agent_kernel-0.19.2/tests/test_reference_event_reader.py +818 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_chat_projection.py +22 -0
- monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/__init__.py +0 -57
- monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/fixtures/compatibility-v1.json +0 -46
- monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/profiles/minimal_agent.py +0 -112
- monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/report.py +0 -184
- monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/conformance/runner.py +0 -98
- monoid_agent_kernel-0.19.1/src/monoid_agent_kernel/reference/dbos/runtime.py +0 -76
- monoid_agent_kernel-0.19.1/tests/test_backend_dbos_run.py +0 -153
- monoid_agent_kernel-0.19.1/tests/test_event_sequencing.py +0 -113
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.env.example +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.gitattributes +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.github/workflows/publish.yml +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.gitignore +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/.nvmrc +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/CODE_OF_CONDUCT.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/CONTRIBUTING.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/LICENSE +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/NOTICE +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/README.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/SECURITY.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/BACKEND.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CLI.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/CORE_HELPER_KIT.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/FIRST_SKILL_TUTORIAL.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/OBSERVABILITY.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/OPERATIONAL_RULE_COVERAGE.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/PHASE_1S_COVERAGE.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/PHASE_4_CLOSURE.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/REFERENCE.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/SKILLS_DESIGN.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/SUBAGENT_DESIGN.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/TOOL_SURFACE.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/V0_18_RELEASE_AUDIT.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/a2a.png +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/hero.png +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v016-main.png +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v016-profile-builder.png +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v019-main.jpg +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v019-profile-builder.jpg +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/img/studio-v019-review-changes.jpg +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/security/SECURITY_MODEL.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/docs/security/THREAT_MODEL.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/custom_model_adapter.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/custom_tool_quickstart.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/custom_tools/word_count_tool.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/embedding_hosted_product.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/full_stack_integration.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/memory_quickstart.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/messy_workspace_cleanup.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/minimal_quickstart.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/otel_tracing.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/redacting_event_sink.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/run-spec.json +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/runtime-config.json +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/examples/workspaces/edit_markdown_notes/notes.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/_policy_util.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/_proc.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/builder.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/contracts.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/fixtures.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/_metadata.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/capability_security.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/control_plane.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/durable_runner.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/message_fabric.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/multi_agent.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/provider_gateway.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/reference_full.py +0 -0
- {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
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/conformance/profiles/tool_agent.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/contracts.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/_util.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/agents.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/cancellation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/capability.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/capability_revocation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/checkpoint.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/content.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/context.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/control.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/control_audit.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/durable_metadata.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/event_subscription.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/events.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/external_agent_envelope.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/frontmatter.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/inbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/lease_admission.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/lifecycle.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/manifest.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/media.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/outbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/output_validator.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/packages.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/prompt.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/proposal_file.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/result.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/scope.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/side_effect_policy.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/spec.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/streaming.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/subagent_runtime.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/tool_approval.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/tool_surface.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/trace_context.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/wire_validation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/workspace.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/core/workspace_index.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/env.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/errors.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/event_loader.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/identifiers.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/loop.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/loop_phases.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/mcp/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/mcp/client.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/mcp/provider.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/memory.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/narration.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/observability/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/observability/otel.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/permissions.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/_common.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/base.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/fake.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/gateway.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/providers/openai.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/public_view.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/py.typed +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/control_transport.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/http_util.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/_shared/tokens.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/commands.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/http.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/jobs.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/loop_factory.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/outbox_dispatch.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/ports.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/proposal.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/proposal_reader.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/recovery.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_execution.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_preparation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_state.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/run_types.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/runtime_config.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/session.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/backend/session_drive.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/capability.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/command_inbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/dbos/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/http.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/providers.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/llm_gateway/service.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/mcp_gateway/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/mcp_gateway/http.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/mcp_gateway/service.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/outbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/stores/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/stores/lease.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/stores/sqlite.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/README.md +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/activity.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/cli.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/server.py +0 -0
- {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
- {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
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/web/dist/index.html +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/studio/window.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/http.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/providers.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/reference/web_gateway/service.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/shell.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/definition.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/loader.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/skills/provider.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/subagent_loader.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tasks.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_loader.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/base.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/jobs.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/shell.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tool_services/web.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/base.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/builtin.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/decorator.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/defaults.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/tools/tool_ids.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/web.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/workspace/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/workspace/local.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/monoid_agent_kernel/workspace/paths.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/native_agent_runner/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/src/native_agent_runner/py.typed +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_capability_revocation_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_capability_security_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_control_plane_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_durable_runner_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_import_boundaries.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_message_fabric_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_multi_agent_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_provider_gateway_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_reference_full_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_side_effect_tool_agent_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_skeleton.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conformance/test_tool_agent_profile.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/conftest.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/__init__.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/backend.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/backend_factory.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/backend_harness.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/http.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/mcp.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/process.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/runtime.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/studio_harness.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/test_tiers.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/support/waiting.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_agent_loop_lifecycle.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_agent_runtime_config.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_async_loop.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_async_tools.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_command_inbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_control.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_event_subscription.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_http_api.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_media.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_providers.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_recovery.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_runtime_config.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_stream.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_backend_watchdog.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_builder_cli.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_cancellation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_canonical_hash.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_capability.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_capability_broker_contract.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_capability_revocation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_checkpoint.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_checkpoint_store_contract.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_cli_and_openai.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_command_store_contract.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_content_parts.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_context_providers.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_dbos_control_models.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_dbos_run_driver.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_dbos_run_models.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_durability_fault_matrix.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_durable_metadata.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_event_data_schema.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_event_subscription.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_examples.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_external_agent_envelope.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_external_agent_envelope_properties.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_external_implementation_contract.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_file_lock.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_frontmatter.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_gateway_provider.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_hitl.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_inbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_inbox_outbox_properties.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_jobs.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_lease_admission.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_lease_store_contract.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_llm_gateway_backend.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_llm_gateway_stream.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_loop.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_mcp.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_mcp_gateway.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_media.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_memory.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_multimodal_forwarding.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_namespace_compat.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_narration.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_openai_adapter.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_otel.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_outbox.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_output_validator.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_prompt_composition.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_proposal_package.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_public_surface.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_pump.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_release_packaging.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_scenario_scoring.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_scope_relation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_scope_relation_properties.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_session_drive.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_session_lifecycle.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_shell.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_side_effect_policy.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_skills.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_spec_serialization.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_cli.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_proposals.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_sessions.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_settings.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_shell_web.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_studio_skills_mcp.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_subagent.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_subagent_runtime_context.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_test_tiering.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tokens.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_approval.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_decorator.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_ids.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_result_envelope.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_services.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tool_surface.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_tools.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_trace_context.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_usage_accounting.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_web_gateway.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_wire_validation.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_contract.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_paths_properties.py +0 -0
- {monoid_agent_kernel-0.19.1 → monoid_agent_kernel-0.19.2}/tests/test_workspace_permissions.py +0 -0
- {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.
|
|
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
|
|
9
|
-
`DbosResumeCommand
|
|
10
|
-
finite-activation
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
`
|
|
27
|
-
|
|
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` |
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
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
|
|
1167
|
-
|
|
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.
|
|
4
|
-
minor line. DBOS owns
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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.
|
|
10
|
-
|
|
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
|
|
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`
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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.
|
|
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
|
|
184
|
-
process owner before workflow registration.
|
|
185
|
-
|
|
186
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
-
|
|
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.
|
|
229
|
-
|
|
230
|
-
|
|
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.
|
|
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
|
|
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
|
|
80
|
-
semantic authority, and
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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,
|
|
232
|
-
|
|
233
|
-
the
|
|
234
|
-
lease, command inbox,
|
|
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.
|
|
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
|
|
309
|
-
facade
|
|
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
|
|
385
|
-
|
|
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.
|