from markitect_tool.extension import builtin_extension_registry def test_builtin_extension_registry_lists_query_processors_and_backend(): registry = builtin_extension_registry() ids = [descriptor.id for descriptor in registry.list()] assert "query.selector" not in ids assert "selector" in ids assert "jsonpath" in ids assert "processor.identity" in ids assert "processor.uppercase" in ids assert "processor.include" in ids assert "extension.catalog" in ids assert "docs.generated-reference" 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 assert "policy.local-label" in ids assert "document.function" in ids assert "memory.context-package" in ids def test_builtin_meta_descriptors_expose_extension_and_docs_accesspoints(): registry = builtin_extension_registry() extension = registry.get("extension.catalog") docs = registry.get("docs.generated-reference") assert extension.kind == "extension-registry" assert "mkt extension commands" in extension.cli["commands"] assert docs.kind == "documentation" assert docs.safety["writes_files"] is True assert docs.cli["commands"] == ["mkt docs cli", "mkt docs api"] def test_builtin_processor_descriptors_capture_safety_and_provenance(): registry = builtin_extension_registry() include = registry.get("processor.include") uppercase = registry.get("processor.uppercase") assert include.kind == "processor" assert include.safety["reads_files"] is True assert include.provenance_prefix == "processor.include" assert uppercase.safety == {} assert uppercase.provenance_prefix == "processor.uppercase" def test_builtin_local_sqlite_descriptor_exposes_backend_capabilities(): registry = builtin_extension_registry() descriptor = registry.get("backend.local-sqlite") assert descriptor.kind == "backend" assert {capability.id for capability in descriptor.capabilities} >= { "snapshots", "ast", "json", "fts", "sql", "provenance", } assert descriptor.cli["commands"] == [ "mkt cache init", "mkt cache index", "mkt cache query", "mkt search", ] def test_builtin_workflow_descriptor_exposes_cli_and_safety(): registry = builtin_extension_registry() descriptor = registry.get("workflow.markdown-dataflow") assert descriptor.kind == "workflow-engine" assert descriptor.safety["writes_output_files"] is True assert descriptor.safety["assisted_generation"] == "adapter-only" assert descriptor.cli["commands"] == [ "mkt workflow inspect", "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" def test_builtin_policy_descriptor_exposes_cli_and_adapter_boundary(): registry = builtin_extension_registry() descriptor = registry.get("policy.local-label") assert descriptor.kind == "policy-gateway" assert descriptor.safety["network"] is False assert {capability.id for capability in descriptor.capabilities} >= { "policy", "policy_filter", "identity_claims", "resource_manifest", "decision_log", } assert "mkt policy check" in descriptor.cli["commands"] assert "mkt policy subject" in descriptor.cli["commands"] assert "mkt policy resource-manifest" in descriptor.cli["commands"] assert "IdentityClaimsAdapter" in descriptor.metadata["external_adapters"] assert "RelationshipPolicyAdapter" in descriptor.metadata["external_adapters"] def test_builtin_document_function_descriptor_exposes_deterministic_boundary(): registry = builtin_extension_registry() descriptor = registry.get("document.function") assert descriptor.kind == "document-function" assert descriptor.safety["network"] is False assert descriptor.metadata["external_policy_services_required"] is False assert {capability.id for capability in descriptor.capabilities} >= { "document_function", "deterministic", } assert descriptor.cli["commands"] == [ "mkt function list", "mkt function check", "mkt function render", ] def test_builtin_memory_descriptor_exposes_local_optional_boundary(): registry = builtin_extension_registry() descriptor = registry.get("memory.context-package") assert descriptor.kind == "memory-registry" assert descriptor.safety["network"] is False assert descriptor.safety["writes_local_context_registry"] is True assert descriptor.metadata["external_policy_services_required"] is False assert {capability.id for capability in descriptor.capabilities} >= { "context_packages", "context_activation", "policy_filter", } assert "mkt context pack" in descriptor.cli["commands"] assert "mkt context activate" in descriptor.cli["commands"]