Coverage report: 82%

Files Functions Classes

coverage.py v7.15.0, created at 2026-07-04 05:24 +0000

File function   statements missing excluded   coverage
astrocyte/__init__.py (no function)   10 0 0   100%
astrocyte/_astrocyte.py _normalize_multi_bank_strategy   7 1 0   86%
astrocyte/_astrocyte.py Astrocyte.__init__   21 0 0   100%
astrocyte/_astrocyte.py Astrocyte.config   1 1 0   0%
astrocyte/_astrocyte.py Astrocyte.__aenter__   2 2 0   0%
astrocyte/_astrocyte.py Astrocyte.__aexit__   1 1 0   0%
astrocyte/_astrocyte.py Astrocyte.start_background_tasks   3 3 0   0%
astrocyte/_astrocyte.py Astrocyte.stop_background_tasks   8 8 0   0%
astrocyte/_astrocyte.py Astrocyte.from_config   2 0 0   100%
astrocyte/_astrocyte.py Astrocyte.from_config_dict   4 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_engine_provider   8 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_wiki_store   3 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_mental_model_store   6 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_source_store   3 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_compile_queue   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.use_pageindex_pipeline   6 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_pipeline   71 10 0   86%
astrocyte/_astrocyte.py Astrocyte._rebuild_tiered_retrieval   22 1 0   95%
astrocyte/_astrocyte.py Astrocyte._rebuild_multi_bank   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.set_access_grants   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte._rate_limiters   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.register_hook   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.retain   56 7 0   88%
astrocyte/_astrocyte.py Astrocyte._make_recall_request   3 0 0   100%
astrocyte/_astrocyte.py Astrocyte.recall   33 6 0   82%
astrocyte/_astrocyte.py Astrocyte.reflect   38 3 0   92%
astrocyte/_astrocyte.py Astrocyte._mental_model_service   4 1 0   75%
astrocyte/_astrocyte.py Astrocyte.list_mental_models   3 0 0   100%
astrocyte/_astrocyte.py Astrocyte.get_mental_model   3 0 0   100%
astrocyte/_astrocyte.py Astrocyte.create_mental_model   12 1 0   92%
astrocyte/_astrocyte.py Astrocyte.update_mental_model   4 0 0   100%
astrocyte/_astrocyte.py Astrocyte.delete_mental_model   3 0 0   100%
astrocyte/_astrocyte.py Astrocyte.refresh_mental_model   4 4 0   0%
astrocyte/_astrocyte.py Astrocyte.create_directive   12 0 0   100%
astrocyte/_astrocyte.py Astrocyte.list_observations   21 3 0   86%
astrocyte/_astrocyte.py Astrocyte.get_observation   5 0 0   100%
astrocyte/_astrocyte.py Astrocyte.create_observation   20 3 0   85%
astrocyte/_astrocyte.py Astrocyte.delete_observation   11 2 0   82%
astrocyte/_astrocyte.py Astrocyte.clear_bank   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.forget   44 3 0   93%
astrocyte/_astrocyte.py Astrocyte._collect_too_young_ids   36 9 3   75%
astrocyte/_astrocyte.py Astrocyte.compile   13 1 0   92%
astrocyte/_astrocyte.py Astrocyte.graph_search   6 6 0   0%
astrocyte/_astrocyte.py Astrocyte.graph_neighbors   8 8 0   0%
astrocyte/_astrocyte.py Astrocyte.history   2 0 0   100%
astrocyte/_astrocyte.py Astrocyte.audit   7 2 0   71%
astrocyte/_astrocyte.py Astrocyte.health   8 3 0   62%
astrocyte/_astrocyte.py Astrocyte.set_legal_hold   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.release_legal_hold   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte.is_under_hold   1 1 0   0%
astrocyte/_astrocyte.py Astrocyte.run_lifecycle   56 53 0   5%
astrocyte/_astrocyte.py Astrocyte.bank_health   9 2 0   78%
astrocyte/_astrocyte.py Astrocyte.all_bank_health   4 0 0   100%
astrocyte/_astrocyte.py Astrocyte.bank_quality_snapshot   2 0 0   100%
astrocyte/_astrocyte.py Astrocyte.export_bank   5 0 0   100%
astrocyte/_astrocyte.py Astrocyte.import_bank   6 0 0   100%
astrocyte/_astrocyte.py Astrocyte._provider_name   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte._tiered_retriever   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte._do_retain   1 1 0   0%
astrocyte/_astrocyte.py Astrocyte._do_recall   1 0 0   100%
astrocyte/_astrocyte.py Astrocyte._do_forget   1 0 0   100%
astrocyte/_astrocyte.py (no function)   91 0 3   100%
astrocyte/_discovery.py discover_entry_points   5 1 0   80%
astrocyte/_discovery.py resolve_provider   12 6 0   50%
astrocyte/_discovery.py available_providers   6 6 0   0%
astrocyte/_discovery.py (no function)   8 0 0   100%
astrocyte/_hooks.py HookManager.__init__   3 0 0   100%
astrocyte/_hooks.py HookManager.register   4 0 0   100%
astrocyte/_hooks.py HookManager.fire   12 0 0   100%
astrocyte/_hooks.py (no function)   14 0 0   100%
astrocyte/_ingest_spi.py MemoryRetainFn.__call__   0 0 0   100%
astrocyte/_ingest_spi.py IngestResult.ok   1 0 0   100%
astrocyte/_ingest_spi.py (no function)   15 0 0   100%
astrocyte/_log_safety.py safe   1 0 0   100%
astrocyte/_log_safety.py (no function)   5 0 0   100%
astrocyte/_mcp_identity.py extract_bearer_token   11 1 0   91%
astrocyte/_mcp_identity.py JwtIdentityMiddleware.__init__   2 0 0   100%
astrocyte/_mcp_identity.py JwtIdentityMiddleware.resolve   11 1 3   91%
astrocyte/_mcp_identity.py _JWKSClient.get_signing_key_from_jwt   0 0 1   100%
astrocyte/_mcp_identity.py make_pyjwt_decoder   10 8 2   20%
astrocyte/_mcp_identity.py make_pyjwt_decoder.decode   8 8 0   0%
astrocyte/_mcp_identity.py build_jwt_middleware   5 0 0   100%
astrocyte/_mcp_identity.py (no function)   24 0 1   100%
astrocyte/_multi_bank.py _bank_visit_order   13 0 0   100%
astrocyte/_multi_bank.py _dedupe_hits_by_text   6 0 0   100%
astrocyte/_multi_bank.py _apply_bank_weights   8 0 0   100%
astrocyte/_multi_bank.py _tag_hits_with_bank   1 0 0   100%
astrocyte/_multi_bank.py MultiBankOrchestrator.__init__   5 0 0   100%
astrocyte/_multi_bank.py MultiBankOrchestrator.recall   7 0 0   100%
astrocyte/_multi_bank.py MultiBankOrchestrator._parallel   30 5 0   83%
astrocyte/_multi_bank.py MultiBankOrchestrator._cascade   18 1 0   94%
astrocyte/_multi_bank.py MultiBankOrchestrator._first_match   15 1 0   93%
astrocyte/_multi_bank.py (no function)   23 0 0   100%
astrocyte/_output_scanner.py OutputScanner.__init__   5 0 0   100%
astrocyte/_output_scanner.py OutputScanner.has_scanner   1 0 0   100%
astrocyte/_output_scanner.py OutputScanner.scan_recall   17 0 0   100%
astrocyte/_output_scanner.py OutputScanner.scan_reflect   13 0 0   100%
astrocyte/_output_scanner.py (no function)   11 0 0   100%
astrocyte/_policy.py PolicyEnforcer.__init__   19 0 0   100%
astrocyte/_policy.py PolicyEnforcer.set_access_grants   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.access_grants   1 1 0   0%
astrocyte/_policy.py PolicyEnforcer.check_access   12 1 0   92%
astrocyte/_policy.py PolicyEnforcer.make_bank_resolver   2 0 0   100%
astrocyte/_policy.py PolicyEnforcer.resolve_read_bank_ids   9 0 0   100%
astrocyte/_policy.py PolicyEnforcer.check_rate_and_quota   3 0 0   100%
astrocyte/_policy.py PolicyEnforcer._check_rate_limit   3 0 0   100%
astrocyte/_policy.py PolicyEnforcer._check_quota   3 0 0   100%
astrocyte/_policy.py PolicyEnforcer.record_quota   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.scan_pii   3 1 0   67%
astrocyte/_policy.py PolicyEnforcer.pii_action   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.scan_pii_output   1 1 0   0%
astrocyte/_policy.py PolicyEnforcer.validate_content   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.sanitize_metadata   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.check_circuit   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.record_success   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.record_failure   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.handle_degraded_retain   2 0 0   100%
astrocyte/_policy.py PolicyEnforcer.handle_degraded_recall   1 0 0   100%
astrocyte/_policy.py PolicyEnforcer.validate_retain_input   8 0 0   100%
astrocyte/_policy.py (no function)   35 0 2   100%
astrocyte/_provider_dispatch.py ProviderDispatcher.__init__   6 0 0   100%
astrocyte/_provider_dispatch.py ProviderDispatcher.provider_name   1 0 0   100%
astrocyte/_provider_dispatch.py ProviderDispatcher.retain   8 1 0   88%
astrocyte/_provider_dispatch.py ProviderDispatcher.recall   18 1 0   94%
astrocyte/_provider_dispatch.py ProviderDispatcher.reflect   14 1 0   93%
astrocyte/_provider_dispatch.py ProviderDispatcher.forget   18 0 0   100%
astrocyte/_provider_dispatch.py ProviderDispatcher.reflect_from_hits   6 0 0   100%
astrocyte/_provider_dispatch.py (no function)   16 0 7   100%
astrocyte/_recall_params.py (no function)   15 0 0   100%
astrocyte/_validation.py validate_bank_id   2 0 0   100%
astrocyte/_validation.py (no function)   5 0 0   100%
astrocyte/analytics.py BankMetricsCollector.__init__   1 0 0   100%
astrocyte/analytics.py BankMetricsCollector.record_retain   5 0 0   100%
astrocyte/analytics.py BankMetricsCollector.record_recall   5 0 0   100%
astrocyte/analytics.py BankMetricsCollector.record_reflect   4 0 0   100%
astrocyte/analytics.py BankMetricsCollector.get_counters   1 0 0   100%
astrocyte/analytics.py BankMetricsCollector.bank_ids   1 0 0   100%
astrocyte/analytics.py BankMetricsCollector.reset   3 0 0   100%
astrocyte/analytics.py compute_bank_health   51 2 0   96%
astrocyte/analytics.py counters_to_quality_point   6 0 0   100%
astrocyte/analytics.py (no function)   28 0 0   100%
astrocyte/audit.py _json_default   9 2 0   78%
astrocyte/audit.py _safe_json   7 3 0   57%
astrocyte/audit.py AuditLogger.__init__   7 0 0   100%
astrocyte/audit.py AuditLogger.is_enabled   5 0 0   100%
astrocyte/audit.py AuditLogger.log   8 2 0   75%
astrocyte/audit.py AuditLogger.log_with_timing   5 0 0   100%
astrocyte/audit.py AuditLogger._safe_write   10 2 0   80%
astrocyte/audit.py AuditLogger._do_write   12 5 0   58%
astrocyte/audit.py AuditLogger.start_retention_sweep   6 6 0   0%
astrocyte/audit.py AuditLogger.stop_retention_sweep   8 8 0   0%
astrocyte/audit.py AuditLogger._sweep_loop   6 6 0   0%
astrocyte/audit.py AuditLogger._run_sweep   17 17 0   0%
astrocyte/audit.py get_default_audit_logger   3 0 0   100%
astrocyte/audit.py set_default_audit_logger   1 0 0   100%
astrocyte/audit.py (no function)   39 0 2   100%
astrocyte/cli.py _cmd_mip_lint   22 3 0   86%
astrocyte/cli.py _parse_kv   20 1 0   95%
astrocyte/cli.py _format_pipeline   13 0 0   100%
astrocyte/cli.py _format_forget   7 0 0   100%
astrocyte/cli.py _cmd_mip_explain   38 3 0   92%
astrocyte/cli.py _build_parser   17 0 0   100%
astrocyte/cli.py main   3 0 0   100%
astrocyte/cli.py (no function)   21 1 0   95%
astrocyte/compose/__init__.py (no function)   2 2 0   0%
astrocyte/compose/conversation_document.py ConversationDocumentStore.attach   0 0 0   100%
astrocyte/compose/conversation_document.py ConversationDocumentStore.detach   0 0 0   100%
astrocyte/compose/conversation_document.py ConversationDocumentStore.documents_for_conversation   0 0 0   100%
astrocyte/compose/conversation_document.py ConversationDocumentStore.conversations_for_document   0 0 0   100%
astrocyte/compose/conversation_document.py InMemoryConversationDocumentStore.__init__   1 1 0   0%
astrocyte/compose/conversation_document.py InMemoryConversationDocumentStore.attach   4 4 0   0%
astrocyte/compose/conversation_document.py InMemoryConversationDocumentStore.detach   1 1 0   0%
astrocyte/compose/conversation_document.py InMemoryConversationDocumentStore.documents_for_conversation   3 3 0   0%
astrocyte/compose/conversation_document.py InMemoryConversationDocumentStore.conversations_for_document   3 3 0   0%
astrocyte/compose/conversation_document.py (no function)   25 25 0   0%
astrocyte/config.py _substitute_env_vars   2 0 0   100%
astrocyte/config.py _substitute_env_vars._replace   5 1 0   80%
astrocyte/config.py _find_unresolved_env_vars   12 1 0   92%
astrocyte/config.py _substitute_env_recursive   7 0 0   100%
astrocyte/config.py _load_profile   10 3 0   70%
astrocyte/config.py _load_compliance_profile   10 3 0   70%
astrocyte/config.py _deep_merge   6 0 0   100%
astrocyte/config.py _filter_dataclass_fields   2 0 0   100%
astrocyte/config.py _is_sensitive_field   2 2 0   0%
astrocyte/config.py _safe_sub_dict   2 0 0   100%
astrocyte/config.py _parse_homeostasis   3 0 0   100%
astrocyte/config.py _parse_benchmark_preset   6 6 0   0%
astrocyte/config.py _parse_barriers   1 0 0   100%
astrocyte/config.py _parse_signal_quality   1 0 0   100%
astrocyte/config.py _parse_escalation   2 0 0   100%
astrocyte/config.py _parse_recall_authority   11 0 0   100%
astrocyte/config.py _parse_access_grants   12 3 0   75%
astrocyte/config.py _parse_lifecycle   2 0 0   100%
astrocyte/config.py _parse_banks   13 4 0   69%
astrocyte/config.py _parse_agents   9 1 0   89%
astrocyte/config.py _parse_deployment   5 0 0   100%
astrocyte/config.py _dict_to_config   48 3 0   94%
astrocyte/config.py _agent_bank_list   5 3 0   40%
astrocyte/config.py _resolve_agent_bank_ids   16 2 0   88%
astrocyte/config.py validate_astrocyte_config   65 13 0   80%
astrocyte/config.py _grants_from_agents   11 0 0   100%
astrocyte/config.py _dedupe_grants   9 0 0   100%
astrocyte/config.py access_grants_for_astrocyte   18 3 0   83%
astrocyte/config.py load_config   35 12 0   66%
astrocyte/config.py (no function)   444 0 0   100%
astrocyte/conversations/__init__.py (no function)   5 0 0   100%
astrocyte/conversations/chunking.py ConversationChunk.turn_count   1 0 0   100%
astrocyte/conversations/chunking.py ConversationChunk.earliest_timestamp   2 0 0   100%
astrocyte/conversations/chunking.py ConversationChunk.latest_timestamp   2 0 0   100%
astrocyte/conversations/chunking.py _render_turn   2 0 0   100%
astrocyte/conversations/chunking.py _render_chunk   1 0 0   100%
astrocyte/conversations/chunking.py _rendered_char_estimate   1 0 0   100%
astrocyte/conversations/chunking.py _session_key   4 1 0   75%
astrocyte/conversations/chunking.py chunk_conversation   22 0 0   100%
astrocyte/conversations/chunking.py chunk_conversation._flush   4 0 0   100%
astrocyte/conversations/chunking.py (no function)   26 0 0   100%
astrocyte/conversations/ingestor.py ConversationIngestor.__init__   2 0 0   100%
astrocyte/conversations/ingestor.py ConversationIngestor.ingest   16 0 0   100%
astrocyte/conversations/ingestor.py (no function)   11 0 0   100%
astrocyte/conversations/storage.py ConversationStore.save_conversation   0 0 0   100%
astrocyte/conversations/storage.py ConversationStore.get_conversation   0 0 0   100%
astrocyte/conversations/storage.py ConversationStore.list_conversations   0 0 0   100%
astrocyte/conversations/storage.py ConversationStore.delete_conversation   0 0 0   100%
astrocyte/conversations/storage.py InMemoryConversationStore.__init__   1 0 0   100%
astrocyte/conversations/storage.py InMemoryConversationStore.save_conversation   1 0 0   100%
astrocyte/conversations/storage.py InMemoryConversationStore.get_conversation   1 0 0   100%
astrocyte/conversations/storage.py InMemoryConversationStore.list_conversations   2 0 0   100%
astrocyte/conversations/storage.py InMemoryConversationStore.delete_conversation   1 0 0   100%
astrocyte/conversations/storage.py (no function)   19 0 0   100%
astrocyte/conversations/types.py ConversationTurn.new   1 0 0   100%
astrocyte/conversations/types.py ConversationTurn.char_count   1 0 0   100%
astrocyte/conversations/types.py Conversation.new   1 0 0   100%
astrocyte/conversations/types.py Conversation.turn_count   1 0 0   100%
astrocyte/conversations/types.py Conversation.total_chars   1 0 0   100%
astrocyte/conversations/types.py Conversation.add_turn   3 0 0   100%
astrocyte/conversations/types.py Conversation.earliest_timestamp   2 0 0   100%
astrocyte/conversations/types.py Conversation.latest_timestamp   2 0 0   100%
astrocyte/conversations/types.py (no function)   34 0 0   100%
astrocyte/db_budget.py OperationBudget.__post_init__   1 0 0   100%
astrocyte/db_budget.py ConnectionBudgetManager.__init__   3 0 0   100%
astrocyte/db_budget.py ConnectionBudgetManager.operation   12 0 0   100%
astrocyte/db_budget.py ConnectionBudgetManager._get_budget   4 1 0   75%
astrocyte/db_budget.py ConnectionBudgetManager.active_operations   1 0 0   100%
astrocyte/db_budget.py BudgetedOperation.__init__   2 0 0   100%
astrocyte/db_budget.py BudgetedOperation.budget   1 0 0   100%
astrocyte/db_budget.py BudgetedOperation.acquire   16 0 0   100%
astrocyte/db_budget.py get_default_budget_manager   3 1 0   67%
astrocyte/db_budget.py set_default_budget_manager   1 0 0   100%
astrocyte/db_budget.py (no function)   33 0 3   100%
astrocyte/disposition.py describe_trait_level   1 0 0   100%
astrocyte/disposition.py BankDisposition.__post_init__   5 0 0   100%
astrocyte/disposition.py BankDisposition.to_dict   1 0 0   100%
astrocyte/disposition.py BankDisposition.from_dict   1 0 0   100%
astrocyte/disposition.py BankDisposition.balanced   1 0 0   100%
astrocyte/disposition.py BankProfile.to_dict   1 0 0   100%
astrocyte/disposition.py BankProfile.from_dict   1 0 0   100%
astrocyte/disposition.py format_disposition_block   1 0 0   100%
astrocyte/disposition.py format_background_block   4 0 0   100%
astrocyte/disposition.py format_profile_block   5 0 0   100%
astrocyte/disposition.py is_balanced   1 0 0   100%
astrocyte/disposition.py (no function)   32 0 0   100%
astrocyte/documents/__init__.py (no function)   9 0 0   100%
astrocyte/documents/builders/__init__.py (no function)   2 0 0   100%
astrocyte/documents/builders/md_builder.py _extract_node_headers   17 0 0   100%
astrocyte/documents/builders/md_builder.py _build_node_text   6 0 0   100%
astrocyte/documents/builders/md_builder.py build_markdown_tree   21 0 0   100%
astrocyte/documents/builders/md_builder.py (no function)   8 0 0   100%
astrocyte/documents/builders/summarizer.py AdaptiveSummarizer.__init__   6 0 0   100%
astrocyte/documents/builders/summarizer.py AdaptiveSummarizer.summarize_node   19 0 0   100%
astrocyte/documents/builders/summarizer.py AdaptiveSummarizer.summarize_tree   7 0 0   100%
astrocyte/documents/builders/summarizer.py AdaptiveSummarizer.threshold_tokens   1 1 0   0%
astrocyte/documents/builders/summarizer.py (no function)   16 0 0   100%
astrocyte/documents/ingestor.py DocumentIngestor.__init__   3 0 0   100%
astrocyte/documents/ingestor.py DocumentIngestor.ingest   14 1 0   93%
astrocyte/documents/ingestor.py DocumentIngestor._pick_content   6 1 0   83%
astrocyte/documents/ingestor.py (no function)   12 0 0   100%
astrocyte/documents/parsers/__init__.py ParserRegistry.__init__   1 0 0   100%
astrocyte/documents/parsers/__init__.py ParserRegistry.register   2 0 0   100%
astrocyte/documents/parsers/__init__.py ParserRegistry.pick   4 0 0   100%
astrocyte/documents/parsers/__init__.py ParserRegistry.names   1 1 0   0%
astrocyte/documents/parsers/__init__.py ParserRegistry.__len__   1 0 0   100%
astrocyte/documents/parsers/__init__.py default_registry   3 3 0   0%
astrocyte/documents/parsers/__init__.py (no function)   13 0 0   100%
astrocyte/documents/parsers/base.py Parser.convert   0 0 0   100%
astrocyte/documents/parsers/base.py Parser.name   0 0 0   100%
astrocyte/documents/parsers/base.py Parser.supports   1 1 0   0%
astrocyte/documents/parsers/base.py (no function)   15 0 0   100%
astrocyte/documents/parsers/markdown.py MarkdownParser.name   1 0 0   100%
astrocyte/documents/parsers/markdown.py MarkdownParser.supports   6 0 0   100%
astrocyte/documents/parsers/markdown.py MarkdownParser.convert   4 0 0   100%
astrocyte/documents/parsers/markdown.py (no function)   7 0 0   100%
astrocyte/documents/parsers/markitdown.py MarkitdownParser.name   1 1 0   0%
astrocyte/documents/parsers/markitdown.py MarkitdownParser.supports   7 7 0   0%
astrocyte/documents/parsers/markitdown.py MarkitdownParser.convert   22 22 0   0%
astrocyte/documents/parsers/markitdown.py (no function)   11 0 0   100%
astrocyte/documents/retrieval/__init__.py (no function)   5 0 0   100%
astrocyte/documents/retrieval/navigator.py _format_structure   9 9 0   0%
astrocyte/documents/retrieval/navigator.py _format_children   8 8 0   0%
astrocyte/documents/retrieval/navigator.py _parse_llm_json   14 14 0   0%
astrocyte/documents/retrieval/navigator.py _build_breadcrumb   9 9 0   0%
astrocyte/documents/retrieval/navigator.py DocumentNavigator.__init__   4 4 0   0%
astrocyte/documents/retrieval/navigator.py DocumentNavigator.search   12 12 0   0%
astrocyte/documents/retrieval/navigator.py DocumentNavigator._search_one   51 51 0   0%
astrocyte/documents/retrieval/navigator.py (no function)   20 0 0   100%
astrocyte/documents/retrieval/retriever.py _to_skeleton_node   1 1 0   0%
astrocyte/documents/retrieval/retriever.py DocumentRetriever.__init__   1 1 0   0%
astrocyte/documents/retrieval/retriever.py DocumentRetriever.get_document_info   7 7 0   0%
astrocyte/documents/retrieval/retriever.py DocumentRetriever.get_document_structure   8 8 0   0%
astrocyte/documents/retrieval/retriever.py DocumentRetriever.get_node_content   7 7 0   0%
astrocyte/documents/retrieval/retriever.py DocumentRetriever.get_nodes_at_depth   4 4 0   0%
astrocyte/documents/retrieval/retriever.py (no function)   11 0 0   100%
astrocyte/documents/retrieval/tools.py make_retrieval_tools   7 7 0   0%
astrocyte/documents/retrieval/tools.py make_retrieval_tools.get_document_info   1 1 0   0%
astrocyte/documents/retrieval/tools.py make_retrieval_tools.get_document_structure   1 1 0   0%
astrocyte/documents/retrieval/tools.py make_retrieval_tools.get_node_content   1 1 0   0%
astrocyte/documents/retrieval/tools.py (no function)   5 0 0   100%
astrocyte/documents/retrieval/types.py (no function)   61 0 0   100%
astrocyte/documents/storage.py DocumentStore.save_document   0 0 0   100%
astrocyte/documents/storage.py DocumentStore.get_document   0 0 0   100%
astrocyte/documents/storage.py DocumentStore.get_tree   0 0 0   100%
astrocyte/documents/storage.py DocumentStore.list_documents   0 0 0   100%
astrocyte/documents/storage.py DocumentStore.delete_document   0 0 0   100%
astrocyte/documents/storage.py InMemoryDocumentStore.__init__   2 0 0   100%
astrocyte/documents/storage.py InMemoryDocumentStore.save_document   3 0 0   100%
astrocyte/documents/storage.py InMemoryDocumentStore.get_document   1 0 0   100%
astrocyte/documents/storage.py InMemoryDocumentStore.get_tree   1 0 0   100%
astrocyte/documents/storage.py InMemoryDocumentStore.list_documents   2 0 0   100%
astrocyte/documents/storage.py InMemoryDocumentStore.delete_document   2 0 0   100%
astrocyte/documents/storage.py flatten_tree_rows   2 2 0   0%
astrocyte/documents/storage.py (no function)   24 0 0   100%
astrocyte/documents/types.py NodeSummary.__len__   1 0 0   100%
astrocyte/documents/types.py TreeNode.new   3 0 0   100%
astrocyte/documents/types.py TreeNode.add_child   2 0 0   100%
astrocyte/documents/types.py TreeNode.traverse_pre   4 0 0   100%
astrocyte/documents/types.py TreeNode.is_leaf   1 0 0   100%
astrocyte/documents/types.py DocumentTree.all_nodes   4 0 0   100%
astrocyte/documents/types.py DocumentTree.node_count   1 0 0   100%
astrocyte/documents/types.py DocumentTree.find   4 0 0   100%
astrocyte/documents/types.py Document.new   4 0 0   100%
astrocyte/documents/types.py (no function)   47 0 0   100%
astrocyte/errors.py CapabilityNotSupported.__init__   3 0 0   100%
astrocyte/errors.py AccessDenied.__init__   4 0 0   100%
astrocyte/errors.py AuthorizationError.__init__   2 0 0   100%
astrocyte/errors.py RateLimited.__init__   7 0 0   100%
astrocyte/errors.py ProviderUnavailable.__init__   6 0 0   100%
astrocyte/errors.py PiiRejected.__init__   2 0 0   100%
astrocyte/errors.py CrossBorderViolation.__init__   3 0 0   100%
astrocyte/errors.py LegalHoldActive.__init__   3 0 0   100%
astrocyte/errors.py (no function)   21 0 0   100%
astrocyte/eval/__init__.py (no function)   2 0 0   100%
astrocyte/eval/_terminal_error.py _structured_error_code   11 11 0   0%
astrocyte/eval/_terminal_error.py is_terminal_error   5 5 0   0%
astrocyte/eval/_terminal_error.py (no function)   5 0 0   100%
astrocyte/eval/benchmarks/__init__.py (no function)   0 0 0   100%
astrocyte/eval/judges/__init__.py (no function)   3 0 0   100%
astrocyte/eval/judges/_stemmer.py _get_stemmer   6 3 0   50%
astrocyte/eval/judges/_stemmer.py _Stemmer.stemWord   0 0 1   100%
astrocyte/eval/judges/_stemmer.py porter_stem   4 1 0   75%
astrocyte/eval/judges/_stemmer.py (no function)   9 0 1   100%
astrocyte/eval/judges/locomo_judge.py _normalize_answer   9 0 0   100%
astrocyte/eval/judges/locomo_judge.py _normalize_and_stem   4 0 0   100%
astrocyte/eval/judges/locomo_judge.py _f1_score   9 0 0   100%
astrocyte/eval/judges/locomo_judge.py _multi_hop_f1   8 0 0   100%
astrocyte/eval/judges/locomo_judge.py locomo_category_id   10 0 0   100%
astrocyte/eval/judges/locomo_judge.py locomo_score_qa   14 1 0   93%
astrocyte/eval/judges/locomo_judge.py normalized_for_scoring   1 0 0   100%
astrocyte/eval/judges/locomo_judge.py build_locomo_llm_judge_prompt   4 4 0   0%
astrocyte/eval/judges/locomo_judge.py LoCoMoLLMJudge.__init__   4 4 0   0%
astrocyte/eval/judges/locomo_judge.py LoCoMoLLMJudge.score   5 5 0   0%
astrocyte/eval/judges/locomo_judge.py (no function)   22 0 2   100%
astrocyte/eval/judges/longmemeval_judge.py _resolve_template   6 0 0   100%
astrocyte/eval/judges/longmemeval_judge.py build_longmemeval_judge_prompt   2 0 0   100%
astrocyte/eval/judges/longmemeval_judge.py LongMemEvalJudge.__init__   4 0 0   100%
astrocyte/eval/judges/longmemeval_judge.py LongMemEvalJudge.score   3 0 0   100%
astrocyte/eval/judges/longmemeval_judge.py parse_yes_no   9 0 0   100%
astrocyte/eval/judges/longmemeval_judge.py (no function)   14 0 2   100%
astrocyte/hybrid.py _dedupe_hits_prefer_score   6 0 0   100%
astrocyte/hybrid.py HybridEngineProvider.__init__   14 1 0   93%
astrocyte/hybrid.py HybridEngineProvider.capabilities   4 1 0   75%
astrocyte/hybrid.py HybridEngineProvider.health   11 11 0   0%
astrocyte/hybrid.py HybridEngineProvider.retain   3 0 0   100%
astrocyte/hybrid.py HybridEngineProvider.recall   47 11 0   77%
astrocyte/hybrid.py HybridEngineProvider.reflect   5 5 0   0%
astrocyte/hybrid.py HybridEngineProvider.forget   6 6 0   0%
astrocyte/hybrid.py AdaptiveRouter.route   23 2 0   91%
astrocyte/hybrid.py (no function)   20 0 3   100%
astrocyte/identity.py format_principal   1 0 0   100%
astrocyte/identity.py parse_principal   4 0 0   100%
astrocyte/identity.py resolve_actor   5 1 0   80%
astrocyte/identity.py context_principal_label   5 0 0   100%
astrocyte/identity.py _permissions_for_principal_on_bank   7 0 0   100%
astrocyte/identity.py effective_permissions   8 1 0   88%
astrocyte/identity.py accessible_read_banks   13 1 0   92%
astrocyte/identity.py BankResolver.__init__   3 0 0   100%
astrocyte/identity.py BankResolver.default_bank_id   7 3 0   57%
astrocyte/identity.py (no function)   12 0 0   100%
astrocyte/identity_jwt.py classify_jwt_claims   18 0 0   100%
astrocyte/identity_jwt.py derive_bank_id   5 0 0   100%
astrocyte/identity_jwt.py _build_service_identity   7 0 0   100%
astrocyte/identity_jwt.py _with_tenant   3 0 0   100%
astrocyte/identity_jwt.py _first_nonempty   5 0 0   100%
astrocyte/identity_jwt.py _nonempty_str   3 0 0   100%
astrocyte/identity_jwt.py (no function)   14 0 0   100%
astrocyte/ingest/__init__.py __getattr__   19 19 0   0%
astrocyte/ingest/__init__.py (no function)   12 0 0   100%
astrocyte/ingest/bank_resolve.py resolve_ingest_bank_id   9 0 0   100%
astrocyte/ingest/bank_resolve.py (no function)   4 0 0   100%
astrocyte/ingest/fastapi_app.py create_ingest_webhook_app   8 0 0   100%
astrocyte/ingest/fastapi_app.py create_ingest_webhook_app.ingest_webhook   18 2 0   89%
astrocyte/ingest/fastapi_app.py (no function)   4 0 2   100%
astrocyte/ingest/hmac_auth.py compute_hmac_sha256_hex   1 0 0   100%
astrocyte/ingest/hmac_auth.py normalize_signature_header   5 0 0   100%
astrocyte/ingest/hmac_auth.py verify_hmac_sha256   5 0 0   100%
astrocyte/ingest/hmac_auth.py (no function)   6 0 0   100%
astrocyte/ingest/logutil.py _json_logs_enabled   1 0 0   100%
astrocyte/ingest/logutil.py log_ingest_event   6 0 0   100%
astrocyte/ingest/logutil.py (no function)   7 0 0   100%
astrocyte/ingest/payload.py _coerce_metadata   7 5 0   29%
astrocyte/ingest/payload.py parse_ingest_json_object   10 0 0   100%
astrocyte/ingest/payload.py parse_ingest_stream_fields   25 9 0   64%
astrocyte/ingest/payload.py parse_ingest_kafka_value   10 1 0   90%
astrocyte/ingest/payload.py (no function)   9 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.__init__   1 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.register   1 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.get   1 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.all_sources   1 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.start_all   2 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.stop_all   2 0 0   100%
astrocyte/ingest/registry.py SourceRegistry.from_sources_config   34 16 0   53%
astrocyte/ingest/registry.py (no function)   15 0 0   100%
astrocyte/ingest/runtime.py retain_callable_for_astrocyte   2 0 0   100%
astrocyte/ingest/runtime.py retain_callable_for_astrocyte.retain   4 0 0   100%
astrocyte/ingest/runtime.py (no function)   5 0 2   100%
astrocyte/ingest/source.py IngestSource.source_id   1 1 0   0%
astrocyte/ingest/source.py IngestSource.source_type   1 1 0   0%
astrocyte/ingest/source.py IngestSource.start   1 1 0   0%
astrocyte/ingest/source.py IngestSource.stop   1 1 0   0%
astrocyte/ingest/source.py IngestSource.health_check   1 1 0   0%
astrocyte/ingest/source.py WebhookIngestSource.__init__   3 0 0   100%
astrocyte/ingest/source.py WebhookIngestSource.source_id   1 0 0   100%
astrocyte/ingest/source.py WebhookIngestSource.source_type   1 0 0   100%
astrocyte/ingest/source.py WebhookIngestSource.config   1 1 0   0%
astrocyte/ingest/source.py WebhookIngestSource.start   1 0 0   100%
astrocyte/ingest/source.py WebhookIngestSource.stop   1 0 0   100%
astrocyte/ingest/source.py WebhookIngestSource.health_check   3 0 0   100%
astrocyte/ingest/source.py (no function)   24 0 0   100%
astrocyte/ingest/supervisor.py IngestSupervisor.__init__   3 0 0   100%
astrocyte/ingest/supervisor.py IngestSupervisor.registry   1 1 0   0%
astrocyte/ingest/supervisor.py IngestSupervisor.start   6 0 0   100%
astrocyte/ingest/supervisor.py IngestSupervisor.stop   12 5 0   58%
astrocyte/ingest/supervisor.py IngestSupervisor.health_snapshot   12 3 0   75%
astrocyte/ingest/supervisor.py merge_source_health   5 0 0   100%
astrocyte/ingest/supervisor.py install_shutdown_signals   9 9 0   0%
astrocyte/ingest/supervisor.py install_shutdown_signals._schedule_stop   2 2 0   0%
astrocyte/ingest/supervisor.py (no function)   19 0 0   100%
astrocyte/ingest/webhook.py _header_ci   5 1 0   80%
astrocyte/ingest/webhook.py _parse_json_body   7 0 0   100%
astrocyte/ingest/webhook.py handle_webhook_ingest   27 3 0   89%
astrocyte/ingest/webhook.py (no function)   20 0 0   100%
astrocyte/integrations/__init__.py (no function)   0 0 0   100%
astrocyte/integrations/_sync_utils.py _run_async_from_sync   8 8 0   0%
astrocyte/integrations/_sync_utils.py (no function)   6 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory.__init__   4 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory._resolve_bank   3 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory.save   3 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory.query   3 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory.get_context   4 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory.as_tools   3 0 0   100%
astrocyte/integrations/autogen.py AstrocyteAutoGenMemory.get_handlers   3 0 0   100%
astrocyte/integrations/autogen.py (no function)   11 0 2   100%
astrocyte/integrations/beeai.py AstrocyteBeeTool.__init__   4 0 0   100%
astrocyte/integrations/beeai.py AstrocyteBeeTool.run   1 0 0   100%
astrocyte/integrations/beeai.py astrocyte_bee_tools   12 2 0   83%
astrocyte/integrations/beeai.py astrocyte_bee_tools._retain   5 0 0   100%
astrocyte/integrations/beeai.py astrocyte_bee_tools._recall   5 0 0   100%
astrocyte/integrations/beeai.py astrocyte_bee_tools._reflect   2 2 0   0%
astrocyte/integrations/beeai.py astrocyte_bee_tools._forget   5 5 0   0%
astrocyte/integrations/beeai.py (no function)   8 0 2   100%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory.__init__   4 0 0   100%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory._resolve_bank   3 0 0   100%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory.write   12 1 0   92%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory.read   3 0 0   100%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory.get_context   4 1 0   75%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory.reflect   3 0 0   100%
astrocyte/integrations/camel_ai.py AstrocyteCamelMemory.clear   2 0 0   100%
astrocyte/integrations/camel_ai.py (no function)   11 0 2   100%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_tools   12 0 0   100%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_tools.retain_handler   5 0 0   100%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_tools.recall_handler   5 0 0   100%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_tools.reflect_handler   3 0 0   100%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_tools.forget_handler   5 1 0   80%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_server   17 17 0   0%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_server.memory_retain   5 5 0   0%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_server.memory_recall   5 5 0   0%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_server.memory_reflect   2 2 0   0%
astrocyte/integrations/claude_agent_sdk.py astrocyte_claude_agent_server.memory_forget   3 3 0   0%
astrocyte/integrations/claude_agent_sdk.py (no function)   5 0 4   100%
astrocyte/integrations/claude_managed_agents.py is_memory_tool   1 0 0   100%
astrocyte/integrations/claude_managed_agents.py memory_tool_definitions   8 0 0   100%
astrocyte/integrations/claude_managed_agents.py _parse_tags   3 0 0   100%
astrocyte/integrations/claude_managed_agents.py handle_memory_tool   18 0 0   100%
astrocyte/integrations/claude_managed_agents.py _format_managed_session_error   26 26 0   0%
astrocyte/integrations/claude_managed_agents.py run_session_with_memory   5 5 0   0%
astrocyte/integrations/claude_managed_agents.py run_session_with_memory._run   32 32 0   0%
astrocyte/integrations/claude_managed_agents.py delete_managed_session   5 5 0   0%
astrocyte/integrations/claude_managed_agents.py (no function)   18 0 2   100%
astrocyte/integrations/crewai.py AstrocyteCrewMemory.__init__   5 0 0   100%
astrocyte/integrations/crewai.py AstrocyteCrewMemory._resolve_bank   3 0 0   100%
astrocyte/integrations/crewai.py AstrocyteCrewMemory.save   8 1 0   88%
astrocyte/integrations/crewai.py AstrocyteCrewMemory.search   3 0 0   100%
astrocyte/integrations/crewai.py AstrocyteCrewMemory.reset   2 0 0   100%
astrocyte/integrations/crewai.py (no function)   11 0 2   100%
astrocyte/integrations/dspy.py AstrocyteRM.__init__   4 0 0   100%
astrocyte/integrations/dspy.py AstrocyteRM.__call__   2 2 0   0%
astrocyte/integrations/dspy.py AstrocyteRM._retrieve   2 0 0   100%
astrocyte/integrations/dspy.py AstrocyteRM.aretrieve   1 0 0   100%
astrocyte/integrations/dspy.py AstrocyteRM.aretain   3 0 0   100%
astrocyte/integrations/dspy.py AstrocyteRM.areflect   2 0 0   100%
astrocyte/integrations/dspy.py (no function)   11 0 2   100%
astrocyte/integrations/google_adk.py astrocyte_adk_tools   12 2 0   83%
astrocyte/integrations/google_adk.py astrocyte_adk_tools.memory_retain   3 0 0   100%
astrocyte/integrations/google_adk.py astrocyte_adk_tools.memory_recall   2 0 0   100%
astrocyte/integrations/google_adk.py astrocyte_adk_tools.memory_reflect   2 0 0   100%
astrocyte/integrations/google_adk.py astrocyte_adk_tools.memory_forget   3 3 0   0%
astrocyte/integrations/google_adk.py (no function)   4 0 2   100%
astrocyte/integrations/haystack.py AstrocyteRetriever.__init__   4 0 0   100%
astrocyte/integrations/haystack.py AstrocyteRetriever.arun   3 0 0   100%
astrocyte/integrations/haystack.py AstrocyteRetriever.run   2 2 0   0%
astrocyte/integrations/haystack.py AstrocyteWriter.__init__   3 0 0   100%
astrocyte/integrations/haystack.py AstrocyteWriter.arun   13 1 0   92%
astrocyte/integrations/haystack.py (no function)   17 0 2   100%
astrocyte/integrations/langgraph.py AstrocyteMemory.__init__   6 0 0   100%
astrocyte/integrations/langgraph.py AstrocyteMemory._resolve_bank   3 0 0   100%
astrocyte/integrations/langgraph.py AstrocyteMemory.save_context   14 1 0   93%
astrocyte/integrations/langgraph.py AstrocyteMemory.search   3 0 0   100%
astrocyte/integrations/langgraph.py AstrocyteMemory.load_memory_variables   8 1 0   88%
astrocyte/integrations/langgraph.py AstrocyteMemory.save_context_sync   1 1 0   0%
astrocyte/integrations/langgraph.py AstrocyteMemory.search_sync   1 1 0   0%
astrocyte/integrations/langgraph.py (no function)   14 0 2   100%
astrocyte/integrations/livekit.py AstrocyteLiveKitMemory.__init__   5 0 0   100%
astrocyte/integrations/livekit.py AstrocyteLiveKitMemory._session_bank   3 0 0   100%
astrocyte/integrations/livekit.py AstrocyteLiveKitMemory.get_session_context   5 0 0   100%
astrocyte/integrations/livekit.py AstrocyteLiveKitMemory.recall_mid_session   3 0 0   100%
astrocyte/integrations/livekit.py AstrocyteLiveKitMemory.retain_from_session   8 0 0   100%
astrocyte/integrations/livekit.py AstrocyteLiveKitMemory.summarize_session   3 0 0   100%
astrocyte/integrations/livekit.py (no function)   10 0 2   100%
astrocyte/integrations/llamaindex.py AstrocyteLlamaMemory.__init__   4 0 0   100%
astrocyte/integrations/llamaindex.py AstrocyteLlamaMemory.put   2 0 0   100%
astrocyte/integrations/llamaindex.py AstrocyteLlamaMemory.get   4 0 0   100%
astrocyte/integrations/llamaindex.py AstrocyteLlamaMemory.get_all   2 0 0   100%
astrocyte/integrations/llamaindex.py AstrocyteLlamaMemory.search   2 0 0   100%
astrocyte/integrations/llamaindex.py AstrocyteLlamaMemory.reset   1 0 0   100%
astrocyte/integrations/llamaindex.py (no function)   10 0 2   100%
astrocyte/integrations/managed_agents.py session_bank_id   1 0 0   100%
astrocyte/integrations/managed_agents.py agent_bank_id   1 0 0   100%
astrocyte/integrations/managed_agents.py coordinator_bank_id   1 0 0   100%
astrocyte/integrations/managed_agents.py _parse_tags   3 0 0   100%
astrocyte/integrations/managed_agents.py _format_sdk_response   2 0 0   100%
astrocyte/integrations/managed_agents.py _handle_retain   3 0 0   100%
astrocyte/integrations/managed_agents.py _handle_coordinator_recall   12 0 0   100%
astrocyte/integrations/managed_agents.py _handle_coordinator_reflect   10 0 0   100%
astrocyte/integrations/managed_agents.py _handle_subagent_recall   5 0 0   100%
astrocyte/integrations/managed_agents.py create_memory_server   3 3 0   0%
astrocyte/integrations/managed_agents.py create_coordinator_server   14 14 0   0%
astrocyte/integrations/managed_agents.py create_coordinator_server.memory_retain   1 1 0   0%
astrocyte/integrations/managed_agents.py create_coordinator_server.memory_recall   1 1 0   0%
astrocyte/integrations/managed_agents.py create_coordinator_server.memory_reflect   1 1 0   0%
astrocyte/integrations/managed_agents.py create_subagent_memory_server   12 12 0   0%
astrocyte/integrations/managed_agents.py create_subagent_memory_server.memory_retain   1 1 0   0%
astrocyte/integrations/managed_agents.py create_subagent_memory_server.memory_recall   1 1 0   0%
astrocyte/integrations/managed_agents.py create_subagent_definition   9 9 0   0%
astrocyte/integrations/managed_agents.py (no function)   17 0 2   100%
astrocyte/integrations/microsoft_agent.py astrocyte_ms_agent_tools   2 0 0   100%
astrocyte/integrations/microsoft_agent.py (no function)   4 0 2   100%
astrocyte/integrations/openai_agents.py astrocyte_tool_definitions   17 0 0   100%
astrocyte/integrations/openai_agents.py astrocyte_tool_definitions._retain   2 0 0   100%
astrocyte/integrations/openai_agents.py astrocyte_tool_definitions._recall   3 0 0   100%
astrocyte/integrations/openai_agents.py astrocyte_tool_definitions._reflect   2 0 0   100%
astrocyte/integrations/openai_agents.py astrocyte_tool_definitions._forget   2 0 0   100%
astrocyte/integrations/openai_agents.py (no function)   7 0 2   100%
astrocyte/integrations/pydantic_ai.py astrocyte_tools   12 0 0   100%
astrocyte/integrations/pydantic_ai.py astrocyte_tools.memory_retain   4 0 0   100%
astrocyte/integrations/pydantic_ai.py astrocyte_tools.memory_recall   5 0 0   100%
astrocyte/integrations/pydantic_ai.py astrocyte_tools.memory_reflect   2 0 0   100%
astrocyte/integrations/pydantic_ai.py astrocyte_tools.memory_forget   2 2 0   0%
astrocyte/integrations/pydantic_ai.py (no function)   4 0 2   100%
astrocyte/integrations/semantic_kernel.py AstrocytePlugin.__init__   5 0 0   100%
astrocyte/integrations/semantic_kernel.py AstrocytePlugin.retain   5 1 0   80%
astrocyte/integrations/semantic_kernel.py AstrocytePlugin.recall   5 0 0   100%
astrocyte/integrations/semantic_kernel.py AstrocytePlugin.reflect   2 0 0   100%
astrocyte/integrations/semantic_kernel.py AstrocytePlugin.forget   3 3 0   0%
astrocyte/integrations/semantic_kernel.py AstrocytePlugin.get_functions   6 1 0   83%
astrocyte/integrations/semantic_kernel.py (no function)   10 0 2   100%
astrocyte/integrations/smolagents.py AstrocyteSmolTool.__init__   5 0 0   100%
astrocyte/integrations/smolagents.py AstrocyteSmolTool.forward   1 0 0   100%
astrocyte/integrations/smolagents.py AstrocyteSmolTool.__call__   2 2 0   0%
astrocyte/integrations/smolagents.py astrocyte_smolagent_tools   12 2 0   83%
astrocyte/integrations/smolagents.py astrocyte_smolagent_tools._retain   5 1 0   80%
astrocyte/integrations/smolagents.py astrocyte_smolagent_tools._recall   5 1 0   80%
astrocyte/integrations/smolagents.py astrocyte_smolagent_tools._reflect   2 2 0   0%
astrocyte/integrations/smolagents.py astrocyte_smolagent_tools._forget   3 3 0   0%
astrocyte/integrations/smolagents.py (no function)   8 0 2   100%
astrocyte/integrations/strands.py astrocyte_strands_tools   12 2 0   83%
astrocyte/integrations/strands.py astrocyte_strands_tools.retain_handler   4 0 0   100%
astrocyte/integrations/strands.py astrocyte_strands_tools.recall_handler   5 0 0   100%
astrocyte/integrations/strands.py astrocyte_strands_tools.reflect_handler   3 3 0   0%
astrocyte/integrations/strands.py astrocyte_strands_tools.forget_handler   5 5 0   0%
astrocyte/integrations/strands.py (no function)   5 0 2   100%
astrocyte/lifecycle.py LifecycleManager.__init__   2 0 0   100%
astrocyte/lifecycle.py LifecycleManager.set_legal_hold   4 0 0   100%
astrocyte/lifecycle.py LifecycleManager.release_legal_hold   2 0 0   100%
astrocyte/lifecycle.py LifecycleManager.is_under_hold   2 0 0   100%
astrocyte/lifecycle.py LifecycleManager.get_holds   2 0 0   100%
astrocyte/lifecycle.py LifecycleManager.check_forget_allowed   3 0 0   100%
astrocyte/lifecycle.py LifecycleManager.evaluate_memory_ttl   23 0 0   100%
astrocyte/lifecycle.py (no function)   14 0 0   100%
astrocyte/mcp.py create_mcp_server   65 9 0   86%
astrocyte/mcp.py create_mcp_server._resolve_context   10 7 0   30%
astrocyte/mcp.py create_mcp_server._resolve_bank   5 1 0   80%
astrocyte/mcp.py create_mcp_server._validate_tags   8 2 0   75%
astrocyte/mcp.py create_mcp_server.memory_retain   16 8 0   50%
astrocyte/mcp.py create_mcp_server.memory_recall   12 3 0   75%
astrocyte/mcp.py create_mcp_server.memory_reflect   12 3 0   75%
astrocyte/mcp.py create_mcp_server.memory_forget   8 3 0   62%
astrocyte/mcp.py create_mcp_server.memory_history   15 15 0   0%
astrocyte/mcp.py create_mcp_server.memory_audit   9 9 0   0%
astrocyte/mcp.py create_mcp_server.memory_compile   10 10 0   0%
astrocyte/mcp.py create_mcp_server.memory_graph_search   7 7 0   0%
astrocyte/mcp.py create_mcp_server.memory_graph_neighbors   7 7 0   0%
astrocyte/mcp.py create_mcp_server.memory_lifecycle   7 7 0   0%
astrocyte/mcp.py create_mcp_server.memory_bank_health   10 10 0   0%
astrocyte/mcp.py create_mcp_server.memory_hold_set   7 7 0   0%
astrocyte/mcp.py create_mcp_server.memory_hold_release   7 7 0   0%
astrocyte/mcp.py create_mcp_server.memory_banks   6 1 0   83%
astrocyte/mcp.py create_mcp_server.memory_list_mental_models   8 3 0   62%
astrocyte/mcp.py create_mcp_server.memory_create_mental_model   7 3 0   57%
astrocyte/mcp.py create_mcp_server.memory_update_mental_model   10 3 0   70%
astrocyte/mcp.py create_mcp_server.memory_delete_mental_model   7 3 0   57%
astrocyte/mcp.py create_mcp_server.memory_refresh_mental_model   9 9 0   0%
astrocyte/mcp.py create_mcp_server.memory_create_directive   7 0 0   100%
astrocyte/mcp.py create_mcp_server.memory_list_observations   7 3 0   57%
astrocyte/mcp.py create_mcp_server.memory_get_observation   7 3 0   57%
astrocyte/mcp.py create_mcp_server.memory_create_observation   7 0 0   100%
astrocyte/mcp.py create_mcp_server.memory_delete_observation   7 3 0   57%
astrocyte/mcp.py create_mcp_server.memory_health   2 0 0   100%
astrocyte/mcp.py main   14 14 0   0%
astrocyte/mcp.py (no function)   16 1 0   94%
astrocyte/mip/__init__.py __getattr__   7 1 0   86%
astrocyte/mip/__init__.py (no function)   4 0 0   100%
astrocyte/mip/intent.py resolve_intent   11 1 0   91%
astrocyte/mip/intent.py _build_system_message   5 1 0   80%
astrocyte/mip/intent.py _build_user_message   2 0 0   100%
astrocyte/mip/intent.py _parse_intent_response   13 8 0   38%
astrocyte/mip/intent.py (no function)   11 0 3   100%
astrocyte/mip/loader.py load_mip_config   7 0 0   100%
astrocyte/mip/loader.py _parse_mip_config   26 0 0   100%
astrocyte/mip/loader.py _parse_rule   15 1 0   93%
astrocyte/mip/loader.py _parse_iso_datetime   14 3 0   79%
astrocyte/mip/loader.py _parse_match_block   18 0 0   100%
astrocyte/mip/loader.py _parse_match_spec   10 4 0   60%
astrocyte/mip/loader.py _parse_action   5 0 0   100%
astrocyte/mip/loader.py _parse_forget   28 2 0   93%
astrocyte/mip/loader.py _parse_pipeline   19 1 0   95%
astrocyte/mip/loader.py _parse_chunker   6 1 0   83%
astrocyte/mip/loader.py _parse_dedup   6 1 0   83%
astrocyte/mip/loader.py _parse_rerank   6 4 0   33%
astrocyte/mip/loader.py _parse_reflect   12 2 0   83%
astrocyte/mip/loader.py _match_references_content_type   10 1 0   90%
astrocyte/mip/loader.py _warn_unknown_keys   4 0 0   100%
astrocyte/mip/loader.py _validate_mip_config   11 1 0   91%
astrocyte/mip/loader.py (no function)   34 0 0   100%
astrocyte/mip/presets.py is_known_preset   1 0 0   100%
astrocyte/mip/presets.py list_presets   1 0 0   100%
astrocyte/mip/presets.py is_known_forget_preset   1 0 0   100%
astrocyte/mip/presets.py list_forget_presets   1 0 0   100%
astrocyte/mip/presets.py expand_forget_preset   4 0 0   100%
astrocyte/mip/presets.py expand_preset   4 0 0   100%
astrocyte/mip/presets.py _merge_chunker   5 0 0   100%
astrocyte/mip/presets.py _merge_dedup   5 1 0   80%
astrocyte/mip/presets.py _merge_rerank   5 1 0   80%
astrocyte/mip/presets.py _merge_reflect   5 1 0   80%
astrocyte/mip/presets.py (no function)   15 0 0   100%
astrocyte/mip/router.py _bank_matches   5 0 0   100%
astrocyte/mip/router.py MipRouter.__init__   3 0 0   100%
astrocyte/mip/router.py MipRouter.route_sync   24 1 0   96%
astrocyte/mip/router.py MipRouter._resolve_top   13 2 0   85%
astrocyte/mip/router.py MipRouter._should_escalate   17 4 0   76%
astrocyte/mip/router.py MipRouter._compare   16 10 0   38%
astrocyte/mip/router.py MipRouter.route   7 0 0   100%
astrocyte/mip/router.py MipRouter.resolve_forget_for_bank   9 1 0   89%
astrocyte/mip/router.py MipRouter.resolve_pipeline_for_bank   9 1 0   89%
astrocyte/mip/router.py MipRouter._apply_action   4 0 0   100%
astrocyte/mip/router.py _is_active   8 0 0   100%
astrocyte/mip/router.py _condition_count   9 2 0   78%
astrocyte/mip/router.py (no function)   25 0 2   100%
astrocyte/mip/rule_engine.py evaluate_rules   10 0 0   100%
astrocyte/mip/rule_engine.py evaluate_match_block   14 0 0   100%
astrocyte/mip/rule_engine.py evaluate_match_spec   28 5 0   82%
astrocyte/mip/rule_engine.py resolve_field   43 4 0   91%
astrocyte/mip/rule_engine.py interpolate_template   2 0 0   100%
astrocyte/mip/rule_engine.py interpolate_template._replace   5 0 0   100%
astrocyte/mip/rule_engine.py (no function)   25 0 0   100%
astrocyte/mip/schema.py (no function)   92 0 0   100%
astrocyte/operation_metadata.py RetainMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py BatchRetainParentMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py BatchRetainChildMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py ConsolidationMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py ExtractionMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py RecallMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py ClassifyMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py RerankMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py GenericOperationMetadata.to_dict   1 0 0   100%
astrocyte/operation_metadata.py (no function)   78 0 0   100%
astrocyte/pipeline/__init__.py (no function)   5 0 2   100%
astrocyte/pipeline/_json_tolerant.py tolerant_json_loads   25 2 0   92%
astrocyte/pipeline/_json_tolerant.py looks_truncated   17 2 0   88%
astrocyte/pipeline/_json_tolerant.py (no function)   5 0 0   100%
astrocyte/pipeline/agentic_reflect.py _normalize_tool_name   7 0 0   100%
astrocyte/pipeline/agentic_reflect.py _is_done_tool   1 1 0   0%
astrocyte/pipeline/agentic_reflect.py _build_system_prompt   3 0 0   100%
astrocyte/pipeline/agentic_reflect.py _add_hits   10 1 0   90%
astrocyte/pipeline/agentic_reflect.py _resolved_temporal_for_hit   23 1 0   96%
astrocyte/pipeline/agentic_reflect.py _format_hits_for_tool_response   18 5 0   72%
astrocyte/pipeline/agentic_reflect.py agentic_reflect   123 51 0   59%
astrocyte/pipeline/agentic_reflect.py (no function)   43 0 0   100%
astrocyte/pipeline/audit.py _render_memories   7 0 0   100%
astrocyte/pipeline/audit.py _parse_response   24 3 0   88%
astrocyte/pipeline/audit.py run_audit   12 0 0   100%
astrocyte/pipeline/audit.py (no function)   9 0 3   100%
astrocyte/pipeline/chunking.py chunk_text   11 0 0   100%
astrocyte/pipeline/chunking.py _chunk_sentences   20 3 0   85%
astrocyte/pipeline/chunking.py _chunk_paragraphs   20 6 0   70%
astrocyte/pipeline/chunking.py _chunk_dialogue   37 7 0   81%
astrocyte/pipeline/chunking.py _chunk_fixed   12 0 0   100%
astrocyte/pipeline/chunking.py (no function)   9 0 0   100%
astrocyte/pipeline/compile.py _cosine_sim   6 1 0   83%
astrocyte/pipeline/compile.py _dbscan   31 0 0   100%
astrocyte/pipeline/compile.py CompileEngine.__init__   7 0 0   100%
astrocyte/pipeline/compile.py CompileEngine.run   33 5 0   85%
astrocyte/pipeline/compile.py CompileEngine._resolve_explicit   4 1 0   75%
astrocyte/pipeline/compile.py CompileEngine._discover_scopes   26 0 0   100%
astrocyte/pipeline/compile.py CompileEngine._synthesise   21 2 0   90%
astrocyte/pipeline/compile.py CompileEngine._label_cluster   8 2 0   75%
astrocyte/pipeline/compile.py CompileEngine._fetch_raw_memories   13 1 0   92%
astrocyte/pipeline/compile.py _infer_kind   6 0 0   100%
astrocyte/pipeline/compile.py _empty_page   3 3 0   0%
astrocyte/pipeline/compile.py (no function)   21 0 2   100%
astrocyte/pipeline/compile_trigger.py BankCompileState.should_trigger   8 0 0   100%
astrocyte/pipeline/compile_trigger.py CompileQueue.__init__   7 0 0   100%
astrocyte/pipeline/compile_trigger.py CompileQueue.notify_retain   12 2 0   83%
astrocyte/pipeline/compile_trigger.py CompileQueue.start   5 0 0   100%
astrocyte/pipeline/compile_trigger.py CompileQueue.stop   14 6 0   57%
astrocyte/pipeline/compile_trigger.py CompileQueue.drain   3 0 0   100%
astrocyte/pipeline/compile_trigger.py CompileQueue.pending_banks   1 0 0   100%
astrocyte/pipeline/compile_trigger.py CompileQueue.state   1 0 0   100%
astrocyte/pipeline/compile_trigger.py CompileQueue._worker   20 1 0   95%
astrocyte/pipeline/compile_trigger.py (no function)   33 0 2   100%
astrocyte/pipeline/consolidation.py _VectorBuckets.__init__   2 0 0   100%
astrocyte/pipeline/consolidation.py _VectorBuckets._bucket_key   6 1 0   83%
astrocyte/pipeline/consolidation.py _VectorBuckets.find_similar   13 2 0   85%
astrocyte/pipeline/consolidation.py _VectorBuckets.add   3 0 0   100%
astrocyte/pipeline/consolidation.py run_consolidation   56 8 0   86%
astrocyte/pipeline/consolidation.py _parse_dt   4 0 0   100%
astrocyte/pipeline/consolidation.py (no function)   23 0 2   100%
astrocyte/pipeline/cross_encoder_rerank.py CrossEncoderProtocol.score   1 1 0   0%
astrocyte/pipeline/cross_encoder_rerank.py SentenceTransformersCrossEncoder.__init__   5 0 0   100%
astrocyte/pipeline/cross_encoder_rerank.py SentenceTransformersCrossEncoder._resolve_device   7 0 0   100%
astrocyte/pipeline/cross_encoder_rerank.py SentenceTransformersCrossEncoder._load   11 11 2   0%
astrocyte/pipeline/cross_encoder_rerank.py SentenceTransformersCrossEncoder.score   6 6 0   0%
astrocyte/pipeline/cross_encoder_rerank.py is_apple_silicon   2 0 0   100%
astrocyte/pipeline/cross_encoder_rerank.py is_mps_available   10 8 0   20%
astrocyte/pipeline/cross_encoder_rerank.py _resolve_default_model   4 0 0   100%
astrocyte/pipeline/cross_encoder_rerank.py get_default_cross_encoder   8 0 0   100%
astrocyte/pipeline/cross_encoder_rerank.py reset_default_cross_encoder_cache   2 0 0   100%
astrocyte/pipeline/cross_encoder_rerank.py cross_encoder_rerank   10 1 3   90%
astrocyte/pipeline/cross_encoder_rerank.py (no function)   26 0 0   100%
astrocyte/pipeline/curated_recall.py curate_recall_hits   22 0 0   100%
astrocyte/pipeline/curated_recall.py _reliability_score   5 0 0   100%
astrocyte/pipeline/curated_recall.py _salience_score   2 0 0   100%
astrocyte/pipeline/curated_recall.py (no function)   7 0 0   100%
astrocyte/pipeline/curated_retain.py curate_retain   11 11 0   0%
astrocyte/pipeline/curated_retain.py _parse_curation_response   30 3 0   90%
astrocyte/pipeline/curated_retain.py (no function)   17 0 2   100%
astrocyte/pipeline/delta_ops.py AppliedDelta.changed   1 0 0   100%
astrocyte/pipeline/delta_ops.py _op_summary   2 0 0   100%
astrocyte/pipeline/delta_ops.py apply_operations   87 8 1   91%
astrocyte/pipeline/delta_ops.py apply_operations.skip   4 0 0   100%
astrocyte/pipeline/delta_ops.py (no function)   57 0 0   100%
astrocyte/pipeline/directive_compile.py _slugify   4 4 0   0%
astrocyte/pipeline/directive_compile.py _format_pref_for_prompt   4 4 0   0%
astrocyte/pipeline/directive_compile.py compile_directives_for_document   59 59 0   0%
astrocyte/pipeline/directive_compile.py compile_directives_for_document._ts_for_fact_id   4 4 0   0%
astrocyte/pipeline/directive_compile.py (no function)   18 0 3   100%
astrocyte/pipeline/document_postprocess.py DocumentPostprocessResult.ok   1 0 0   100%
astrocyte/pipeline/document_postprocess.py run_document_postprocess   41 6 0   85%
astrocyte/pipeline/document_postprocess.py _is_enabled   4 1 0   75%
astrocyte/pipeline/document_postprocess.py _is_enabled_pref   4 1 0   75%
astrocyte/pipeline/document_postprocess.py (no function)   18 0 3   100%
astrocyte/pipeline/embedding.py generate_embeddings   8 0 0   100%
astrocyte/pipeline/embedding.py _pseudo_embedding   12 0 0   100%
astrocyte/pipeline/embedding.py (no function)   6 0 2   100%
astrocyte/pipeline/entity_extraction.py extract_entities   7 0 0   100%
astrocyte/pipeline/entity_extraction.py _parse_entities   44 15 0   66%
astrocyte/pipeline/entity_extraction.py (no function)   11 0 2   100%
astrocyte/pipeline/entity_resolution.py _name_similarity   5 1 0   80%
astrocyte/pipeline/entity_resolution.py _build_user_message   3 0 0   100%
astrocyte/pipeline/entity_resolution.py EntityResolver.__init__   28 3 0   89%
astrocyte/pipeline/entity_resolution.py EntityResolver.resolve   6 1 0   83%
astrocyte/pipeline/entity_resolution.py EntityResolver.resolve_canonical_ids_in_place   17 1 2   94%
astrocyte/pipeline/entity_resolution.py EntityResolver._best_canonical_id   24 7 0   71%
astrocyte/pipeline/entity_resolution.py EntityResolver._resolution_score   2 2 0   0%
astrocyte/pipeline/entity_resolution.py EntityResolver._resolution_score_with_tier   14 3 0   79%
astrocyte/pipeline/entity_resolution.py EntityResolver._record_cascade   7 4 0   43%
astrocyte/pipeline/entity_resolution.py EntityResolver._record_canonical_resolution   7 4 0   43%
astrocyte/pipeline/entity_resolution.py EntityResolver._resolve_one_entity   8 1 0   88%
astrocyte/pipeline/entity_resolution.py EntityResolver._handle_candidate   24 0 0   100%
astrocyte/pipeline/entity_resolution.py EntityResolver._composite_score   24 2 0   92%
astrocyte/pipeline/entity_resolution.py EntityResolver._score_candidates   15 9 0   40%
astrocyte/pipeline/entity_resolution.py EntityResolver._autolink   8 3 0   62%
astrocyte/pipeline/entity_resolution.py EntityResolver._confirm_and_link   36 5 0   86%
astrocyte/pipeline/entity_resolution.py (no function)   26 0 2   100%
astrocyte/pipeline/episodic_extract.py is_episodic_fact_text   3 1 0   67%
astrocyte/pipeline/episodic_extract.py tag_episodic_facts   18 4 0   78%
astrocyte/pipeline/episodic_extract.py question_has_episodic_cue   7 2 0   71%
astrocyte/pipeline/episodic_extract.py (no function)   13 0 2   100%
astrocyte/pipeline/extraction.py _extraction_profile_from_mapping   3 0 0   100%
astrocyte/pipeline/extraction.py _packaged_yaml_builtin_profiles   14 3 0   79%
astrocyte/pipeline/extraction.py _all_builtin_profiles   1 0 0   100%
astrocyte/pipeline/extraction.py merged_user_and_builtin_profiles   1 0 0   100%
astrocyte/pipeline/extraction.py merged_extraction_profiles   1 0 0   100%
astrocyte/pipeline/extraction.py extraction_profile_for_source   6 0 0   100%
astrocyte/pipeline/extraction.py effective_content_type   3 0 0   100%
astrocyte/pipeline/extraction.py _normalize_chunking_strategy   4 1 0   75%
astrocyte/pipeline/extraction.py resolve_retain_chunking   23 0 0   100%
astrocyte/pipeline/extraction.py _normalize_line_endings   1 0 0   100%
astrocyte/pipeline/extraction.py _looks_like_rfc_headers   5 1 0   80%
astrocyte/pipeline/extraction.py _normalize_email_body   7 0 0   100%
astrocyte/pipeline/extraction.py _collapse_blank_runs   1 0 0   100%
astrocyte/pipeline/extraction.py normalize_content   15 1 0   93%
astrocyte/pipeline/extraction.py _json_path_get   17 5 0   71%
astrocyte/pipeline/extraction.py apply_metadata_mapping   19 3 0   84%
astrocyte/pipeline/extraction.py apply_tag_rules   15 3 0   80%
astrocyte/pipeline/extraction.py should_extract_entities   12 2 0   83%
astrocyte/pipeline/extraction.py merge_tags   7 0 0   100%
astrocyte/pipeline/extraction.py merge_metadata   4 0 0   100%
astrocyte/pipeline/extraction.py resolve_retain_fact_type   3 0 0   100%
astrocyte/pipeline/extraction.py prepare_retain_input   8 0 0   100%
astrocyte/pipeline/extraction.py (no function)   48 0 0   100%
astrocyte/pipeline/fact_causal_extraction.py _build_user_prompt   9 1 0   89%
astrocyte/pipeline/fact_causal_extraction.py _parse_relations   15 6 0   60%
astrocyte/pipeline/fact_causal_extraction.py extract_fact_causal_relations   40 7 0   82%
astrocyte/pipeline/fact_causal_extraction.py build_memory_links_from_relations   8 0 0   100%
astrocyte/pipeline/fact_causal_extraction.py (no function)   19 0 0   100%
astrocyte/pipeline/fact_entity_expansion.py expand_via_entity_graph   36 1 0   97%
astrocyte/pipeline/fact_entity_expansion.py (no function)   5 0 3   100%
astrocyte/pipeline/fact_extraction.py _build_verbatim_user_prompt   13 3 0   77%
astrocyte/pipeline/fact_extraction.py _build_verbatim_single_user_prompt   12 3 0   75%
astrocyte/pipeline/fact_extraction.py _extract_one_chunk_verbatim_attempt   14 7 0   50%
astrocyte/pipeline/fact_extraction.py _extract_one_chunk_verbatim   14 1 0   93%
astrocyte/pipeline/fact_extraction.py _build_extracted_fact_from_raw   13 8 0   38%
astrocyte/pipeline/fact_extraction.py extract_facts_verbatim_parallel   14 2 0   86%
astrocyte/pipeline/fact_extraction.py extract_facts_verbatim_parallel._one   2 0 0   100%
astrocyte/pipeline/fact_extraction.py _parse_json_object   12 4 0   67%
astrocyte/pipeline/fact_extraction.py _parse_iso_datetime   16 14 0   12%
astrocyte/pipeline/fact_extraction.py extract_facts_verbatim   58 20 0   66%
astrocyte/pipeline/fact_extraction.py _slug   1 0 0   100%
astrocyte/pipeline/fact_extraction.py materialize_facts   51 3 0   94%
astrocyte/pipeline/fact_extraction.py (no function)   56 0 0   100%
astrocyte/pipeline/fact_recall.py fact_recall   11 2 0   82%
astrocyte/pipeline/fact_recall.py _run_channels_and_fuse   29 0 0   100%
astrocyte/pipeline/fact_recall.py _merge_per_type_pools   18 1 0   94%
astrocyte/pipeline/fact_recall.py _safe_call   5 0 0   100%
astrocyte/pipeline/fact_recall.py _search_episodic   2 0 0   100%
astrocyte/pipeline/fact_recall.py _search_link_expansion   18 1 0   94%
astrocyte/pipeline/fact_recall.py _rrf_fuse_fact_hits   14 0 0   100%
astrocyte/pipeline/fact_recall.py _rrf_fuse_fact_hits_weighted   18 3 0   83%
astrocyte/pipeline/fact_recall.py _is_episodic_enabled   4 1 0   75%
astrocyte/pipeline/fact_recall.py _question_has_episodic_cue   5 2 0   60%
astrocyte/pipeline/fact_recall.py (no function)   17 0 5   100%
astrocyte/pipeline/fact_rerank.py rerank_fact_hits   13 1 0   92%
astrocyte/pipeline/fact_rerank.py (no function)   8 0 2   100%
astrocyte/pipeline/fusion.py rrf_fusion   16 0 0   100%
astrocyte/pipeline/fusion.py weighted_rrf_fusion   17 0 0   100%
astrocyte/pipeline/fusion.py layer_weighted_rrf_fusion   6 0 0   100%
astrocyte/pipeline/fusion.py memory_hits_as_scored   8 0 0   100%
astrocyte/pipeline/fusion.py (no function)   22 0 0   100%
astrocyte/pipeline/hyde.py generate_hyde_vector   14 0 0   100%
astrocyte/pipeline/hyde.py _generate_hypothetical   3 0 0   100%
astrocyte/pipeline/hyde.py (no function)   8 0 2   100%
astrocyte/pipeline/intent_weights.py weights_for_intent   3 0 0   100%
astrocyte/pipeline/intent_weights.py (no function)   14 0 0   100%
astrocyte/pipeline/link_expansion.py _hit_has_required_tags   4 0 0   100%
astrocyte/pipeline/link_expansion.py _CandidateScore.total   4 0 0   100%
astrocyte/pipeline/link_expansion.py link_expansion   67 15 0   78%
astrocyte/pipeline/link_expansion.py _candidate_scores_from_rows   7 1 0   86%
astrocyte/pipeline/link_expansion.py _hydrate_candidate_scores   27 3 0   89%
astrocyte/pipeline/link_expansion.py _fetch_bodies_by_id   16 2 0   88%
astrocyte/pipeline/link_expansion.py (no function)   29 0 0   100%
astrocyte/pipeline/lint.py LintEngine.__init__   6 0 0   100%
astrocyte/pipeline/lint.py LintEngine.run   25 0 0   100%
astrocyte/pipeline/lint.py LintEngine._check_stale_or_orphan   8 0 0   100%
astrocyte/pipeline/lint.py LintEngine._detect_page_contradictions   24 0 0   100%
astrocyte/pipeline/lint.py LintEngine._fetch_live_ids   14 1 0   93%
astrocyte/pipeline/lint.py (no function)   30 0 3   100%
astrocyte/pipeline/mental_model.py MentalModelService.__init__   1 0 0   100%
astrocyte/pipeline/mental_model.py MentalModelService.create   4 0 0   100%
astrocyte/pipeline/mental_model.py MentalModelService.list   1 0 0   100%
astrocyte/pipeline/mental_model.py MentalModelService.get   1 0 0   100%
astrocyte/pipeline/mental_model.py MentalModelService.refresh   7 0 0   100%
astrocyte/pipeline/mental_model.py MentalModelService.delete   1 0 0   100%
astrocyte/pipeline/mental_model.py MentalModelService.update_via_ops   8 1 0   88%
astrocyte/pipeline/mental_model.py MentalModelService.refresh_from_sources   4 0 0   100%
astrocyte/pipeline/mental_model.py (no function)   15 0 2   100%
astrocyte/pipeline/mental_model_compile.py _slugify   4 0 0   100%
astrocyte/pipeline/mental_model_compile.py _format_sections_for_prompt   9 0 0   100%
astrocyte/pipeline/mental_model_compile.py compile_mental_models_for_document   39 5 0   87%
astrocyte/pipeline/mental_model_compile.py (no function)   12 0 2   100%
astrocyte/pipeline/multi_query.py decompose_query   16 3 0   81%
astrocyte/pipeline/multi_query.py (no function)   9 0 2   100%
astrocyte/pipeline/observation.py obs_bank_id   1 0 0   100%
astrocyte/pipeline/observation.py observation_scope   3 1 0   67%
astrocyte/pipeline/observation.py compute_observation_trend   26 4 0   85%
astrocyte/pipeline/observation.py _build_user_prompt   13 0 0   100%
astrocyte/pipeline/observation.py _parse_actions   25 4 0   84%
astrocyte/pipeline/observation.py ObservationConsolidator.__init__   3 0 0   100%
astrocyte/pipeline/observation.py ObservationConsolidator.consolidate   49 9 0   82%
astrocyte/pipeline/observation.py ObservationConsolidator.invalidate_sources   25 5 0   80%
astrocyte/pipeline/observation.py ObservationConsolidator._apply_create   14 0 0   100%
astrocyte/pipeline/observation.py ObservationConsolidator._apply_update   49 5 0   90%
astrocyte/pipeline/observation.py (no function)   29 0 4   100%
astrocyte/pipeline/orchestrator.py _warn_on_version_drift   18 3 0   83%
astrocyte/pipeline/orchestrator.py _abstention_floor_for_skepticism   3 0 0   100%
astrocyte/pipeline/orchestrator.py _build_cooccurrence_pairs   5 0 0   100%
astrocyte/pipeline/orchestrator.py _resolve_skepticism_for_abstention   3 0 0   100%
astrocyte/pipeline/orchestrator.py _RetainProfiler.__init__   2 0 0   100%
astrocyte/pipeline/orchestrator.py _RetainProfiler.time   7 4 0   43%
astrocyte/pipeline/orchestrator.py _RetainProfiler.reset   1 1 0   0%
astrocyte/pipeline/orchestrator.py _RetainProfiler.report   17 17 0   0%
astrocyte/pipeline/orchestrator.py _TrackingLLMProvider.__init__   2 0 0   100%
astrocyte/pipeline/orchestrator.py _TrackingLLMProvider.complete   17 4 0   76%
astrocyte/pipeline/orchestrator.py _TrackingLLMProvider.embed   9 5 0   44%
astrocyte/pipeline/orchestrator.py _TrackingLLMProvider.capabilities   1 1 0   0%
astrocyte/pipeline/orchestrator.py _TrackingLLMProvider.reset_tokens   3 0 0   100%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.__init__   69 0 0   100%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.tokens_used   1 1 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reset_token_counter   1 1 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.invalidate_dedup_cache   5 0 0   100%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._attach_entity_name_embeddings   10 4 0   60%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._structured_fact_extraction_for_text   39 25 0   36%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._persist_semantic_links   14 12 0   14%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._process_record_entities_with_retry   17 12 0   29%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._process_record_entities   58 33 0   43%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._provision_source_provenance   22 2 0   91%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._expand_via_sibling_chunks   34 9 0   74%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._expand_via_sibling_chunks._siblings_for   10 4 0   60%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.retain   141 34 0   76%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.retain._run_consolidation   4 2 0   50%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.retain_many   134 32 0   76%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.retain_many._run_consolidation   4 2 0   50%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.recall   104 7 5   93%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.recall._fuse_sub_query   10 1 0   90%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._retrieve_observations   10 3 0   70%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._retrieve_entity_path_fallback   19 4 0   79%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._try_wiki_tier   39 6 0   85%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reflect   61 18 0   70%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reflect._premise_recall   3 3 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reflect._loop_recall   3 3 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reflect._loop_observations   4 4 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reflect._loop_expand   5 5 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.reflect._loop_mental_models   6 6 0   0%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator.shutdown   16 7 0   56%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._rank_reflect_context   9 2 3   78%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._entity_path_authority_context   15 1 0   93%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._expand_reflect_sources   21 1 0   95%
astrocyte/pipeline/orchestrator.py PipelineOrchestrator._fetch_memory_hits_by_id   23 3 0   87%
astrocyte/pipeline/orchestrator.py _source_ids_from_metadata   20 7 0   65%
astrocyte/pipeline/orchestrator.py _deterministic_names   1 0 0   100%
astrocyte/pipeline/orchestrator.py _entities_from_metadata   18 4 0   78%
astrocyte/pipeline/orchestrator.py (no function)   79 0 5   100%
astrocyte/pipeline/pageindex_pipeline.py PageIndexPipeline.__init__   7 0 0   100%
astrocyte/pipeline/pageindex_pipeline.py PageIndexPipeline.recall   46 12 0   74%
astrocyte/pipeline/pageindex_pipeline.py PageIndexPipeline._to_memory_hits   16 7 0   56%
astrocyte/pipeline/pageindex_pipeline.py (no function)   12 0 3   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.__init__   1 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.in_memory   2 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.from_psycopg_connection   2 2 0   0%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.install   5 5 0   0%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.clear   3 3 0   0%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.enqueue   2 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.register_dispatcher   2 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.run_drain   2 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.run_continuous   1 1 0   0%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue.shutdown   6 6 0   0%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue._register_task_type   1 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue._register_task_type._handle   2 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py PgQueuerMemoryTaskQueue._queries   1 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py _encode_task   1 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py task_to_pgqueuer_payload   1 0 0   100%
astrocyte/pipeline/pgqueuer_tasks.py task_from_pgqueuer_payload   4 1 0   75%
astrocyte/pipeline/pgqueuer_tasks.py _parse_dt   6 2 0   67%
astrocyte/pipeline/pgqueuer_tasks.py _delay_from_now   4 1 0   75%
astrocyte/pipeline/pgqueuer_tasks.py (no function)   27 0 3   100%
astrocyte/pipeline/preference_compile.py _slugify   4 0 0   100%
astrocyte/pipeline/preference_compile.py _format_pref_for_prompt   4 1 0   75%
astrocyte/pipeline/preference_compile.py compile_preferences_for_document   58 9 0   84%
astrocyte/pipeline/preference_compile.py compile_preferences_for_document._ts_for_fact_id   4 1 0   75%
astrocyte/pipeline/preference_compile.py (no function)   12 0 3   100%
astrocyte/pipeline/premise_verification.py QuestionVerification.unsupported_premises   1 0 0   100%
astrocyte/pipeline/premise_verification.py QuestionVerification.short_circuit_message   7 1 0   86%
astrocyte/pipeline/premise_verification.py _build_extraction_user_prompt   1 0 0   100%
astrocyte/pipeline/premise_verification.py _build_verification_user_prompt   10 1 0   90%
astrocyte/pipeline/premise_verification.py _parse_json_array   14 5 0   64%
astrocyte/pipeline/premise_verification.py _parse_json_object   12 5 0   58%
astrocyte/pipeline/premise_verification.py extract_premises   16 4 0   75%
astrocyte/pipeline/premise_verification.py verify_premise   22 5 0   77%
astrocyte/pipeline/premise_verification.py verify_question   7 0 0   100%
astrocyte/pipeline/premise_verification.py (no function)   36 0 0   100%
astrocyte/pipeline/preset_routing.py route_recall_preset   7 0 0   100%
astrocyte/pipeline/preset_routing.py (no function)   10 0 0   100%
astrocyte/pipeline/query_analyzer.py TemporalConstraint.__str__   3 0 0   100%
astrocyte/pipeline/query_analyzer.py TemporalConstraint.is_bounded   1 0 0   100%
astrocyte/pipeline/query_analyzer.py QueryAnalysis.has_constraints   1 0 0   100%
astrocyte/pipeline/query_analyzer.py _utc   1 0 0   100%
astrocyte/pipeline/query_analyzer.py _month_end   3 1 0   67%
astrocyte/pipeline/query_analyzer.py _try_iso_date   15 4 0   73%
astrocyte/pipeline/query_analyzer.py _try_year   11 3 0   73%
astrocyte/pipeline/query_analyzer.py _try_month_year   12 2 0   83%
astrocyte/pipeline/query_analyzer.py _try_relative   41 15 0   63%
astrocyte/pipeline/query_analyzer.py _try_temporal_expansion   6 0 0   100%
astrocyte/pipeline/query_analyzer.py _try_dateparser   6 2 0   67%
astrocyte/pipeline/query_analyzer.py _regex_temporal_pass   12 0 0   100%
astrocyte/pipeline/query_analyzer.py _has_temporal_marker   6 1 0   83%
astrocyte/pipeline/query_analyzer.py _build_llm_user_prompt   1 0 0   100%
astrocyte/pipeline/query_analyzer.py _parse_llm_response   19 5 0   74%
astrocyte/pipeline/query_analyzer.py _parse_llm_response._parse_iso   10 2 0   80%
astrocyte/pipeline/query_analyzer.py analyze_query   21 4 0   81%
astrocyte/pipeline/query_analyzer.py (no function)   35 0 0   100%
astrocyte/pipeline/query_intent.py classify_query_intent   23 0 0   100%
astrocyte/pipeline/query_intent.py classify_query_intent._key   1 0 0   100%
astrocyte/pipeline/query_intent.py classify_all_intents   12 0 0   100%
astrocyte/pipeline/query_intent.py weights_for_intent   1 0 0   100%
astrocyte/pipeline/query_intent.py (no function)   35 0 0   100%
astrocyte/pipeline/query_plan.py build_query_plan   40 2 0   95%
astrocyte/pipeline/query_plan.py (no function)   23 0 0   100%
astrocyte/pipeline/query_rewrite.py _LLMProvider.complete   0 0 0   100%
astrocyte/pipeline/query_rewrite.py rewrite_query   24 24 0   0%
astrocyte/pipeline/query_rewrite.py (no function)   9 9 0   0%
astrocyte/pipeline/question_annotator.py annotate_question   29 29 0   0%
astrocyte/pipeline/question_annotator.py _parse_iso_range   14 14 0   0%
astrocyte/pipeline/question_annotator.py (no function)   15 15 2   0%
astrocyte/pipeline/recall_cache.py RecallCache.__init__   5 0 0   100%
astrocyte/pipeline/recall_cache.py RecallCache.get   13 0 0   100%
astrocyte/pipeline/recall_cache.py RecallCache.put   21 12 0   43%
astrocyte/pipeline/recall_cache.py RecallCache.invalidate_bank   2 0 0   100%
astrocyte/pipeline/recall_cache.py RecallCache.invalidate_all   2 0 0   100%
astrocyte/pipeline/recall_cache.py RecallCache.size   4 0 0   100%
astrocyte/pipeline/recall_cache.py (no function)   20 0 0   100%
astrocyte/pipeline/recent_buffer.py _tokenize   1 0 0   100%
astrocyte/pipeline/recent_buffer.py _fuzzy_token_score   22 2 0   91%
astrocyte/pipeline/recent_buffer.py RecentMemoryBuffer.__init__   3 0 0   100%
astrocyte/pipeline/recent_buffer.py RecentMemoryBuffer.add   12 4 0   67%
astrocyte/pipeline/recent_buffer.py RecentMemoryBuffer.search   12 0 0   100%
astrocyte/pipeline/recent_buffer.py RecentMemoryBuffer.clear_bank   2 0 0   100%
astrocyte/pipeline/recent_buffer.py RecentMemoryBuffer.size   4 0 0   100%
astrocyte/pipeline/recent_buffer.py (no function)   28 0 0   100%
astrocyte/pipeline/reflect.py _auto_prompt_variant   10 2 0   80%
astrocyte/pipeline/reflect.py _build_system_prompt   18 3 0   83%
astrocyte/pipeline/reflect.py _format_memories   23 4 0   83%
astrocyte/pipeline/reflect.py synthesize   17 2 0   88%
astrocyte/pipeline/reflect.py (no function)   18 0 3   100%
astrocyte/pipeline/rerank_boosts.py _section_date   3 0 0   100%
astrocyte/pipeline/rerank_boosts.py _normalize_to_utc   1 0 0   100%
astrocyte/pipeline/rerank_boosts.py recency_score   6 0 0   100%
astrocyte/pipeline/rerank_boosts.py temporal_band_score   17 0 0   100%
astrocyte/pipeline/rerank_boosts.py proof_count_score   3 0 0   100%
astrocyte/pipeline/rerank_boosts.py compute_boost_multiplier   15 1 0   93%
astrocyte/pipeline/rerank_boosts.py apply_boosts   15 0 0   100%
astrocyte/pipeline/rerank_boosts.py (no function)   23 0 3   100%
astrocyte/pipeline/reranking.py _tokenize_terms   1 0 0   100%
astrocyte/pipeline/reranking.py _content_terms   1 0 0   100%
astrocyte/pipeline/reranking.py _is_name_token   8 1 0   88%
astrocyte/pipeline/reranking.py basic_rerank   15 0 0   100%
astrocyte/pipeline/reranking.py cross_encoder_like_rerank   22 1 0   95%
astrocyte/pipeline/reranking.py llm_pairwise_rerank   25 4 0   84%
astrocyte/pipeline/reranking.py apply_context_diversity   15 1 0   93%
astrocyte/pipeline/reranking.py _proper_names   6 0 0   100%
astrocyte/pipeline/reranking.py _candidate_names   11 4 0   64%
astrocyte/pipeline/reranking.py _parse_ranked_ids   15 4 0   73%
astrocyte/pipeline/reranking.py _is_aggregate_query   2 0 0   100%
astrocyte/pipeline/reranking.py _bigrams   1 0 0   100%
astrocyte/pipeline/reranking.py _layer_boost   5 0 0   100%
astrocyte/pipeline/reranking.py _observation_proof_boost   8 2 0   75%
astrocyte/pipeline/reranking.py (no function)   34 0 2   100%
astrocyte/pipeline/retain_fsm/__init__.py (no function)   5 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py Checkpoint.save   0 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py Checkpoint.load   0 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py Checkpoint.delete   0 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py InMemoryCheckpoint.__init__   1 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py InMemoryCheckpoint.save   1 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py InMemoryCheckpoint.load   4 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py InMemoryCheckpoint.delete   1 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py FileCheckpoint.__init__   2 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py FileCheckpoint._path_for   5 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py FileCheckpoint.save   5 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py FileCheckpoint.load   9 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py FileCheckpoint.delete   5 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py _safe_segment   2 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py _serialise   2 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py _deserialise   14 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py _iso   1 0 0   100%
astrocyte/pipeline/retain_fsm/checkpoint.py _parse_iso   6 2 0   67%
astrocyte/pipeline/retain_fsm/checkpoint.py (no function)   31 0 2   100%
astrocyte/pipeline/retain_fsm/context.py RetainContext.duration_ms_by_state   6 1 0   83%
astrocyte/pipeline/retain_fsm/context.py (no function)   38 0 3   100%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM.__init__   2 0 0   100%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM.register   1 0 0   100%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM.registered_states   1 1 0   0%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM.run   55 5 0   91%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM._run_parallel   5 0 0   100%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM._run_parallel._one   19 5 0   74%
astrocyte/pipeline/retain_fsm/engine.py RetainFSM.resume   1 0 0   100%
astrocyte/pipeline/retain_fsm/engine.py (no function)   27 0 2   100%
astrocyte/pipeline/retain_fsm/states.py state_init   7 1 0   86%
astrocyte/pipeline/retain_fsm/states.py state_read   1 0 0   100%
astrocyte/pipeline/retain_fsm/states.py state_complete   1 0 0   100%
astrocyte/pipeline/retain_fsm/states.py register_default_states   2 0 0   100%
astrocyte/pipeline/retain_fsm/states.py (no function)   8 0 2   100%
astrocyte/pipeline/retrieval.py parallel_retrieve   54 2 7   96%
astrocyte/pipeline/retrieval.py _timed   4 0 0   100%
astrocyte/pipeline/retrieval.py _semantic_search   2 0 0   100%
astrocyte/pipeline/retrieval.py _timed_hybrid_semantic_keyword_search   4 0 0   100%
astrocyte/pipeline/retrieval.py _hybrid_hits_to_scored_items   6 0 0   100%
astrocyte/pipeline/retrieval.py _graph_search   2 0 0   100%
astrocyte/pipeline/retrieval.py _keyword_search   5 0 0   100%
astrocyte/pipeline/retrieval.py _temporal_search   30 1 0   97%
astrocyte/pipeline/retrieval.py _extract_timestamp   16 3 0   81%
astrocyte/pipeline/retrieval.py (no function)   20 0 3   100%
astrocyte/pipeline/section_compile.py _slugify   4 4 0   0%
astrocyte/pipeline/section_compile.py _format_section_for_prompt   3 0 0   100%
astrocyte/pipeline/section_compile.py _synthesize_observation   20 20 0   0%
astrocyte/pipeline/section_compile.py _revise_observation   24 0 0   100%
astrocyte/pipeline/section_compile.py revise_wikis_for_document   47 16 0   66%
astrocyte/pipeline/section_compile.py compile_sections_for_document   67 67 0   0%
astrocyte/pipeline/section_compile.py (no function)   17 0 3   100%
astrocyte/pipeline/section_embedding.py embed_sections   14 0 0   100%
astrocyte/pipeline/section_embedding.py (no function)   5 0 3   100%
astrocyte/pipeline/section_entity_extraction.py extract_entities_for_section   33 3 0   91%
astrocyte/pipeline/section_entity_extraction.py (no function)   9 0 3   100%
astrocyte/pipeline/section_event_extraction.py _parse_iso_date   9 9 0   0%
astrocyte/pipeline/section_event_extraction.py extract_event_date_for_section   18 18 0   0%
astrocyte/pipeline/section_event_extraction.py (no function)   10 10 3   0%
astrocyte/pipeline/section_fact_extraction.py _parse_iso_date   8 0 0   100%
astrocyte/pipeline/section_fact_extraction.py extract_facts_for_section   72 8 0   89%
astrocyte/pipeline/section_fact_extraction.py (no function)   14 0 3   100%
astrocyte/pipeline/section_link_extraction.py extract_links_for_section   48 48 0   0%
astrocyte/pipeline/section_link_extraction.py (no function)   11 11 3   0%
astrocyte/pipeline/section_recall.py _rrf_fuse_section_hits   14 0 0   100%
astrocyte/pipeline/section_recall.py select_strategies_for_mode   8 0 0   100%
astrocyte/pipeline/section_recall.py section_recall   58 23 0   60%
astrocyte/pipeline/section_recall.py section_recall._semantic   8 0 0   100%
astrocyte/pipeline/section_recall.py section_recall._keyword   7 0 0   100%
astrocyte/pipeline/section_recall.py section_recall._entity   8 0 0   100%
astrocyte/pipeline/section_recall.py section_recall._temporal   8 0 0   100%
astrocyte/pipeline/section_recall.py (no function)   31 0 2   100%
astrocyte/pipeline/section_reflect.py format_section_memory_id   1 0 0   100%
astrocyte/pipeline/section_reflect.py parse_section_memory_id   13 0 0   100%
astrocyte/pipeline/section_reflect.py section_tuples_to_memory_hits   8 0 0   100%
astrocyte/pipeline/section_reflect.py make_section_recall_fn   3 0 0   100%
astrocyte/pipeline/section_reflect.py make_section_recall_fn._recall   7 3 0   57%
astrocyte/pipeline/section_reflect.py make_section_expand_fn   2 0 0   100%
astrocyte/pipeline/section_reflect.py make_section_expand_fn._expand   11 3 0   73%
astrocyte/pipeline/section_reflect.py make_list_entities_fn   2 0 0   100%
astrocyte/pipeline/section_reflect.py make_list_entities_fn._list   5 0 0   100%
astrocyte/pipeline/section_reflect.py cited_ids_to_line_nums   14 0 0   100%
astrocyte/pipeline/section_reflect.py (no function)   15 0 2   100%
astrocyte/pipeline/section_rerank.py rerank_fused_hits   27 1 0   96%
astrocyte/pipeline/section_rerank.py build_constrained_skeleton   11 0 0   100%
astrocyte/pipeline/section_rerank.py build_constrained_skeleton._walk   16 0 0   100%
astrocyte/pipeline/section_rerank.py (no function)   9 0 4   100%
astrocyte/pipeline/semantic_link_graph.py compute_semantic_links   6 0 0   100%
astrocyte/pipeline/semantic_link_graph.py compute_semantic_links._search_one   19 4 0   79%
astrocyte/pipeline/semantic_link_graph.py (no function)   7 0 0   100%
astrocyte/pipeline/spreading_activation.py expand_via_shared_entities   13 13 0   0%
astrocyte/pipeline/spreading_activation.py (no function)   5 5 2   0%
astrocyte/pipeline/structured_doc.py StructuredDocument.section_by_id   4 0 0   100%
astrocyte/pipeline/structured_doc.py StructuredDocument.section_index   4 0 0   100%
astrocyte/pipeline/structured_doc.py slugify_heading   2 0 0   100%
astrocyte/pipeline/structured_doc.py make_unique_id   6 0 0   100%
astrocyte/pipeline/structured_doc.py render_block   10 1 0   90%
astrocyte/pipeline/structured_doc.py render_section   5 0 0   100%
astrocyte/pipeline/structured_doc.py render_document   3 0 0   100%
astrocyte/pipeline/structured_doc.py _strip_separators   1 0 0   100%
astrocyte/pipeline/structured_doc.py _split_blocks   19 0 0   100%
astrocyte/pipeline/structured_doc.py _parse_block   22 0 0   100%
astrocyte/pipeline/structured_doc.py parse_markdown   37 6 0   84%
astrocyte/pipeline/structured_doc.py parse_markdown.flush_pending_into   5 0 0   100%
astrocyte/pipeline/structured_doc.py (no function)   48 0 0   100%
astrocyte/pipeline/tasks.py TaskBackend.enqueue   1 1 0   0%
astrocyte/pipeline/tasks.py TaskBackend.claim   1 1 0   0%
astrocyte/pipeline/tasks.py TaskBackend.complete   1 1 0   0%
astrocyte/pipeline/tasks.py TaskBackend.fail   1 1 0   0%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.__init__   1 0 0   100%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.enqueue   6 0 0   100%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.claim   11 0 0   100%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.complete   5 0 0   100%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.fail   8 8 0   0%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.get   1 0 0   100%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.list_by_status   4 4 0   0%
astrocyte/pipeline/tasks.py InMemoryTaskBackend.recover_stale   14 2 0   86%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher.__init__   1 0 0   100%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher.run   13 3 0   77%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._compile_bank   4 4 0   0%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._compile_persona_page   32 14 0   56%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._index_wiki_page_vector   9 2 0   78%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._project_entity_edges   27 2 0   93%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._normalize_temporal_facts   12 1 0   92%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._lint_wiki_page   8 1 0   88%
astrocyte/pipeline/tasks.py MemoryTaskDispatcher._build_persona_page   11 1 0   91%
astrocyte/pipeline/tasks.py MemoryTaskWorker.__init__   4 0 0   100%
astrocyte/pipeline/tasks.py MemoryTaskWorker.run_once   9 3 0   67%
astrocyte/pipeline/tasks.py split_texts_by_token_budget   16 1 0   94%
astrocyte/pipeline/tasks.py _list_bank_vectors   8 0 0   100%
astrocyte/pipeline/tasks.py _item_person_names   8 0 0   100%
astrocyte/pipeline/tasks.py _item_matches_person   3 1 0   67%
astrocyte/pipeline/tasks.py _item_in_scope   11 2 0   82%
astrocyte/pipeline/tasks.py _slug   1 0 0   100%
astrocyte/pipeline/tasks.py _optional_str   4 0 0   100%
astrocyte/pipeline/tasks.py _required_str   4 1 0   75%
astrocyte/pipeline/tasks.py (no function)   76 0 4   100%
astrocyte/pipeline/temporal.py extract_temporal_hints   12 1 0   92%
astrocyte/pipeline/temporal.py temporal_guidance_for_query   7 0 0   100%
astrocyte/pipeline/temporal.py normalize_relative_temporal_facts   33 21 0   36%
astrocyte/pipeline/temporal.py temporal_metadata   4 1 0   75%
astrocyte/pipeline/temporal.py query_time_range   9 9 0   0%
astrocyte/pipeline/temporal.py _fact   1 0 0   100%
astrocyte/pipeline/temporal.py _number   1 1 0   0%
astrocyte/pipeline/temporal.py (no function)   25 0 0   100%
astrocyte/pipeline/temporal_arithmetic.py detect_temporal_arithmetic   11 11 0   0%
astrocyte/pipeline/temporal_arithmetic.py detect_unit   8 8 0   0%
astrocyte/pipeline/temporal_arithmetic.py parse_events   23 23 0   0%
astrocyte/pipeline/temporal_arithmetic.py format_delta   8 8 0   0%
astrocyte/pipeline/temporal_arithmetic.py find_event_date   52 52 0   0%
astrocyte/pipeline/temporal_arithmetic.py compute_temporal_arithmetic_answer   53 53 0   0%
astrocyte/pipeline/temporal_arithmetic.py (no function)   22 22 3   0%
astrocyte/pipeline/temporal_dateparser.py _lazy_load   14 6 0   57%
astrocyte/pipeline/temporal_dateparser.py extract_temporal_range_via_dateparser   26 22 0   15%
astrocyte/pipeline/temporal_dateparser.py widen_to_neighbourhood   2 0 0   100%
astrocyte/pipeline/temporal_dateparser.py (no function)   10 0 0   100%
astrocyte/pipeline/temporal_expressions.py _coerce_n   7 4 0   43%
astrocyte/pipeline/temporal_expressions.py _range_centred_on   6 1 0   83%
astrocyte/pipeline/temporal_expressions.py expand_temporal_expression   44 16 0   64%
astrocyte/pipeline/temporal_expressions.py (no function)   11 0 0   100%
astrocyte/pipeline/temporal_resolution.py _lazy_load   10 2 0   80%
astrocyte/pipeline/temporal_resolution.py resolve_event_date   20 17 0   15%
astrocyte/pipeline/temporal_resolution.py (no function)   10 0 0   100%
astrocyte/pipeline/tiered_retrieval.py TieredRetriever.__init__   7 0 0   100%
astrocyte/pipeline/tiered_retrieval.py TieredRetriever._invoke_full_recall   3 0 0   100%
astrocyte/pipeline/tiered_retrieval.py TieredRetriever.notify_retain   4 0 0   100%
astrocyte/pipeline/tiered_retrieval.py TieredRetriever.retrieve   55 3 0   95%
astrocyte/pipeline/tiered_retrieval.py TieredRetriever._reformulate_query   8 0 0   100%
astrocyte/pipeline/tiered_retrieval.py (no function)   14 0 2   100%
astrocyte/pipeline/token_budget.py _get_encoding   7 0 0   100%
astrocyte/pipeline/token_budget.py count_tokens   4 0 0   100%
astrocyte/pipeline/token_budget.py pack_to_budget   16 0 0   100%
astrocyte/pipeline/token_budget.py (no function)   11 0 0   100%
astrocyte/pipeline/trend.py _normalize_ts   3 0 0   100%
astrocyte/pipeline/trend.py compute_trend   26 1 0   96%
astrocyte/pipeline/trend.py (no function)   11 0 0   100%
astrocyte/pipeline/utility.py compute_utility   14 0 0   100%
astrocyte/pipeline/utility.py UtilityTracker.__init__   3 0 0   100%
astrocyte/pipeline/utility.py UtilityTracker.record_recall   10 1 0   90%
astrocyte/pipeline/utility.py UtilityTracker.record_creation   5 0 0   100%
astrocyte/pipeline/utility.py UtilityTracker.get_utility   8 0 0   100%
astrocyte/pipeline/utility.py UtilityTracker.get_recall_count   2 0 0   100%
astrocyte/pipeline/utility.py UtilityTracker.clear   1 0 0   100%
astrocyte/pipeline/utility.py (no function)   26 0 0   100%
astrocyte/pipeline/wiki_incremental.py update_affected_wikis_for_document   22 3 0   86%
astrocyte/pipeline/wiki_incremental.py _update_one_wiki   40 7 0   82%
astrocyte/pipeline/wiki_incremental.py (no function)   27 0 3   100%
astrocyte/pipeline/wiki_lint.py WikiLintReport.is_clean   1 0 0   100%
astrocyte/pipeline/wiki_lint.py WikiLintReport.kinds_for   1 0 0   100%
astrocyte/pipeline/wiki_lint.py lint_one_wiki   18 0 0   100%
astrocyte/pipeline/wiki_lint.py lint_wiki_pages   11 0 0   100%
astrocyte/pipeline/wiki_lint.py (no function)   20 0 2   100%
astrocyte/policy/__init__.py (no function)   0 0 0   100%
astrocyte/policy/barriers.py _luhn_check   11 0 0   100%
astrocyte/policy/barriers.py PiiScanner.__init__   19 0 0   100%
astrocyte/policy/barriers.py PiiScanner._init_ner   5 0 0   100%
astrocyte/policy/barriers.py PiiScanner.scan   7 2 0   71%
astrocyte/policy/barriers.py PiiScanner._scan_regex   10 1 0   90%
astrocyte/policy/barriers.py PiiScanner._merge_matches   8 0 0   100%
astrocyte/policy/barriers.py PiiScanner.scan_async   11 2 0   82%
astrocyte/policy/barriers.py PiiScanner.apply   2 0 0   100%
astrocyte/policy/barriers.py PiiScanner.apply_async   2 0 0   100%
astrocyte/policy/barriers.py PiiScanner._apply_matches   21 0 0   100%
astrocyte/policy/barriers.py ContentValidator.__init__   3 0 0   100%
astrocyte/policy/barriers.py ContentValidator.validate   8 0 0   100%
astrocyte/policy/barriers.py MetadataSanitizer.__init__   2 0 0   100%
astrocyte/policy/barriers.py MetadataSanitizer.sanitize   19 0 0   100%
astrocyte/policy/barriers.py (no function)   28 0 3   100%
astrocyte/policy/escalation.py CircuitBreaker.__init__   5 0 0   100%
astrocyte/policy/escalation.py CircuitBreaker.state   7 0 0   100%
astrocyte/policy/escalation.py CircuitBreaker.is_open   7 0 0   100%
astrocyte/policy/escalation.py CircuitBreaker.check   5 0 0   100%
astrocyte/policy/escalation.py CircuitBreaker.record_success   4 0 0   100%
astrocyte/policy/escalation.py CircuitBreaker.record_failure   7 1 0   86%
astrocyte/policy/escalation.py CircuitBreaker.reset   2 0 0   100%
astrocyte/policy/escalation.py DegradedModeHandler.__init__   1 0 0   100%
astrocyte/policy/escalation.py DegradedModeHandler.handle_recall   5 1 0   80%
astrocyte/policy/escalation.py DegradedModeHandler.handle_retain   2 0 0   100%
astrocyte/policy/escalation.py (no function)   26 0 0   100%
astrocyte/policy/homeostasis.py RateLimiter.__init__   5 0 0   100%
astrocyte/policy/homeostasis.py RateLimiter._get_bucket   6 2 0   67%
astrocyte/policy/homeostasis.py RateLimiter._refill   4 0 0   100%
astrocyte/policy/homeostasis.py RateLimiter.check   7 0 0   100%
astrocyte/policy/homeostasis.py RateLimiter.record   5 5 0   0%
astrocyte/policy/homeostasis.py RateLimiter.check_and_record   8 0 0   100%
astrocyte/policy/homeostasis.py _TiktokenCache.get   9 2 0   78%
astrocyte/policy/homeostasis.py _heuristic_token_count   9 9 0   0%
astrocyte/policy/homeostasis.py count_tokens   6 1 0   83%
astrocyte/policy/homeostasis.py enforce_token_budget   11 0 0   100%
astrocyte/policy/homeostasis.py QuotaTracker.__init__   1 0 0   100%
astrocyte/policy/homeostasis.py QuotaTracker._today   1 0 0   100%
astrocyte/policy/homeostasis.py QuotaTracker.check   8 1 0   88%
astrocyte/policy/homeostasis.py QuotaTracker.record   11 5 0   55%
astrocyte/policy/homeostasis.py QuotaTracker.get_count   6 1 0   83%
astrocyte/policy/homeostasis.py (no function)   34 0 0   100%
astrocyte/policy/llm_scanner.py LlmPiiScanner.__init__   1 0 0   100%
astrocyte/policy/llm_scanner.py LlmPiiScanner.scan   7 0 0   100%
astrocyte/policy/llm_scanner.py _parse_llm_response   42 5 0   88%
astrocyte/policy/llm_scanner.py _find_unused_occurrence   8 2 0   75%
astrocyte/policy/llm_scanner.py (no function)   13 0 2   100%
astrocyte/policy/ner_scanner.py NerPiiScanner.__init__   7 3 0   57%
astrocyte/policy/ner_scanner.py NerPiiScanner.scan   7 7 0   0%
astrocyte/policy/ner_scanner.py (no function)   8 0 0   100%
astrocyte/policy/observability.py span   4 1 0   75%
astrocyte/policy/observability.py _NoOpSpan.set_attribute   1 1 0   0%
astrocyte/policy/observability.py _NoOpSpan.add_event   1 1 0   0%
astrocyte/policy/observability.py _NoOpSpan.set_status   1 1 0   0%
astrocyte/policy/observability.py StructuredLogger.__init__   1 0 0   100%
astrocyte/policy/observability.py StructuredLogger.log   4 0 0   100%
astrocyte/policy/observability.py MetricsCollector.__init__   4 0 0   100%
astrocyte/policy/observability.py MetricsCollector._get_counter   5 5 0   0%
astrocyte/policy/observability.py MetricsCollector._get_histogram   5 5 0   0%
astrocyte/policy/observability.py MetricsCollector._get_gauge   5 5 0   0%
astrocyte/policy/observability.py MetricsCollector.inc_counter   5 3 0   40%
astrocyte/policy/observability.py MetricsCollector.observe_histogram   5 3 0   40%
astrocyte/policy/observability.py MetricsCollector.set_gauge   5 3 0   40%
astrocyte/policy/observability.py timed   5 0 0   100%
astrocyte/policy/observability.py (no function)   49 4 0   92%
astrocyte/policy/signal_quality.py cosine_similarity   8 0 0   100%
astrocyte/policy/signal_quality.py DedupDetector.__init__   3 0 0   100%
astrocyte/policy/signal_quality.py DedupDetector._touch_bank   2 0 0   100%
astrocyte/policy/signal_quality.py DedupDetector.is_duplicate   11 0 0   100%
astrocyte/policy/signal_quality.py DedupDetector.add   10 2 0   80%
astrocyte/policy/signal_quality.py DedupDetector.clear_bank   1 0 0   100%
astrocyte/policy/signal_quality.py DedupDetector.remove   8 0 0   100%
astrocyte/policy/signal_quality.py (no function)   11 0 0   100%
astrocyte/portability.py _portability_roots   2 0 0   100%
astrocyte/portability.py _safe_resolve   15 0 0   100%
astrocyte/portability.py export_bank   41 6 0   85%
astrocyte/portability.py read_ama_header   16 2 0   88%
astrocyte/portability.py iter_ama_memories   18 6 0   67%
astrocyte/portability.py import_bank   28 12 0   57%
astrocyte/portability.py (no function)   44 0 0   100%
astrocyte/provider.py VectorStore.store_vectors   1 1 0   0%
astrocyte/provider.py VectorStore.search_similar   1 1 0   0%
astrocyte/provider.py VectorStore.delete   1 1 0   0%
astrocyte/provider.py VectorStore.list_vectors   1 1 0   0%
astrocyte/provider.py VectorStore.health   1 1 0   0%
astrocyte/provider.py GraphStore.store_entities   1 1 0   0%
astrocyte/provider.py GraphStore.store_links   1 1 0   0%
astrocyte/provider.py GraphStore.link_memories_to_entities   1 1 0   0%
astrocyte/provider.py GraphStore.store_memory_links   1 1 0   0%
astrocyte/provider.py GraphStore.find_memory_links   1 1 0   0%
astrocyte/provider.py GraphStore.query_neighbors   1 1 0   0%
astrocyte/provider.py GraphStore.query_entities   1 1 0   0%
astrocyte/provider.py GraphStore.find_entity_candidates   1 1 0   0%
astrocyte/provider.py GraphStore.find_entity_candidates_scored   1 1 0   0%
astrocyte/provider.py GraphStore.store_entity_link   1 1 0   0%
astrocyte/provider.py GraphStore.health   1 1 0   0%
astrocyte/provider.py DocumentStore.store_document   1 1 0   0%
astrocyte/provider.py DocumentStore.search_fulltext   1 1 0   0%
astrocyte/provider.py DocumentStore.get_document   1 1 0   0%
astrocyte/provider.py DocumentStore.health   1 1 0   0%
astrocyte/provider.py WikiStore.upsert_page   1 1 0   0%
astrocyte/provider.py WikiStore.get_page   1 1 0   0%
astrocyte/provider.py WikiStore.list_pages   1 1 0   0%
astrocyte/provider.py WikiStore.delete_page   1 1 0   0%
astrocyte/provider.py WikiStore.health   1 1 0   0%
astrocyte/provider.py PageIndexStore.save_document   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_sections   0 0 0   100%
astrocyte/provider.py PageIndexStore.load_document   0 0 0   100%
astrocyte/provider.py PageIndexStore.load_skeleton   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_section_embeddings   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_section_entities   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_section_links   0 0 0   100%
astrocyte/provider.py PageIndexStore.populate_semantic_knn_links   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_sections_semantic   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_sections_keyword   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_sections_by_entities   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_sections_temporal   0 0 0   100%
astrocyte/provider.py PageIndexStore.expand_section_links   0 0 0   100%
astrocyte/provider.py PageIndexStore.expand_sections_by_shared_entities   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_facts   0 0 0   100%
astrocyte/provider.py PageIndexStore.update_fact_embeddings   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_facts_semantic   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_facts_by_entity   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_facts_temporal   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_facts_keyword   0 0 0   100%
astrocyte/provider.py PageIndexStore.count_facts_matching   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_section_event_dates   0 0 0   100%
astrocyte/provider.py PageIndexStore.load_sections_with_embeddings   0 0 0   100%
astrocyte/provider.py PageIndexStore.save_wiki_page   0 0 0   100%
astrocyte/provider.py PageIndexStore.search_wiki_pages_semantic   0 0 0   100%
astrocyte/provider.py PageIndexStore.count_wiki_pages_for_doc   0 0 0   100%
astrocyte/provider.py PageIndexStore.list_wiki_pages_for_doc   1 1 0   0%
astrocyte/provider.py PageIndexStore.list_wikis_affected_by_entities   2 2 0   0%
astrocyte/provider.py PageIndexStore.list_distinct_entities   0 0 0   100%
astrocyte/provider.py PageIndexStore.health   0 0 0   100%
astrocyte/provider.py MentalModelStore.upsert   1 1 0   0%
astrocyte/provider.py MentalModelStore.get   1 1 0   0%
astrocyte/provider.py MentalModelStore.list   1 1 0   0%
astrocyte/provider.py MentalModelStore.delete   1 1 0   0%
astrocyte/provider.py MentalModelStore.update_via_ops   1 1 0   0%
astrocyte/provider.py MentalModelStore.refresh   1 1 0   0%
astrocyte/provider.py MentalModelStore.health   1 1 0   0%
astrocyte/provider.py SourceStore.store_document   1 1 0   0%
astrocyte/provider.py SourceStore.get_document   1 1 0   0%
astrocyte/provider.py SourceStore.find_document_by_hash   1 1 0   0%
astrocyte/provider.py SourceStore.list_documents   1 1 0   0%
astrocyte/provider.py SourceStore.delete_document   1 1 0   0%
astrocyte/provider.py SourceStore.store_chunks   1 1 0   0%
astrocyte/provider.py SourceStore.get_chunk   1 1 0   0%
astrocyte/provider.py SourceStore.list_chunks   1 1 0   0%
astrocyte/provider.py SourceStore.find_chunk_by_hash   1 1 0   0%
astrocyte/provider.py SourceStore.health   1 1 0   0%
astrocyte/provider.py EngineProvider.capabilities   1 1 0   0%
astrocyte/provider.py EngineProvider.health   1 1 0   0%
astrocyte/provider.py EngineProvider.retain   1 1 0   0%
astrocyte/provider.py EngineProvider.recall   1 1 0   0%
astrocyte/provider.py EngineProvider.reflect   1 1 0   0%
astrocyte/provider.py EngineProvider.forget   1 1 0   0%
astrocyte/provider.py LLMProvider.complete   1 1 0   0%
astrocyte/provider.py LLMProvider.embed   1 1 0   0%
astrocyte/provider.py LLMProvider.capabilities   1 1 0   0%
astrocyte/provider.py OutboundTransportProvider.apply   1 1 0   0%
astrocyte/provider.py OutboundTransportProvider.subprocess_env   1 1 0   0%
astrocyte/provider.py OutboundTransportProvider.capabilities   1 1 0   0%
astrocyte/provider.py check_spi_version   8 0 0   100%
astrocyte/provider.py (no function)   119 0 2   100%
astrocyte/providers/__init__.py (no function)   0 0 0   100%
astrocyte/providers/openai.py OpenAIProvider.__init__   19 5 0   74%
astrocyte/providers/openai.py OpenAIProvider.capabilities   1 1 0   0%
astrocyte/providers/openai.py OpenAIProvider.complete   31 2 0   94%
astrocyte/providers/openai.py OpenAIProvider.embed   6 6 0   0%
astrocyte/providers/openai.py _sanitize_text   1 0 0   100%
astrocyte/providers/openai.py _to_oai_message   15 11 0   27%
astrocyte/providers/openai.py (no function)   13 0 0   100%
astrocyte/recall/__init__.py (no function)   4 0 0   100%
astrocyte/recall/authority.py merge_retain_metadata_authority_tier   13 1 0   92%
astrocyte/recall/authority.py load_authority_rules   6 4 0   33%
astrocyte/recall/authority.py build_authority_context   32 1 0   97%
astrocyte/recall/authority.py apply_recall_authority   6 0 0   100%
astrocyte/recall/authority.py (no function)   10 0 0   100%
astrocyte/recall/merge_result.py merge_external_into_recall_result   12 2 0   83%
astrocyte/recall/merge_result.py (no function)   3 0 0   100%
astrocyte/recall/oauth.py _client_credentials_cache_key   7 4 0   43%
astrocyte/recall/oauth.py _refresh_cache_key   4 0 0   100%
astrocyte/recall/oauth.py _normalize_auth_method   4 1 0   75%
astrocyte/recall/oauth.py post_oauth2_token_endpoint   16 4 0   75%
astrocyte/recall/oauth.py _parse_expires   8 2 0   75%
astrocyte/recall/oauth.py fetch_oauth2_client_credentials_token   19 3 0   84%
astrocyte/recall/oauth.py fetch_oauth2_refresh_access_token   28 4 0   86%
astrocyte/recall/oauth.py exchange_oauth2_authorization_code   4 1 0   75%
astrocyte/recall/oauth.py clear_oauth2_token_cache_for_tests   1 0 0   100%
astrocyte/recall/oauth.py (no function)   23 0 0   100%
astrocyte/recall/proxy.py _expand_proxy_url   4 0 0   100%
astrocyte/recall/proxy.py _forbidden_proxy_target_ip_obj   1 0 0   100%
astrocyte/recall/proxy.py _unsafe_literal_ip   5 0 0   100%
astrocyte/recall/proxy.py validate_proxy_recall_url   13 0 0   100%
astrocyte/recall/proxy.py _sync_dns_validate_and_first_public_ip   19 4 0   79%
astrocyte/recall/proxy.py _is_literal_ip_host   5 0 0   100%
astrocyte/recall/proxy.py _proxy_recall_host_header_value   6 0 0   100%
astrocyte/recall/proxy.py _rebuild_request_url_pinned_to_ip   9 2 0   78%
astrocyte/recall/proxy.py _httpx_url_and_query_params   8 1 0   88%
astrocyte/recall/proxy.py validate_proxy_recall_dns   1 1 0   0%
astrocyte/recall/proxy.py auth_with_oauth_cache_namespace   3 0 0   100%
astrocyte/recall/proxy.py build_proxy_headers   33 3 0   91%
astrocyte/recall/proxy.py _deep_replace_placeholders   9 0 0   100%
astrocyte/recall/proxy.py _resolve_post_json   18 11 0   39%
astrocyte/recall/proxy.py _row_to_hit   20 0 0   100%
astrocyte/recall/proxy.py _parse_hits_payload   6 0 0   100%
astrocyte/recall/proxy.py _record_proxy_metrics   5 0 0   100%
astrocyte/recall/proxy.py fetch_proxy_recall_hits   53 5 0   91%
astrocyte/recall/proxy.py gather_proxy_hits_for_bank   15 4 0   73%
astrocyte/recall/proxy.py merge_manual_and_proxy_hits   4 0 0   100%
astrocyte/recall/proxy.py (no function)   39 0 2   100%
astrocyte/task_backend.py TaskBackend.__init__   2 0 0   100%
astrocyte/task_backend.py TaskBackend.set_executor   1 0 0   100%
astrocyte/task_backend.py TaskBackend.initialize   0 0 0   100%
astrocyte/task_backend.py TaskBackend.submit   0 0 0   100%
astrocyte/task_backend.py TaskBackend.shutdown   0 0 0   100%
astrocyte/task_backend.py TaskBackend._run   8 0 0   100%
astrocyte/task_backend.py SyncTaskBackend.initialize   1 0 0   100%
astrocyte/task_backend.py SyncTaskBackend.submit   1 0 0   100%
astrocyte/task_backend.py SyncTaskBackend.shutdown   1 0 0   100%
astrocyte/task_backend.py AsyncFireAndTrackBackend.__init__   3 0 0   100%
astrocyte/task_backend.py AsyncFireAndTrackBackend.initialize   1 0 0   100%
astrocyte/task_backend.py AsyncFireAndTrackBackend.submit   10 5 0   50%
astrocyte/task_backend.py AsyncFireAndTrackBackend.shutdown   9 1 0   89%
astrocyte/task_backend.py AsyncFireAndTrackBackend.inflight_count   1 0 0   100%
astrocyte/task_backend.py get_default_task_backend   3 0 0   100%
astrocyte/task_backend.py set_default_task_backend   1 0 0   100%
astrocyte/task_backend.py (no function)   31 0 1   100%
astrocyte/tenancy.py _validate_identifier   3 0 0   100%
astrocyte/tenancy.py get_current_schema   1 0 0   100%
astrocyte/tenancy.py set_current_schema   2 0 0   100%
astrocyte/tenancy.py reset_current_schema   1 0 0   100%
astrocyte/tenancy.py use_schema   4 0 0   100%
astrocyte/tenancy.py fq_table   4 0 0   100%
astrocyte/tenancy.py fq_function   4 0 0   100%
astrocyte/tenancy.py TenantExtension.authenticate   0 0 0   100%
astrocyte/tenancy.py TenantExtension.list_tenants   0 0 0   100%
astrocyte/tenancy.py DefaultTenantExtension.__init__   2 0 0   100%
astrocyte/tenancy.py DefaultTenantExtension.authenticate   1 0 0   100%
astrocyte/tenancy.py DefaultTenantExtension.list_tenants   1 0 0   100%
astrocyte/tenancy.py (no function)   35 0 0   100%
astrocyte/testing/__init__.py (no function)   0 0 0   100%
astrocyte/testing/in_memory.py _cosine_sim   6 0 0   100%
astrocyte/testing/in_memory.py InMemoryVectorStore.__init__   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryVectorStore.store_vectors   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryVectorStore.search_similar   28 3 0   89%
astrocyte/testing/in_memory.py InMemoryVectorStore.delete   6 0 0   100%
astrocyte/testing/in_memory.py InMemoryVectorStore.get_by_chunk_ids   11 2 0   82%
astrocyte/testing/in_memory.py InMemoryVectorStore.list_vectors   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryVectorStore.health   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.__init__   4 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.store_entities   7 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.store_links   8 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.link_memories_to_entities   3 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.query_neighbors   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.query_entities   4 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.find_entity_candidates   4 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.find_entity_candidates_scored   42 5 0   88%
astrocyte/testing/in_memory.py InMemoryGraphStore.find_entity_candidates_scored._sort_key   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.store_memory_links   7 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.find_memory_links   13 3 0   77%
astrocyte/testing/in_memory.py InMemoryGraphStore.get_entity_ids_for_memories   8 1 0   88%
astrocyte/testing/in_memory.py InMemoryGraphStore.expand_entities_via_links   23 23 0   0%
astrocyte/testing/in_memory.py InMemoryGraphStore.increment_mention_counts   7 1 0   86%
astrocyte/testing/in_memory.py InMemoryGraphStore.store_entity_link   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryGraphStore.health   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryDocumentStore.__init__   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryDocumentStore.store_document   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryDocumentStore.search_fulltext   12 0 0   100%
astrocyte/testing/in_memory.py InMemoryDocumentStore.get_document   4 0 0   100%
astrocyte/testing/in_memory.py InMemoryDocumentStore.health   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.__init__   3 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.capabilities   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.health   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.retain   7 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.recall   24 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.reflect   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.soft_delete   13 1 0   92%
astrocyte/testing/in_memory.py InMemoryEngineProvider.forget   21 0 0   100%
astrocyte/testing/in_memory.py InMemoryEngineProvider.forget._should_keep   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryWikiStore.__init__   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryWikiStore.upsert_page   10 0 0   100%
astrocyte/testing/in_memory.py InMemoryWikiStore.get_page   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryWikiStore.list_pages   6 1 0   83%
astrocyte/testing/in_memory.py InMemoryWikiStore.delete_page   6 0 0   100%
astrocyte/testing/in_memory.py InMemoryWikiStore.health   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryWikiStore.revision_history   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.__init__   7 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_document   10 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_sections   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.load_document   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.load_skeleton   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_section_embeddings   16 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_section_entities   7 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_section_links   8 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.populate_semantic_knn_links   17 17 0   0%
astrocyte/testing/in_memory.py InMemoryPageIndexStore._docs_in_bank   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore._section_passes_session   6 4 0   33%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_sections_semantic   14 5 0   64%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_sections_keyword   21 3 0   86%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_sections_by_entities   17 3 0   82%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_sections_temporal   12 1 0   92%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.expand_section_links   18 4 0   78%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.expand_sections_by_shared_entities   24 24 0   0%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.list_distinct_entities   16 1 0   94%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_facts   5 1 0   80%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.update_fact_embeddings   11 1 0   91%
astrocyte/testing/in_memory.py InMemoryPageIndexStore._matches_session   8 1 0   88%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_semantic   18 3 0   83%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_semantic._cos   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_by_entity   17 3 0   82%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_keyword   22 4 0   82%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_temporal   12 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_temporal._in_range   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_temporal._qualifies   6 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_facts_temporal._sort_key   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.count_facts_matching   12 1 0   92%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_section_event_dates   17 17 0   0%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.load_sections_with_embeddings   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.save_wiki_page   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_wiki_pages_semantic   18 18 0   0%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.search_wiki_pages_semantic._cos   7 7 0   0%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.count_wiki_pages_for_doc   3 3 0   0%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.list_wiki_pages_for_doc   3 0 0   100%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.list_wikis_affected_by_entities   19 2 0   89%
astrocyte/testing/in_memory.py InMemoryPageIndexStore.health   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.__init__   2 0 0   100%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.upsert   15 1 0   93%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.get   1 0 0   100%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.list   6 0 0   100%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.delete   5 0 0   100%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.update_via_ops   21 0 0   100%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.refresh   13 1 0   92%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.health   1 1 0   0%
astrocyte/testing/in_memory.py InMemoryMentalModelStore.revision_history   1 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.__init__   4 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.store_document   15 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.get_document   1 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.find_document_by_hash   4 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.list_documents   5 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.delete_document   13 2 0   85%
astrocyte/testing/in_memory.py InMemorySourceStore.store_chunks   19 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.get_chunk   1 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.list_chunks   3 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.find_chunk_by_hash   4 0 0   100%
astrocyte/testing/in_memory.py InMemorySourceStore.health   1 0 0   100%
astrocyte/testing/in_memory.py MockLLMProvider.__init__   5 1 0   80%
astrocyte/testing/in_memory.py MockLLMProvider.capabilities   1 0 0   100%
astrocyte/testing/in_memory.py MockLLMProvider.complete   12 0 0   100%
astrocyte/testing/in_memory.py MockLLMProvider.embed   1 0 0   100%
astrocyte/testing/in_memory.py MockLLMProvider._bow_embed   15 1 0   93%
astrocyte/testing/in_memory.py _normalize_terms   2 0 0   100%
astrocyte/testing/in_memory.py _extractive_synthesize   32 2 0   94%
astrocyte/testing/in_memory.py (no function)   129 0 0   100%
astrocyte/types.py VectorItem.__post_init__   2 1 0   50%
astrocyte/types.py VectorHit.__post_init__   2 1 0   50%
astrocyte/types.py Dispositions.__post_init__   4 1 0   75%
astrocyte/types.py AccessGrant.__post_init__   3 1 0   67%
astrocyte/types.py EvalResult.to_dict   3 3 0   0%
astrocyte/types.py EvalResult.to_dict._convert   3 3 0   0%
astrocyte/types.py EvalResult.to_json   1 1 0   0%
astrocyte/types.py MemoryFact.chunk_id   3 3 0   0%
astrocyte/types.py MemoryFactHit.chunk_id   3 1 0   67%
astrocyte/types.py (no function)   683 0 0   100%
Total     17787 3240 248   82%

No items found using the specified filter.