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 "backend.local-sqlite" in ids 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", ]