context loading, path resolution, form state, dynamic rules, and provider-neutral assessment runner/cache boundary

This commit is contained in:
2026-05-04 13:52:29 +02:00
parent eccf1874fb
commit 8361f9ea45
29 changed files with 2809 additions and 65 deletions

View File

@@ -14,6 +14,9 @@ def test_builtin_extension_registry_lists_query_processors_and_backend():
assert "processor.include" in ids
assert "backend.local-sqlite" in ids
assert "workflow.markdown-dataflow" in ids
assert "runtime.context" in ids
assert "runtime.form-state" in ids
assert "runtime.assessment" in ids
def test_builtin_processor_descriptors_capture_safety_and_provenance():
@@ -64,3 +67,17 @@ def test_builtin_workflow_descriptor_exposes_cli_and_safety():
"mkt workflow plan",
"mkt workflow run",
]
def test_builtin_runtime_descriptors_expose_boundaries():
registry = builtin_extension_registry()
context = registry.get("runtime.context")
form_state = registry.get("runtime.form-state")
assessment = registry.get("runtime.assessment")
assert context.safety["reads_files"] is True
assert "mkt contract check --context" in context.cli["commands"]
assert {capability.id for capability in form_state.capabilities} >= {"forms", "rules"}
assert assessment.kind == "assessment-runner"
assert assessment.safety["provider_calls"] == "adapter-only"