Memori is agent-native memory infrastructure. A LLM-agnostic layer that turns agent execution and conversation into structured, persistent state for production systems. Built for enterprise, Memori works with the data infrastructure you already run, no rip-and-replace, and deploys across managed cloud, single-tenant cloud, VPC, and on-premises.
This report summarizes scanner evidence for MemoriLabs/Memori, a Python project with 17,148 GitHub stars. SynthScan examined 92,963 lines of code across 540 source files, recording 1810 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 34.1 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1263 finding(s).
Are imports declared and package/API names verified? 253 finding(s).
Are wrappers, guards, and repeated structures necessary? 1503 finding(s).
Which changes need focused human review? 1810 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1810 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | memori-ts/src/utils/utils.ts | 24 | function collectSummariesFromFacts(facts: ParsedFact[]): ParsedSummary[] { | CODE |
| LOW | memori-ts/src/utils/utils.ts | 51 | function attachRawSummariesToFacts(facts: RecallItem[], summaries: RecallSummary[]): RecallItem[] { | CODE |
| LOW | memori-ts/src/utils/utils.ts | 171 | export function extractLastUserMessageString(messages: Message[]): string | undefined { | CODE |
| LOW | memori-ts/src/utils/utils.ts | 176 | export function extractLastUserMessageObject(messages: Message[]): Message | undefined { | CODE |
| LOW | tests/test_utils.py | 51 | def test_format_date_created_iso_z(): | CODE |
| LOW | tests/test_utils.py | 55 | def test_format_date_created_none(): | CODE |
| LOW | tests/test_typing_dx.py | 8 | def test_package_includes_py_typed_marker() -> None: | CODE |
| LOW | tests/test_typing_dx.py | 13 | def test_public_api_has_annotations_for_primary_methods() -> None: | CODE |
| LOW | tests/test_typing_dx.py | 41 | def test_public_api_has_hover_docstrings_for_primary_methods() -> None: | CODE |
| LOW | tests/test_agent.py | 8 | def test_memori_accepts_programmatic_api_key(monkeypatch): | CODE |
| LOW | tests/test_agent.py | 19 | def test_memori_accepts_programmatic_base_url(monkeypatch): | CODE |
| LOW | tests/test_agent.py | 36 | def test_sync_api_uses_configured_timeout(monkeypatch, mocker): | CODE |
| LOW | tests/test_agent.py | 60 | def test_agent_recall_builds_query_string(monkeypatch, mocker): | CODE |
| LOW | tests/test_agent.py | 92 | def test_agent_recall_rejects_session_without_project(monkeypatch): | CODE |
| LOW | tests/test_agent.py | 101 | def test_agent_recall_summary_builds_query_string(monkeypatch, mocker): | CODE |
| LOW | tests/test_agent.py | 120 | def test_agent_compaction_builds_query_string(monkeypatch, mocker): | CODE |
| LOW | tests/test_agent.py | 143 | def test_agent_compaction_requires_project(monkeypatch): | CODE |
| LOW | tests/test_agent.py | 152 | def test_capture_agent_turn_writes_turn_then_collector(monkeypatch, mocker): | CODE |
| LOW | tests/test_agent.py | 203 | def test_capture_agent_turn_swallow_collector_failure(monkeypatch, mocker): | CODE |
| LOW | tests/test_agent.py | 224 | def test_agent_feedback_posts_content(monkeypatch, mocker): | CODE |
| LOW⚡ | tests/test_search.py | 40 | def test_parse_embedding_from_bytes_postgresql(): | STRING |
| LOW⚡ | tests/test_search.py | 47 | def test_parse_embedding_from_memoryview_postgresql(): | STRING |
| LOW⚡ | tests/test_search.py | 54 | def test_parse_embedding_from_json_string_mysql(): | STRING |
| LOW⚡ | tests/test_search.py | 61 | def test_parse_embedding_from_list_mongodb(): | STRING |
| LOW⚡ | tests/test_search.py | 67 | def test_parse_embedding_from_numpy_array(): | STRING |
| LOW⚡ | tests/test_search.py | 110 | def test_find_similar_embeddings_empty_list(): | STRING |
| LOW⚡ | tests/test_search.py | 115 | def test_find_similar_embeddings_limit_larger_than_embeddings(): | STRING |
| LOW⚡ | tests/test_search.py | 123 | def test_find_similar_embeddings_limit_smaller_than_embeddings(): | STRING |
| LOW | tests/test_search.py | 80 | def test_find_similar_embeddings_basic(): | STRING |
| LOW | tests/test_search.py | 94 | def test_find_similar_embeddings_cosine_similarity(): | STRING |
| LOW | tests/test_search.py | 136 | def test_find_similar_embeddings_skips_malformed(): | STRING |
| LOW | tests/test_search.py | 150 | def test_find_similar_embeddings_all_malformed(): | STRING |
| LOW | tests/test_search.py | 161 | def test_find_similar_embeddings_dimension_mismatch(): | STRING |
| LOW | tests/test_search.py | 172 | def test_find_similar_embeddings_mixed_dimensions(): | STRING |
| LOW | tests/test_search.py | 185 | def test_find_similar_embeddings_mixed_formats(): | STRING |
| LOW | tests/test_search.py | 198 | def test_find_similar_embeddings_returns_similarity_scores(): | STRING |
| LOW | tests/test_search.py | 208 | def test_find_similar_embeddings_high_dimensional(): | STRING |
| LOW | tests/test_search.py | 221 | def test_search_entity_facts_success(): | STRING |
| LOW | tests/test_search.py | 253 | def test_search_entity_facts_no_embeddings(): | STRING |
| LOW | tests/test_search.py | 271 | def test_search_entity_facts_no_similar_results(): | STRING |
| LOW | tests/test_search.py | 290 | def test_search_entity_facts_respects_limit(): | STRING |
| LOW | tests/test_search.py | 312 | def test_search_entity_facts_returns_required_keys(): | STRING |
| LOW | tests/test_search.py | 337 | def test_search_entity_facts_handles_missing_content(): | STRING |
| LOW | tests/test_search.py | 360 | def test_search_entity_facts_maintains_similarity_order(): | STRING |
| LOW | tests/test_search.py | 388 | def test_search_entity_facts_can_rerank_with_query_text(mocker): | STRING |
| LOW | tests/test_search.py | 418 | def test_search_entity_facts_with_different_db_formats(): | STRING |
| LOW | tests/test_search.py | 444 | def test_search_entity_facts_accepts_mapping_rows_for_content(mocker): | STRING |
| LOW | tests/test_search.py | 476 | def test_search_facts_candidates_success(): | STRING |
| LOW | tests/test_search.py | 510 | def test_search_facts_candidates_can_rerank_with_query_text(): | STRING |
| LOW⚡ | tests/test_litellm_client.py | 21 | def test_client_is_litellm_matches_module() -> None: | CODE |
| LOW⚡ | tests/test_litellm_client.py | 25 | def test_client_is_litellm_rejects_other_modules() -> None: | CODE |
| LOW⚡ | tests/test_litellm_client.py | 30 | def test_client_is_litellm_rejects_arbitrary_objects() -> None: | CODE |
| LOW⚡ | tests/test_litellm_client.py | 36 | def test_client_is_litellm_accepts_submodule() -> None: | CODE |
| LOW⚡ | tests/test_litellm_client.py | 42 | def test_litellm_register_requires_completion_attr() -> None: | CODE |
| LOW | tests/test_litellm_client.py | 56 | def test_litellm_register_wraps_completion_and_acompletion() -> None: | CODE |
| LOW | tests/test_litellm_client.py | 81 | def test_litellm_register_is_idempotent() -> None: | CODE |
| LOW | tests/test_litellm_client.py | 99 | def test_litellm_register_sets_provider_metadata() -> None: | CODE |
| LOW | tests/test_litellm_client.py | 116 | def test_client_is_litellm_matches_router_object() -> None: | CODE |
| LOW | tests/test_litellm_client.py | 134 | def test_litellm_register_wraps_router_instance_methods() -> None: | CODE |
| LOW | tests/test_litellm_client.py | 160 | def test_litellm_registered_in_registry_via_module() -> None: | CODE |
| 1147 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | core/tests/retrieval_aa_contract.rs | 256 | assert_eq!(payload.meta.attribution.entity.id.len(), 64); | CODE |
| CRITICAL⚡ | core/tests/retrieval_aa_contract.rs | 257 | assert_eq!(payload.meta.attribution.process.id.len(), 64); | CODE |
| CRITICAL⚡ | core/tests/retrieval_aa_contract.rs | 258 | assert_eq!(payload.meta.llm.model.sdk.version.as_deref(), Some("1.2.3")); | CODE |
| CRITICAL | tests/memory/test_memory_writer.py | 128 | config.storage.driver.conversation.message.create.reset_mock() | CODE |
| CRITICAL⚡ | tests/memory/test_recall.py | 45 | config.storage.driver.entity.create.assert_not_called() | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 46 | config.storage.driver.knowledge_graph.delete_by_entity.assert_not_called() | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 47 | config.storage.driver.entity_fact.delete_by_entity.assert_not_called() | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 59 | config.storage.driver.entity.create.assert_called_once_with("entity-id") | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 60 | config.storage.driver.knowledge_graph.delete_by_entity.assert_not_called() | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 61 | config.storage.driver.entity_fact.delete_by_entity.assert_not_called() | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 73 | config.storage.driver.entity.create.assert_called_once_with("entity-id") | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 74 | config.storage.driver.knowledge_graph.delete_by_entity.assert_called_once_with(123) | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 75 | config.storage.driver.entity_fact.delete_by_entity.assert_called_once_with(123) | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 76 | config.storage.driver.conversation.update.assert_not_called() | STRING |
| CRITICAL⚡ | tests/memory/test_recall.py | 77 | config.storage.driver.conversation.message.create.assert_not_called() | STRING |
| CRITICAL | tests/memory/test_recall.py | 124 | config.storage.driver.entity.create.assert_called_once_with("test-entity") | STRING |
| CRITICAL | tests/integration/databases/test_database_storage.py | 46 | conversation = sqlite_memori.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 104 | messages = sqlite_memori.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 142 | conversation = postgres_memori.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 199 | messages = postgres_memori.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 239 | conversation = mysql_memori.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 296 | messages = mysql_memori.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 333 | conversation = mongodb_memori.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/databases/test_database_storage.py | 390 | messages = mongodb_memori.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_anthropic.py | 488 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_anthropic.py | 510 | messages = memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_anthropic.py | 539 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_anthropic.py | 557 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_anthropic.py | 570 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 556 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 577 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 598 | messages = memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 625 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 638 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 1224 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 1245 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 1266 | messages = memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 1293 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_openai.py | 1306 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_bedrock.py | 396 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_bedrock.py | 414 | messages = memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_bedrock.py | 434 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_bedrock.py | 448 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_bedrock.py | 457 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_google.py | 500 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL⚡ | tests/integration/providers/test_google.py | 517 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_google.py | 455 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_google.py | 476 | messages = memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_google.py | 529 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_xai.py | 493 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_xai.py | 513 | messages = memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_xai.py | 542 | conversation = memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/providers/test_xai.py | 560 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/providers/test_xai.py | 573 | memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/cloud/test_cloud_openai.py | 54 | conversation = cloud_memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/cloud/test_cloud_openai.py | 77 | cloud_memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/cloud/test_cloud_openai.py | 136 | conversation = cloud_memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/cloud/test_cloud_anthropic.py | 54 | conversation = cloud_memori_instance.config.storage.driver.conversation.read( | CODE |
| CRITICAL | tests/integration/cloud/test_cloud_anthropic.py | 77 | cloud_memori_instance.config.storage.driver.conversation.messages.read( | CODE |
| CRITICAL | tests/integration/cloud/test_cloud_anthropic.py | 137 | conversation = cloud_memori_instance.config.storage.driver.conversation.read( | CODE |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_search.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | tests/llm/test_llm_embeddings.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | tests/embeddings/test_tei_chunking.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | tests/memory/test_recall_eval_harness.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | tests/memory/test_recall.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/_logging.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/_cli.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/__init__.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/_network.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/_config.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/__main__.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/_utils.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/_setup.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/_constants.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/_base.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/__init__.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/_registry.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/_xai_wrappers.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/_providers.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/_utils.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/adapters/google/_adapter.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/adapters/xai/_adapter.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/adapters/bedrock/_adapter.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/adapters/anthropic/_adapter.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/llm/adapters/openai/_adapter.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/embeddings/_chunking.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/embeddings/_api.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/embeddings/_tei.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/embeddings/_format.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/embeddings/_tei_embed.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/embeddings/_utils.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/_struct.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/_conversation_messages.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/_collector.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/recall.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/_writer.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/_manager.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_base.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_handler.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/__init__.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_runtime.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_db_writer.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_message.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_registry.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/input.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_models.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/_manager.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | …ori/memory/augmentation/augmentations/memori/models.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | …i/memory/augmentation/augmentations/memori/__init__.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | …ory/augmentation/augmentations/memori/_augmentation.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/memories/_entity.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/memories/_process.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/memory/augmentation/memories/_conversation.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/_base.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/__init__.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/_registry.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/_builder.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/_connection.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/_manager.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| HIGH | memori/storage/drivers/postgresql/_driver.py | 0 | _ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\__ | STRING |
| 85 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_agent.py | 1 | CODE | |
| LOW | tests/test_litellm_client.py | 7 | CODE | |
| LOW | tests/memory/test_recall_eval_harness.py | 11 | CODE | |
| LOW | integrations/hermes/tests/test_provider.py | 1 | CODE | |
| LOW | integrations/hermes/tests/test_client.py | 1 | CODE | |
| LOW | integrations/hermes/tests/test_install.py | 1 | CODE | |
| LOW | integrations/hermes/src/memori_hermes/client.py | 3 | CODE | |
| LOW | integrations/hermes/src/memori_hermes/tools.py | 3 | CODE | |
| LOW | integrations/hermes/src/memori_hermes/_paths.py | 3 | CODE | |
| LOW | integrations/hermes/src/memori_hermes/__init__.py | 3 | CODE | |
| LOW | integrations/hermes/src/memori_hermes/install.py | 3 | CODE | |
| LOW | memori/_embedding_input.py | 1 | CODE | |
| LOW | memori/_rust_core.py | 9 | CODE | |
| LOW | memori/_rust_core.py | 10 | CODE | |
| LOW | memori/_rust_core.py | 11 | CODE | |
| LOW | memori/_rust_core.py | 12 | CODE | |
| LOW | memori/_rust_core.py | 14 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 16 | CODE | |
| LOW | memori/_rust_core.py | 38 | CODE | |
| LOW | memori/_rust_core.py | 38 | CODE | |
| LOW | memori/_rust_core.py | 38 | CODE | |
| LOW | memori/_rust_core.py | 38 | CODE | |
| LOW | memori/_rust_core.py | 38 | CODE | |
| LOW | memori/_rust_core.py | 45 | CODE | |
| LOW | memori/_rust_core.py | 46 | CODE | |
| LOW | memori/_rust_core.py | 46 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| LOW | memori/_rust_core.py | 47 | CODE | |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/database/core.py | 48 | except Exception: | CODE |
| HIGH | tests/llm/clients/oss/openai/async_streaming.py | 42 | except IndexError: | CODE |
| HIGH | tests/llm/clients/oss/openai/async_streaming.py | 62 | except IndexError: | CODE |
| HIGH | …/storage/cockroachdb/test_storage_cockroachdb_files.py | 11 | except KeyError: | CODE |
| HIGH | …/storage/cockroachdb/test_storage_cockroachdb_files.py | 16 | except KeyError: | CODE |
| HIGH | …/storage/cockroachdb/test_storage_cockroachdb_files.py | 62 | except FileNotFoundError: | CODE |
| HIGH | …/storage/cockroachdb/test_storage_cockroachdb_files.py | 79 | except FileNotFoundError: | CODE |
| HIGH | …/storage/cockroachdb/test_storage_cockroachdb_files.py | 97 | except FileNotFoundError: | CODE |
| HIGH | tests/integration_v2/cloud_v2/conftest.py | 17 | except ImportError: | CODE |
| HIGH | memori/__init__.py | 362 | except Exception: # nosec B110 | CODE |
| HIGH | memori/llm/helpers/query_extraction.py | 91 | except Exception: | CODE |
| HIGH | memori/llm/helpers/serialization.py | 90 | except (TypeError, AttributeError): | CODE |
| HIGH | memori/llm/helpers/serialization.py | 102 | except Exception: | CODE |
| HIGH | memori/llm/helpers/serialization.py | 108 | except Exception: | CODE |
| HIGH | memori/llm/helpers/serialization.py | 114 | except Exception: | CODE |
| HIGH | memori/llm/helpers/serialization.py | 40 | except Exception: | CODE |
| HIGH | memori/memory/augmentation/_db_writer.py | 140 | except Exception: # nosec B110 | CODE |
| HIGH | …ory/augmentation/augmentations/memori/_augmentation.py | 49 | except Exception: | CODE |
| HIGH | memori/native/_adapter.py | 338 | except TypeError: | CODE |
| HIGH | memori/provisioning/_cache.py | 42 | except OSError: | CODE |
| HIGH | memori/storage/__init__.py | 19 | except ImportError: | CODE |
| HIGH | memori/storage/_connection.py | 45 | except Exception: # nosec B110 | CODE |
| HIGH | memori/storage/_connection.py | 39 | except Exception: # nosec B110 | CODE |
| HIGH | memori/storage/cockroachdb/_files.py | 38 | except FileNotFoundError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/database/core.py | 48 | except Exception: | CODE |
| LOW | tests/database/init_db.py | 13 | except Exception as e: | CODE |
| MEDIUM | tests/database/init_db.py | 5 | def init_db(): | CODE |
| LOW | integrations/hermes/src/memori_hermes/client.py | 68 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | integrations/hermes/src/memori_hermes/client.py | 84 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | integrations/hermes/src/memori_hermes/client.py | 97 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | integrations/hermes/src/memori_hermes/client.py | 132 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | integrations/hermes/src/memori_hermes/client.py | 138 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | integrations/hermes/src/memori_hermes/client.py | 144 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | integrations/hermes/src/memori_hermes/client.py | 151 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | integrations/hermes/src/memori_hermes/client.py | 135 | def quota(self) -> dict[str, Any]: | CODE |
| LOW | integrations/hermes/src/memori_hermes/_paths.py | 17 | except Exception: # noqa: BLE001 | CODE |
| LOW | integrations/hermes/src/memori_hermes/__init__.py | 19 | except Exception: # noqa: BLE001 | CODE |
| LOW | integrations/hermes/src/memori_hermes/__init__.py | 376 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | integrations/hermes/src/memori_hermes/install.py | 179 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | memori/__init__.py | 362 | except Exception: # nosec B110 | CODE |
| LOW | memori/_network.py | 84 | except Exception: | STRING |
| LOW | memori/_network.py | 303 | except Exception as e: | STRING |
| LOW | memori/agent.py | 150 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | memori/_utils.py | 92 | except Exception: | STRING |
| LOW | memori/llm/clients/direct.py | 83 | except Exception: | CODE |
| LOW | memori/llm/clients/direct.py | 383 | except Exception: | CODE |
| MEDIUM | memori/llm/clients/direct.py | 378 | def _resolve_litellm_version() -> str | None: | CODE |
| LOW | memori/llm/helpers/query_extraction.py | 91 | except Exception: | CODE |
| LOW | memori/llm/helpers/serialization.py | 40 | except Exception: | CODE |
| LOW | memori/llm/helpers/serialization.py | 52 | except Exception: | CODE |
| LOW⚡ | memori/llm/helpers/serialization.py | 102 | except Exception: | CODE |
| LOW⚡ | memori/llm/helpers/serialization.py | 108 | except Exception: | CODE |
| LOW⚡ | memori/llm/helpers/serialization.py | 114 | except Exception: | CODE |
| LOW | memori/embeddings/_tei.py | 44 | except Exception as e: | STRING |
| LOW | memori/embeddings/_format.py | 33 | except Exception: | STRING |
| LOW | memori/memory/_collector.py | 108 | except Exception: | STRING |
| LOW | memori/memory/_collector.py | 120 | except Exception: | STRING |
| LOW | memori/memory/_manager.py | 63 | except Exception as e: # noqa: BLE001 | STRING |
| LOW | memori/memory/augmentation/_handler.py | 88 | except Exception as e: # noqa: BLE001 | STRING |
| LOW⚡ | memori/memory/augmentation/_handler.py | 105 | except Exception as e: # noqa: BLE001 | STRING |
| LOW | memori/memory/augmentation/_handler.py | 152 | except Exception as e: # noqa: BLE001 | STRING |
| LOW | memori/memory/augmentation/_db_writer.py | 96 | except Exception: | STRING |
| LOW | memori/memory/augmentation/_db_writer.py | 132 | except Exception: | STRING |
| LOW | memori/memory/augmentation/_db_writer.py | 140 | except Exception: # nosec B110 | STRING |
| LOW | memori/memory/augmentation/_manager.py | 106 | except Exception as e: | STRING |
| LOW | memori/memory/augmentation/_manager.py | 134 | except Exception as e: | STRING |
| LOW | memori/memory/augmentation/_manager.py | 147 | except Exception as e: | STRING |
| LOW | memori/memory/augmentation/_manager.py | 182 | except Exception: | STRING |
| LOW⚡ | …ory/augmentation/augmentations/memori/_augmentation.py | 49 | except Exception: | STRING |
| LOW | …ory/augmentation/augmentations/memori/_augmentation.py | 160 | except Exception as e: | CODE |
| LOW | …ory/augmentation/augmentations/memori/_augmentation.py | 209 | except Exception as exc: | CODE |
| LOW | memori/native/_adapter.py | 27 | except Exception: # noqa: BLE001 | CODE |
| LOW | memori/native/_adapter.py | 36 | except Exception: # noqa: BLE001 | CODE |
| LOW | memori/native/_adapter.py | 75 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | memori/native/_adapter.py | 104 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | memori/native/_adapter.py | 374 | except Exception: # noqa: BLE001 | CODE |
| LOW | memori/native/_adapter.py | 395 | except Exception: # noqa: BLE001 | CODE |
| LOW | memori/native/_onnxruntime.py | 263 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | memori/native/_onnxruntime.py | 301 | except Exception: # noqa: BLE001 | CODE |
| LOW | memori/native/_onnxruntime.py | 371 | except Exception: # noqa: BLE001 | CODE |
| LOW | memori/storage/_builder.py | 39 | except Exception: | STRING |
| LOW⚡ | memori/storage/_connection.py | 36 | except Exception: | STRING |
| LOW⚡ | memori/storage/_connection.py | 39 | except Exception: # nosec B110 | STRING |
| LOW⚡ | memori/storage/_connection.py | 45 | except Exception: # nosec B110 | STRING |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integrations/hermes/src/memori_hermes/__init__.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | integrations/hermes/src/memori_hermes/__init__.py | 453 | __all__ = ["MemoriMemoryProvider", "register"] | CODE |
| LOW | memori/_logging.py | 14 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/_logging.py | 20 | def set_truncate_enabled(enabled: bool) -> None: | STRING |
| LOW | memori/_rust_core.py | 69 | __all__ = [ | CODE |
| LOW | memori/__init__.py | 37 | __all__ = [ | STRING |
| LOW | memori/_network.py | 32 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/agent.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/llm/__init__.py | 15 | __all__ = ["Registry"] | STRING |
| LOW | memori/llm/clients/__init__.py | 11 | __all__ = [ | CODE |
| LOW | memori/llm/invoke/invoke.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/llm/pipelines/conversation_injection.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/llm/pipelines/post_invoke.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/llm/pipelines/recall_injection.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/llm/adapters/google/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/llm/adapters/xai/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/llm/adapters/bedrock/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/llm/adapters/anthropic/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/llm/adapters/openai/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/embeddings/_chunking.py | 16 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/embeddings/_api.py | 27 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/embeddings/__init__.py | 21 | __all__ = ["TEI", "embed_texts", "format_embedding_for_db"] | STRING |
| LOW | memori/embeddings/_tei_embed.py | 21 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/memory/recall.py | 30 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/memory/_writer.py | 23 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/memory/_manager.py | 19 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/memory/augmentation/_handler.py | 22 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/memory/augmentation/__init__.py | 14 | __all__ = ["Manager"] | STRING |
| LOW | memori/memory/augmentation/_runtime.py | 32 | def _set_semaphore() -> None: | STRING |
| LOW | memori/memory/augmentation/_db_writer.py | 19 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/memory/augmentation/_manager.py | 25 | logger = logging.getLogger(__name__) | STRING |
| LOW | …i/memory/augmentation/augmentations/memori/__init__.py | 15 | __all__ = [ | STRING |
| LOW | …i/memory/augmentation/augmentations/memori/__init__.py | 31 | __all__ = [ | STRING |
| LOW⚡ | …ory/augmentation/augmentations/memori/_augmentation.py | 36 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/native/_adapter.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/native/_loader.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/native/__init__.py | 7 | __all__ = [ | CODE |
| LOW | memori/native/_onnxruntime.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | memori/provisioning/__init__.py | 83 | __all__ = [ | CODE |
| LOW | memori/provisioning/providers/__init__.py | 4 | __all__ = ["tidb_zero"] | CODE |
| LOW | memori/storage/__init__.py | 39 | __all__ = ["Manager"] | STRING |
| LOW | memori/storage/drivers/postgresql/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/drivers/oracle/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/drivers/sqlite/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/drivers/oceanbase/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/drivers/mongodb/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/drivers/tidb/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/drivers/mysql/__init__.py | 3 | __all__ = ["Driver"] | CODE |
| LOW | memori/storage/adapters/sqlalchemy/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/storage/adapters/mongodb/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/storage/adapters/dbapi/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/storage/adapters/django/__init__.py | 3 | __all__ = ["Adapter"] | CODE |
| LOW | memori/search/_faiss.py | 23 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/search/__init__.py | 25 | __all__ = [ | STRING |
| LOW | memori/search/_core.py | 19 | logger = logging.getLogger(__name__) | STRING |
| LOW | memori/search/_lexical.py | 21 | logger = logging.getLogger(__name__) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/llm/clients/oss/gemini/async_streaming.py | 17 | CODE | |
| LOW | tests/llm/clients/oss/xai/async_stream.py | 26 | CODE | |
| LOW | tests/llm/clients/oss/xai/async.py | 26 | CODE | |
| LOW | tests/llm/clients/oss/openai/async.py | 24 | CODE | |
| LOW | tests/memory/test_recall.py | 283 | CODE | |
| LOW | tests/memory/augmentation/test_aa_payload_unit.py | 399 | CODE | |
| LOW | tests/integration/conftest.py | 293 | CODE | |
| LOW | tests/integration_v2/cloud_v2/cloud_helpers.py | 20 | CODE | |
| LOW | integrations/hermes/src/memori_hermes/__init__.py | 144 | CODE | |
| LOW | memori/_network.py | 61 | CODE | |
| LOW | memori/_utils.py | 17 | CODE | |
| LOW | memori/_utils.py | 56 | CODE | |
| LOW | memori/llm/_base.py | 170 | CODE | |
| LOW | memori/llm/pipelines/conversation_injection.py | 91 | CODE | |
| LOW | memori/llm/pipelines/conversation_injection.py | 156 | CODE | |
| LOW | memori/llm/pipelines/recall_injection.py | 107 | CODE | |
| LOW | memori/llm/adapters/google/_adapter.py | 19 | CODE | |
| LOW | memori/llm/adapters/google/_adapter.py | 89 | CODE | |
| LOW | memori/llm/adapters/xai/_adapter.py | 19 | CODE | |
| LOW | memori/llm/adapters/xai/_adapter.py | 58 | CODE | |
| LOW | memori/llm/adapters/bedrock/_adapter.py | 34 | CODE | |
| LOW | memori/llm/adapters/openai/_adapter.py | 22 | CODE | |
| LOW | memori/llm/adapters/openai/_adapter.py | 79 | CODE | |
| LOW | memori/llm/helpers/query_extraction.py | 9 | CODE | |
| LOW | memori/llm/helpers/query_extraction.py | 21 | CODE | |
| LOW | memori/llm/helpers/query_extraction.py | 44 | CODE | |
| LOW | memori/llm/helpers/google_system_instruction.py | 75 | CODE | |
| LOW | memori/llm/helpers/serialization.py | 120 | CODE | |
| LOW | memori/memory/_conversation_messages.py | 28 | CODE | |
| LOW | memori/memory/_collector.py | 100 | CODE | |
| LOW | memori/memory/recall.py | 134 | CODE | |
| LOW | memori/memory/_writer.py | 33 | CODE | |
| LOW | memori/memory/augmentation/_db_writer.py | 102 | CODE | |
| LOW | memori/memory/augmentation/_manager.py | 112 | CODE | |
| LOW | memori/native/_onnxruntime.py | 185 | CODE | |
| LOW | memori/native/_onnxruntime.py | 251 | CODE | |
| LOW | memori/native/_onnxruntime.py | 305 | CODE | |
| LOW | memori/storage/_builder.py | 23 | CODE | |
| LOW | memori/storage/drivers/mongodb/_driver.py | 172 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_rust_core.py | 652 | lib_path.write_text("placeholder") | CODE |
| LOW | tests/test_rust_core.py | 675 | lib_path.write_text("placeholder") | CODE |
| LOW | tests/test_rust_core.py | 699 | lib_path.write_text("placeholder") | CODE |
| LOW | tests/test_rust_core.py | 716 | archive.writestr("jni/arm64-v8a/libonnxruntime.so", "placeholder") | CODE |
| LOW | docs/memori-cloud/claude-code/agent-skills.md | 93 | bun .claude/skills/memori/index.ts signup --email "user@example.com" | CODE |
| LOW | integrations/claude-code/SKILL.md | 90 | bun .claude/skills/memori/index.ts signup --email "user@example.com" | CODE |
| LOW⚡ | integrations/openclaw/openclaw.plugin.json | 22 | "placeholder": "Enter your Memori API key...", | CODE |
| LOW⚡ | integrations/openclaw/openclaw.plugin.json | 27 | "placeholder": "e.g., your-app-user-id", | CODE |
| LOW⚡ | integrations/openclaw/openclaw.plugin.json | 32 | "placeholder": "e.g., my-project", | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 99 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 119 | await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 126 | await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW⚡ | integrations/openclaw/tests/tools/memori-signup.test.ts | 143 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW⚡ | integrations/openclaw/tests/tools/memori-signup.test.ts | 152 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW⚡ | integrations/openclaw/tests/tools/memori-signup.test.ts | 158 | await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW⚡ | integrations/openclaw/tests/tools/memori-signup.test.ts | 159 | expect(deps.logger.info).toHaveBeenCalledWith(expect.stringContaining('user@example.com')); | CODE |
| LOW⚡ | integrations/openclaw/tests/tools/memori-signup.test.ts | 164 | await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 177 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 191 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 202 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 213 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 224 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 235 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 246 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| LOW | integrations/openclaw/tests/tools/memori-signup.test.ts | 257 | const result = await tool.execute('call-1', { email: 'user@example.com' }); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 21 | # entry: uvx ty check | COMMENT |
| LOW | .pre-commit-config.yaml | 41 | #- id: ts-lint | COMMENT |
| LOW | core/src/lib.rs | 1 | //! Engine orchestrator crate: the Rust core shared by the Memori Python and Node SDKs. | COMMENT |
| LOW | core/src/runtime/mod.rs | 1 | //! In-process background job runtime: bounded queue, capped concurrent async handlers, flush/shutdown. | COMMENT |
| LOW | core/src/storage/connection.rs | 21 | } | COMMENT |
| LOW | memori/llm/adapters/google/_adapter.py | 101 | COMMENT | |
| LOW | memori/llm/adapters/google/_adapter.py | 141 | # { | COMMENT |
| LOW | memori/llm/adapters/bedrock/_adapter.py | 41 | response = [] | COMMENT |
| LOW | memori/llm/adapters/openai/_adapter.py | 121 | if payload["conversation"]["query"].get("stream", None) is None: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | integrations/openclaw/src/cli/commands.ts | 22 | // ── init ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integrations/openclaw/src/cli/commands.ts | 58 | // ── status ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integrations/openclaw/src/cli/commands.ts | 100 | // ── config ────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/llm/helpers/test_serialization.py | 53 | # Create a circular reference: A -> B -> A | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | benchmarks/README.md | 59 | ### 3. Authorize the embedding model on Hugging Face | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | memori/__init__.py | 58 | CODE | |
| LOW | memori/llm/_registry.py | 77 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | memori/storage/drivers/mongodb/_driver.py | 150 | # Check if entity already exists | STRING |
| LOW | memori/storage/drivers/mongodb/_driver.py | 194 | # Check if fact already exists | STRING |
| LOW | memori/storage/drivers/mongodb/_driver.py | 534 | # Check if process already exists | STRING |
| LOW | memori/storage/drivers/mongodb/_driver.py | 602 | # Check if session already exists | STRING |