Universal memory layer for AI Agents
This report presents the forensic synthetic code analysis of mem0ai/mem0, a TypeScript project with 60,772 GitHub stars. SynthScan v2.0 examined 280,023 lines of code across 1325 source files, recording 3550 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 22.0 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3550 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_oss_to_platform_migrate.py | 378 | def test_existing_api_key_authenticates_and_stitches_ids(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 409 | def test_email_code_authenticates_without_persisting_credentials(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 439 | def test_invalid_stored_key_falls_back_to_email_code(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 472 | def test_email_code_failure_reports_failed_telemetry(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 498 | def test_malformed_config_does_not_crash_and_authenticates(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 518 | def test_weird_telemetry_shape_does_not_crash(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 555 | def test_curl_piped_help_works() -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 568 | def test_export_qdrant_memories_to_json_without_vectors_or_api_key(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 652 | def test_export_requires_scope_or_all(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 662 | def test_export_all_uses_no_qdrant_filter(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 675 | def test_export_invalid_qdrant_credentials_fail_clearly(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 690 | def test_import_platform_memories_from_export_json(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 735 | def test_import_skips_existing_identical_memory(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 764 | def test_import_reports_changed_existing_without_update_or_add(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_oss_to_platform_migrate.py | 798 | def test_full_flow_auth_export_and_imports_memories(tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 40 | def test_creates_config_when_missing(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 47 | def test_backfills_user_id_when_only_telemetry_present(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 59 | def test_does_not_overwrite_existing_user_id(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 67 | def test_handles_malformed_json(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 114 | def test_no_config_returns_all_none(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 120 | def test_malformed_json_does_not_raise(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 132 | def test_writes_aliased_pair_preserving_other_fields(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 149 | def test_creates_telemetry_section_when_missing(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 157 | def test_tracks_each_pair_independently(self, tmp_mem0_dir): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 171 | def test_fires_identify_with_anon_distinct_id(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 185 | def test_skips_when_anon_equals_email(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 194 | def test_skips_when_inputs_empty(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 204 | def test_noop_when_telemetry_disabled(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 212 | def test_does_not_raise_on_posthog_error(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 221 | def test_identify_is_in_lifecycle_events(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 236 | def test_fires_identify_for_oss_uuid(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 254 | def test_fires_identify_for_cli_anon(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 271 | def test_fires_identify_for_both_anon_ids(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 291 | def test_skips_when_pair_already_aliased(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 308 | def test_skips_when_email_invalid(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 317 | def test_skips_when_telemetry_disabled(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 352 | def test_skips_anon_id_equal_to_email(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 369 | def test_does_not_raise_on_read_failure(self): | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 388 | def test_second_call_is_noop_after_pair_marker_persisted(self, tmp_mem0_dir): | CODE |
| LOW | tests/test_telemetry_aliasing.py | 334 | def test_does_not_raise_on_telemetry_failure(self): | CODE |
| LOW | tests/test_telemetry_sampling.py | 32 | def test_invalid_values_fall_back_to_default(self, raw): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 45 | def test_lifecycle_event_passes_through_at_high_random(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 53 | def test_hot_path_event_dropped_when_random_above_rate(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 59 | def test_hot_path_event_passes_when_random_below_rate(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 67 | def test_hot_path_annotates_sample_rate(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 73 | def test_lifecycle_annotates_sample_rate_one(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 77 | def test_rate_zero_drops_all_hot_path(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 84 | def test_rate_zero_still_passes_lifecycle(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 89 | def test_rate_one_passes_all_events(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 95 | def test_does_not_override_caller_supplied_sample_rate_for_hot_path(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 104 | def test_handles_missing_properties_dict(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 111 | def test_handles_missing_event_field(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 118 | def test_handles_non_dict_input(self): | CODE |
| LOW | tests/test_telemetry_sampling.py | 137 | def test_oss_singleton_constructed_with_before_send_hook(self): | CODE |
| LOW | tests/test_telemetry_sampling.py | 148 | def test_client_telemetry_constructed_without_before_send(self): | CODE |
| LOW | tests/test_telemetry_sampling.py | 165 | def test_anonymous_telemetry_constructs_posthog_with_current_kwargs(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 195 | def test_capture_event_signature_unchanged(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 202 | def test_capture_client_event_signature_unchanged(self): | CODE |
| LOW⚡ | tests/test_telemetry_sampling.py | 208 | def test_default_sample_rate_is_ten_percent(self): | CODE |
| LOW | tests/test_memory_integration.py | 6 | def test_memory_configuration_without_env_vars(): | CODE |
| 1560 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_telemetry_aliasing.py | 36 | # ─── setup_config idempotency ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_telemetry_aliasing.py | 76 | # ─── read_anon_ids ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_telemetry_aliasing.py | 128 | # ─── mark_aliased ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_telemetry_aliasing.py | 167 | # ─── capture_identify ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_telemetry_aliasing.py | 228 | # ─── _maybe_alias_anon_to_email integration ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_telemetry_aliasing.py | 381 | # ─── End-to-end idempotency through real config ────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 86 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 88 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 113 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 115 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 139 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 141 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 155 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 157 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 194 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 196 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 248 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 250 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 269 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 271 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 296 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 298 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 321 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 323 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 354 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 356 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 388 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 390 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 442 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 444 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 479 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 481 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 540 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 542 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 603 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 605 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 656 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_server_params.py | 658 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_server_params.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_params.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_params.py | 58 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_server_params.py | 60 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_server_params.py | 221 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_server_params.py | 223 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_server_params.py | 741 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_server_params.py | 743 | # =========================================================================== | COMMENT |
| MEDIUM | tests/test_memory.py | 1106 | # ─── Entity Param Rejection Tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_memory.py | 1143 | # ─── Regression: AsyncMemory._create_memory must store text_lemmatized ───────── | COMMENT |
| MEDIUM⚡ | tests/test_main.py | 375 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_main.py | 377 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_server_auth.py | 472 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_server_auth.py | 474 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 148 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 150 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 303 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_server_auth.py | 305 | # --------------------------------------------------------------------------- | COMMENT |
| 352 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | LLM.md | 50 | client = MemoryClient(api_key="your-api-key") | CODE |
| HIGH | LLM.md | 65 | const client = new MemoryClient({ apiKey: 'your-api-key' }); | CODE |
| HIGH | LLM.md | 170 | api_key="your-api-key", # or set MEM0_API_KEY env var | CODE |
| HIGH | LLM.md | 406 | "api_key": "your-api-key", | CODE |
| HIGH | LLM.md | 478 | apiKey: 'your-api-key', | CODE |
| HIGH | LLM.md | 1142 | memory_client = MemoryClient(api_key="your-api-key") | STRING |
| HIGH⚡ | tests/vector_stores/test_azure_ai_search.py | 638 | # Test with api_key="your-api-key" | COMMENT |
| HIGH⚡ | tests/vector_stores/test_azure_ai_search.py | 642 | api_key="your-api-key", | CODE |
| HIGH | tests/embeddings/test_azure_openai_embeddings.py | 144 | base_embedder_config.azure_kwargs.api_key = "your-api-key" | CODE |
| HIGH | tests/llms/test_azure_openai_structured.py | 94 | config = DummyConfig(model=None, azure_kwargs=DummyAzureKwargs(api_key="your-api-key")) | CODE |
| HIGH | tests/llms/test_azure_openai.py | 440 | config.azure_kwargs.api_key = "your-api-key" | CODE |
| HIGH | mem0-ts/src/oss/src/vector_stores/azure_ai_search.ts | 100 | this.apiKey && this.apiKey !== "" && this.apiKey !== "your-api-key" | CODE |
| HIGH | …m0-ts/src/community/src/integrations/langchain/mem0.ts | 135 | * apiKey: "your-api-key", | COMMENT |
| HIGH | server/README.md | 259 | curl -s http://localhost:8888/memories?user_id=<your-user-id> -H "X-API-Key: <your-api-key>" | CODE |
| HIGH | docs/llms.txt | 50 | client = MemoryClient(api_key="your-api-key") | CODE |
| HIGH | docs/llms.txt | 80 | const client = new MemoryClient({ apiKey: "your-api-key" }); | CODE |
| HIGH⚡ | docs/openapi.json | 1444 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 1448 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 1452 | "source": "curl -X POST 'https://api.mem0.ai/v2/memories/' \\\n-H 'Authorization: Token your-api-key' \\\n-H 'Cont | CODE |
| HIGH⚡ | docs/openapi.json | 1456 | "source": "package main\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net/http\"\ | CODE |
| HIGH⚡ | docs/openapi.json | 1460 | "source": "<?php\n\n$curl = curl_init();\n\n$filters = [\n 'AND' => [\n ['user_id' => 'alex'],\n ['created_ | CODE |
| HIGH⚡ | docs/openapi.json | 1464 | "source": "import com.konghq.unirest.http.HttpResponse;\nimport com.konghq.unirest.http.Unirest;\nimport org.json. | CODE |
| HIGH⚡ | docs/openapi.json | 4157 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\n\ | CODE |
| HIGH⚡ | docs/openapi.json | 4161 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 4169 | "source": "// To use the Go SDK, install the package:\n// go get github.com/mem0ai/mem0-go\n\npackage main\n\nimpo | CODE |
| HIGH⚡ | docs/openapi.json | 4173 | "source": "<?php\n// To use the PHP SDK, install the package:\n// composer require mem0ai/mem0-php\n\nrequire_once | CODE |
| HIGH⚡ | docs/openapi.json | 4177 | "source": "// To use the Java SDK, add this dependency to your pom.xml:\n// <dependency>\n// <groupId>ai.mem0< | CODE |
| HIGH⚡ | docs/openapi.json | 4282 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\n\ | CODE |
| HIGH⚡ | docs/openapi.json | 4286 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 4294 | "source": "// To use the Go SDK, install the package:\n// go get github.com/mem0ai/mem0-go\n\npackage main\n\nimpo | CODE |
| HIGH⚡ | docs/openapi.json | 4298 | "source": "<?php\n// To use the PHP SDK, install the package:\n// composer require mem0ai/mem0-php\n\nrequire_once | CODE |
| HIGH⚡ | docs/openapi.json | 4302 | "source": "// To use the Java SDK, add this dependency to your pom.xml:\n// <dependency>\n// <groupId>ai.mem0< | CODE |
| HIGH⚡ | docs/openapi.json | 4964 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 4968 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 4972 | "source": "curl -X PUT \"https://api.mem0.ai/v1/batch/\" \\\n -H \"Authorization: Token your-api-key\" \\\n | CODE |
| HIGH⚡ | docs/openapi.json | 5052 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 5056 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 5060 | "source": "curl -X DELETE \"https://api.mem0.ai/v1/batch/\" \\\n -H \"Authorization: Token your-api-key\" \\\n | CODE |
| HIGH⚡ | docs/openapi.json | 5157 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 5161 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 5165 | "source": "# Get all webhooks\ncurl --request GET \\\n --url 'https://api.mem0.ai/api/v1/webhooks/your_project_id | CODE |
| HIGH⚡ | docs/openapi.json | 5169 | "source": "<?php\n\n$curl = curl_init();\n\n// Get all webhooks\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"ht | CODE |
| HIGH⚡ | docs/openapi.json | 5173 | "source": "package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() { | CODE |
| HIGH⚡ | docs/openapi.json | 5177 | "source": "// Get all webhooks\nHttpResponse<String> response = Unirest.get(\"https://api.mem0.ai/api/v1/webhooks/ | CODE |
| HIGH⚡ | docs/openapi.json | 5320 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 5324 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 5328 | "source": "curl -X POST \"https://api.mem0.ai/api/v1/webhooks/your_project_id/webhook/\" \\\n -H \"Authorizati | CODE |
| HIGH⚡ | docs/openapi.json | 5332 | "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.mem0.ai/a | CODE |
| HIGH⚡ | docs/openapi.json | 5336 | "source": "package main\n\nimport (\n \"fmt\"\n \"strings\"\n \"net/http\"\n \"io/ioutil\"\n)\n\nfunc | CODE |
| HIGH⚡ | docs/openapi.json | 5340 | "source": "import com.konghq.unirest.http.HttpResponse;\nimport com.konghq.unirest.http.Unirest;\n\n// Create a we | CODE |
| HIGH⚡ | docs/openapi.json | 5465 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 5469 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 5473 | "source": "# Update a webhook\ncurl --request PUT \\\n --url 'https://api.mem0.ai/api/v1/webhooks/your_webhook_id | CODE |
| HIGH⚡ | docs/openapi.json | 5477 | "source": "<?php\n\n$curl = curl_init();\n\n// Update a webhook\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"ht | CODE |
| HIGH⚡ | docs/openapi.json | 5481 | "source": "package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() { | CODE |
| HIGH⚡ | docs/openapi.json | 5485 | "source": "// Update a webhook\nHttpResponse<String> response = Unirest.put(\"https://api.mem0.ai/api/v1/webhooks/ | CODE |
| HIGH⚡ | docs/openapi.json | 5560 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| HIGH⚡ | docs/openapi.json | 5564 | "source": "// To use the JavaScript SDK, install the package:\n// npm i mem0ai\n\nimport MemoryClient from 'mem0ai | CODE |
| HIGH⚡ | docs/openapi.json | 5568 | "source": "curl -X DELETE \"https://api.mem0.ai/api/v1/webhooks/your_webhook_id/webhook/\" \\\n -H \"Authoriza | CODE |
| HIGH⚡ | docs/openapi.json | 5572 | "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.mem0.ai/a | CODE |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mem0/vector_stores/cassandra.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/azure_mysql.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/supabase.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/mongodb.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/azure_ai_search.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/databricks.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/baidu.py | 0 | insert vectors into the table. args: vectors (list[list[float]]): list of vectors to insert. payloads (list[dict], optio | STRING |
| HIGH | mem0/vector_stores/cassandra.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/azure_mysql.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/supabase.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/mongodb.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/faiss.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/pgvector.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/azure_ai_search.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/baidu.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/chroma.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/qdrant.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/upstash_vector.py | 0 | delete a vector by id. args: vector_id (int): id of the vector to delete. | STRING |
| HIGH | mem0/vector_stores/cassandra.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/azure_mysql.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/mongodb.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/pgvector.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/azure_ai_search.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/baidu.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/supabase.py | 0 | update a vector and/or its payload. args: vector_id (str): id of the vector to update vector (list[float], optional): up | STRING |
| HIGH | mem0/vector_stores/cassandra.py | 0 | retrieve a vector by id. args: vector_id (str): id of the vector to retrieve returns: optional[outputdata]: retrieved ve | STRING |
| HIGH | mem0/vector_stores/azure_mysql.py | 0 | retrieve a vector by id. args: vector_id (str): id of the vector to retrieve returns: optional[outputdata]: retrieved ve | STRING |
| HIGH | mem0/vector_stores/supabase.py | 0 | retrieve a vector by id. args: vector_id (str): id of the vector to retrieve returns: optional[outputdata]: retrieved ve | STRING |
| HIGH | mem0/vector_stores/cassandra.py | 0 | get information about the collection. returns: dict[str, any]: collection information. | STRING |
| HIGH | mem0/vector_stores/azure_mysql.py | 0 | get information about the collection. returns: dict[str, any]: collection information. | STRING |
| HIGH | mem0/vector_stores/mongodb.py | 0 | get information about the collection. returns: dict[str, any]: collection information. | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | parse the output data. args: data (dict): output data. returns: list[outputdata]: parsed output data. | STRING |
| HIGH | mem0/vector_stores/weaviate.py | 0 | parse the output data. args: data (dict): output data. returns: list[outputdata]: parsed output data. | STRING |
| HIGH | mem0/vector_stores/chroma.py | 0 | parse the output data. args: data (dict): output data. returns: list[outputdata]: parsed output data. | STRING |
| HIGH | mem0/vector_stores/vertex_ai_vector_search.py | 0 | parse the output data. args: data (dict): output data. returns: list[outputdata]: parsed output data. | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/pgvector.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/pinecone.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/supabase.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/qdrant.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/azure_ai_search.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/baidu.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/vertex_ai_vector_search.py | 0 | search for similar vectors. args: query (str): query. vectors (list[float]): query vector. top_k (int, optional): number | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | retrieve a vector by id. args: vector_id: id of the vector to retrieve. returns: optional[outputdata]: retrieved vector, | STRING |
| HIGH | mem0/vector_stores/chroma.py | 0 | retrieve a vector by id. args: vector_id: id of the vector to retrieve. returns: optional[outputdata]: retrieved vector, | STRING |
| HIGH | mem0/vector_stores/mongodb.py | 0 | retrieve a vector by id. args: vector_id: id of the vector to retrieve. returns: optional[outputdata]: retrieved vector, | STRING |
| HIGH | mem0/vector_stores/vertex_ai_vector_search.py | 0 | retrieve a vector by id. args: vector_id: id of the vector to retrieve. returns: optional[outputdata]: retrieved vector, | STRING |
| HIGH | mem0/vector_stores/weaviate.py | 0 | retrieve a vector by id. args: vector_id: id of the vector to retrieve. returns: optional[outputdata]: retrieved vector, | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | list all collections. returns: list[str]: list of collection names. | STRING |
| HIGH | mem0/vector_stores/faiss.py | 0 | list all collections. returns: list[str]: list of collection names. | STRING |
| HIGH | mem0/vector_stores/pgvector.py | 0 | list all collections. returns: list[str]: list of collection names. | STRING |
| HIGH | mem0/vector_stores/milvus.py | 0 | list all vectors in the table. args: filters (dict, optional): filters to apply to the list. top_k (int, optional): numb | STRING |
| HIGH | mem0/vector_stores/pgvector.py | 0 | list all vectors in the table. args: filters (dict, optional): filters to apply to the list. top_k (int, optional): numb | STRING |
| HIGH | mem0/vector_stores/qdrant.py | 0 | list all vectors in the table. args: filters (dict, optional): filters to apply to the list. top_k (int, optional): numb | STRING |
| HIGH | mem0/vector_stores/faiss.py | 0 | list all vectors in the table. args: filters (dict, optional): filters to apply to the list. top_k (int, optional): numb | STRING |
| HIGH | mem0/vector_stores/chroma.py | 0 | list all vectors in the table. args: filters (dict, optional): filters to apply to the list. top_k (int, optional): numb | STRING |
| HIGH | mem0/vector_stores/azure_ai_search.py | 0 | list all vectors in the table. args: filters (dict, optional): filters to apply to the list. top_k (int, optional): numb | STRING |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | LLM.md | 987 | except Exception as e: | STRING |
| LOW | LLM.md | 1168 | except Exception as e: | STRING |
| LOW⚡ | LLM.md | 1180 | except Exception as e: | STRING |
| LOW⚡ | LLM.md | 1188 | except Exception as e: | STRING |
| LOW⚡ | LLM.md | 1196 | except Exception as e: | STRING |
| LOW | LLM.md | 1235 | except Exception as e: | STRING |
| LOW | LLM.md | 1251 | except Exception as e: | STRING |
| MEDIUM | LLM.md | 984 | def safe_memory_operation(memory_client, operation, *args, **kwargs): | CODE |
| LOW | tests/vector_stores/test_e2e_threshold.py | 215 | except Exception: | CODE |
| MEDIUM | tests/vector_stores/test_e2e_threshold.py | 204 | def _pgvector_reachable(): | CODE |
| LOW | tests/vector_stores/test_score_normalization.py | 198 | except Exception: | CODE |
| MEDIUM | tests/vector_stores/test_score_normalization.py | 187 | def _pgvector_reachable(): | CODE |
| LOW | tests/utils/test_entity_extraction.py | 11 | except Exception: | CODE |
| LOW | tests/utils/test_lemmatization.py | 10 | except Exception: | CODE |
| LOW | server/telemetry.py | 104 | except Exception: | CODE |
| LOW | server/main.py | 72 | except Exception: | CODE |
| LOW | server/main.py | 284 | except Exception: | CODE |
| LOW | server/main.py | 304 | except Exception: | CODE |
| LOW | server/main.py | 362 | except Exception: | CODE |
| LOW | server/main.py | 380 | except Exception: | CODE |
| LOW | server/main.py | 438 | except Exception: | CODE |
| LOW | server/main.py | 447 | except Exception: | CODE |
| LOW | server/main.py | 482 | except Exception: | CODE |
| LOW | server/main.py | 501 | except Exception: | CODE |
| LOW | server/main.py | 510 | except Exception: | CODE |
| LOW | server/main.py | 522 | except Exception: | CODE |
| LOW | server/main.py | 542 | except Exception: | CODE |
| LOW | server/main.py | 552 | except Exception: | CODE |
| LOW | server/server_state.py | 34 | except Exception: | CODE |
| LOW | server/server_state.py | 60 | except Exception: | CODE |
| MEDIUM | server/server_state.py | 20 | def _load_overrides() -> Dict[str, Any]: | CODE |
| LOW | server/routers/entities.py | 74 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/config.py | 192 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/branding.py | 136 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/branding.py | 144 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/telemetry.py | 65 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/telemetry.py | 69 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/telemetry.py | 154 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/telemetry_sender.py | 83 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/telemetry_sender.py | 97 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/telemetry_sender.py | 111 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/app.py | 75 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/app.py | 149 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/app.py | 203 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/plugin_sync.py | 116 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/backend/platform.py | 50 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/backend/platform.py | 352 | except Exception as e: | CODE |
| LOW⚡ | cli/python/src/mem0_cli/commands/init_cmd.py | 156 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 189 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 313 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 557 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 565 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 46 | except Exception: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 148 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 270 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 333 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 384 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 469 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 505 | except Exception as e: | CODE |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 516 | except Exception as e: | CODE |
| 347 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mem0/vector_stores/faiss.py | 64 | Safely load a pickle file using restricted unpickler. Args: file_path: Path to the pickle file. R | STRING |
| HIGH | mem0/vector_stores/faiss.py | 81 | Validate that loaded data has the expected structure. Args: data: The loaded data to validate. Re | STRING |
| HIGH | mem0/vector_stores/vertex_ai_vector_search.py | 334 | Update a vector and its payload. Args: vector_id: ID of the vector to update vector: Op | STRING |
| HIGH | mem0/vector_stores/vertex_ai_vector_search.py | 550 | Add texts to the vector store. Args: texts: List of texts to add metadatas: Optional li | STRING |
| HIGH | mem0/memory/main.py | 149 | Validates and normalizes an entity ID. - Coerces non-string values (e.g. integer ids) to str - Trims leadin | STRING |
| HIGH | mem0/memory/main.py | 737 | Create a new memory. Adds new memories scoped to a single session id (e.g. `user_id`, `agent_id`, or ` | STRING |
| HIGH | mem0/memory/main.py | 1221 | List all memories. Args: filters (dict): Filter dict containing entity IDs and optional me | STRING |
| HIGH | mem0/memory/main.py | 1350 | Searches for memories based on a query. Args: query (str): Query to search for. | STRING |
| HIGH | mem0/memory/main.py | 2855 | List all memories. Args: filters (dict): Filter dict containing entity IDs and optional me | STRING |
| HIGH | mem0/memory/main.py | 2984 | Searches for memories based on a query. Args: query (str): Query to search for. | STRING |
| HIGH | mem0/utils/gcp_auth.py | 30 | Get Google credentials using the priority order defined above. Args: service_account_json: | STRING |
| HIGH | mem0/utils/gcp_auth.py | 99 | Initialize Vertex AI with proper authentication. Args: service_account_json: Service accou | STRING |
| HIGH | mem0/utils/factory.py | 63 | Create an LLM instance with the appropriate configuration. Args: provider_name (str): The | STRING |
| HIGH | mem0/utils/factory.py | 243 | Create a reranker instance based on the provider and configuration. Args: provider_name: T | STRING |
| HIGH | mem0/client/main.py | 179 | Add a new memory. Args: messages: A list of message dictionaries, a single message dictionary, | STRING |
| HIGH | mem0/client/main.py | 220 | Retrieve a specific memory by ID. Args: memory_id: The ID of the memory to retrieve. Retur | STRING |
| HIGH | mem0/client/main.py | 244 | Retrieve all memories, with optional filtering. Args: options: Typed options for the get_all operat | STRING |
| HIGH | mem0/client/main.py | 295 | Search memories based on a query. Args: query: The search query string. options: Typed | STRING |
| HIGH | mem0/client/main.py | 347 | Update a memory by ID. Args: memory_id: The ID of the memory to update. options: Typed | STRING |
| HIGH | mem0/client/main.py | 381 | Delete a specific memory by ID. Args: memory_id: The ID of the memory to delete. delete | STRING |
| HIGH | mem0/client/main.py | 412 | Delete all memories, with optional filtering. Args: options: Typed options for the delete_all opera | STRING |
| HIGH | mem0/client/main.py | 443 | Retrieve the history of a specific memory. Args: memory_id: The ID of the memory to retrieve histor | STRING |
| HIGH | mem0/client/main.py | 482 | Delete specific entities or all entities if no filters provided. Args: user_id: Optional user ID to | STRING |
| HIGH | mem0/client/main.py | 569 | Batch update memories. Args: memories: List of memory dictionaries to update. Each dictionary must | STRING |
| HIGH | mem0/client/main.py | 596 | Batch delete memories. Args: memories: List of memory dictionaries to delete. Each dictionary | STRING |
| HIGH | mem0/client/main.py | 684 | Get instructions or categories for the current project. Args: fields: List of fields to retrieve | STRING |
| HIGH | mem0/client/main.py | 733 | Update the project settings. Args: options: Typed options for the update operation (ProjectUpdateOp | STRING |
| HIGH | mem0/client/main.py | 803 | Get webhooks configuration for the project. Args: project_id: The ID of the project to get webhooks | STRING |
| HIGH | mem0/client/main.py | 828 | Create a webhook for the current project. Args: url: The URL to send the webhook to. na | STRING |
| HIGH | mem0/client/main.py | 862 | Update a webhook configuration. Args: webhook_id: ID of the webhook to update name: Opt | STRING |
| HIGH | mem0/client/main.py | 890 | Delete a webhook configuration. Args: webhook_id: ID of the webhook to delete Returns: | STRING |
| HIGH | mem0/client/main.py | 1118 | Add a new memory. Args: messages: A list of message dictionaries, a single message dictionary, | STRING |
| HIGH | mem0/client/main.py | 1167 | Retrieve all memories, with optional filtering. Args: options: Typed options for the get_all operat | STRING |
| HIGH | mem0/client/main.py | 1218 | Search memories based on a query. Args: query: The search query string. options: Typed | STRING |
| HIGH | mem0/client/main.py | 1270 | Update a memory by ID asynchronously. Args: memory_id: The ID of the memory to update. | STRING |
| HIGH | mem0/client/main.py | 1306 | Delete a specific memory by ID. Args: memory_id: The ID of the memory to delete. delete | STRING |
| HIGH | mem0/client/main.py | 1337 | Delete all memories, with optional filtering. Args: options: Typed options for the delete_all opera | STRING |
| HIGH | mem0/client/main.py | 1363 | Retrieve the history of a specific memory. Args: memory_id: The ID of the memory to retrieve histor | STRING |
| HIGH | mem0/client/main.py | 1405 | Delete specific entities or all entities if no filters provided. Args: user_id: Optional user ID to | STRING |
| HIGH | mem0/client/main.py | 1491 | Batch update memories. Args: memories: List of memory dictionaries to update. Each dictionary must | STRING |
| HIGH | mem0/client/main.py | 1518 | Batch delete memories. Args: memories: List of memory dictionaries to delete. Each dictionary | STRING |
| HIGH | mem0/client/main.py | 1593 | Get instructions or categories for the current project. Args: fields: List of fields to retrieve | STRING |
| HIGH | mem0/client/main.py | 1638 | Update the project settings. Args: options: Typed options for the update operation (ProjectUpdateOp | STRING |
| HIGH | mem0/client/main.py | 1708 | Get webhooks configuration for the project. Args: project_id: The ID of the project to get webhooks | STRING |
| HIGH | mem0/client/main.py | 1733 | Create a webhook for the current project. Args: url: The URL to send the webhook to. na | STRING |
| HIGH | mem0/client/main.py | 1767 | Update a webhook configuration. Args: webhook_id: ID of the webhook to update name: Opt | STRING |
| HIGH | mem0/client/main.py | 1795 | Delete a webhook configuration. Args: webhook_id: ID of the webhook to delete Returns: | STRING |
| HIGH | mem0/client/project.py | 86 | Prepare query parameters for API requests. Args: kwargs: Additional keyword arguments. | STRING |
| HIGH | mem0/client/project.py | 111 | Prepare query parameters for organization-level API requests. Args: kwargs: Additional key | STRING |
| HIGH | mem0/client/project.py | 136 | Get project details. Args: fields: List of fields to retrieve Returns: | STRING |
| HIGH | mem0/client/project.py | 156 | Create a new project within the organization. Args: name: Name of the project to be create | STRING |
| HIGH | mem0/client/project.py | 182 | Update project settings. Args: custom_instructions: New instructions for the project | STRING |
| HIGH | mem0/client/project.py | 238 | Add a new member to the current project. Args: email: Email address of the user to add | STRING |
| HIGH | mem0/client/project.py | 259 | Update a member's role in the current project. Args: email: Email address of the user to u | STRING |
| HIGH | mem0/client/project.py | 280 | Remove a member from the current project. Args: email: Email address of the user to remove | STRING |
| HIGH | mem0/client/project.py | 327 | Get project details. Args: fields: List of fields to retrieve Returns: | STRING |
| HIGH | mem0/client/project.py | 358 | Create a new project within the organization. Args: name: Name of the project to be create | STRING |
| HIGH | mem0/client/project.py | 403 | Update project settings. Args: custom_instructions: New instructions for the project | STRING |
| HIGH | mem0/client/project.py | 520 | Add a new member to the current project. Args: email: Email address of the user to add | STRING |
| HIGH | mem0/client/project.py | 556 | Update a member's role in the current project. Args: email: Email address of the user to u | STRING |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/vector_stores/test_e2e_threshold.py | 63 | # Step 1: Search without threshold (baseline) | COMMENT |
| LOW⚡ | tests/vector_stores/test_e2e_threshold.py | 74 | # Step 2: Verify all scores are non-negative (similarity, not raw distance) | COMMENT |
| LOW⚡ | tests/vector_stores/test_e2e_threshold.py | 79 | # Step 3: Simulate threshold filtering as Memory.search() does it | COMMENT |
| LOW⚡ | tests/vector_stores/test_e2e_threshold.py | 99 | # Step 4: Very high threshold should return 0 or very few results | COMMENT |
| LOW | tests/vector_stores/test_databricks.py | 636 | # Step 1: Config validation (simulates what Memory.from_config does) | COMMENT |
| LOW | tests/vector_stores/test_databricks.py | 654 | # Step 2: Factory instantiation (same as MemoryBase.__init__) | COMMENT |
| LOW⚡ | tests/memory/test_main.py | 425 | # Step 1: Create a memory — capture the payload stored in the vector store | COMMENT |
| LOW⚡ | tests/memory/test_main.py | 435 | # Step 2: Simulate the vector store returning this memory for both search and get_all | COMMENT |
| LOW⚡ | tests/memory/test_main.py | 444 | # Step 3: Call search and get_all, compare timestamps | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1393 | // Step 1: Preprocess query | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1397 | // Step 2: Embed query | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1400 | // Step 3: Semantic search (over-fetch for scoring pool) | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1408 | // Step 4: Keyword search (if store supports it) | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1520 | // Step 7: Build candidate set from semantic results | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1529 | // Step 8: Score and rank | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1539 | // Step 9: Format results | COMMENT |
| LOW | mem0-ts/src/oss/src/memory/index.ts | 1427 | // Step 5: Compute BM25 scores from keyword results | COMMENT |
| LOW | mem0-ts/src/oss/src/memory/index.ts | 1440 | // Step 6: Compute entity boosts | COMMENT |
| LOW | mem0-ts/src/oss/src/memory/index.ts | 1574 | // Step 10: Optionally re-rank with the configured reranker. Opt-in per | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/prompts/index.ts | 902 | // Step 1: Strip known noise tokens from OpenRouter/local models | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/prompts/index.ts | 910 | // Step 2: Strip code fences and <think> blocks | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/prompts/index.ts | 916 | // Step 3: Try to find valid JSON object by testing each `{` as potential start | COMMENT |
| LOW | mem0-ts/src/oss/src/prompts/index.ts | 966 | // Step 4: Fallback - try first/last brace (original behavior for edge cases) | COMMENT |
| LOW | mem0-ts/src/oss/src/prompts/index.ts | 980 | // Step 5: Try to locate a JSON array by testing each `[` as potential start | COMMENT |
| LOW | cli/CLI_SPECIFICATION.md | 1409 | ### Step 1: Add to `cli-spec.json` | COMMENT |
| LOW | cli/CLI_SPECIFICATION.md | 1456 | ### Step 2: Add Backend Method (if new API endpoint) | COMMENT |
| LOW | cli/CLI_SPECIFICATION.md | 1466 | ### Step 3: Add Command Handler | COMMENT |
| LOW | cli/CLI_SPECIFICATION.md | 1482 | ### Step 4: Register in App Entrypoint | COMMENT |
| LOW⚡ | cli/CLI_SPECIFICATION.md | 1516 | ### Step 5: Add Help Examples | COMMENT |
| LOW⚡ | cli/CLI_SPECIFICATION.md | 1522 | ### Step 6: Add to Help Display and Command Order | COMMENT |
| LOW⚡ | cli/CLI_SPECIFICATION.md | 1530 | ### Step 7: Add to `help` Command Output | COMMENT |
| LOW⚡ | cli/CLI_SPECIFICATION.md | 1539 | ### Step 8: Add Tests | COMMENT |
| LOW⚡ | cli/CLI_SPECIFICATION.md | 1544 | ### Step 9: Update This Specification | COMMENT |
| LOW⚡ | cli/python/src/mem0_cli/commands/init_cmd.py | 163 | # Step 2: Get code from user | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 144 | # Step 1: Request verification code | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 177 | # Step 3: Verify code | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 165 | # Step 1: request OTP (unless --code provided) | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 199 | # Step 2: verify + claim in one shot | COMMENT |
| LOW | cli/node/src/commands/agent-mode.ts | 180 | // Step 1: request OTP (unless --code was supplied) | COMMENT |
| LOW | cli/node/src/commands/agent-mode.ts | 222 | // Step 2: verify + claim atomically | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/pin/SKILL.md | 12 | ### Step 1: Find the memory | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/pin/SKILL.md | 23 | ### Step 2: Pin it | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/pin/SKILL.md | 34 | ### Step 3: Confirm | COMMENT |
| LOW⚡ | integrations/pi-agent-plugin/skills/search/SKILL.md | 12 | ### Step 1: Parse query | COMMENT |
| LOW⚡ | integrations/pi-agent-plugin/skills/search/SKILL.md | 20 | ### Step 2: Search | COMMENT |
| LOW⚡ | integrations/pi-agent-plugin/skills/search/SKILL.md | 24 | ### Step 3: Display | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/tour/SKILL.md | 43 | ### Step 1: Fetch ALL memories | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/tour/SKILL.md | 47 | ### Step 2: Group by category | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/tour/SKILL.md | 65 | ### Step 3: Display results | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/tour/SKILL.md | 77 | ### Step 4: Print totals | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/tour/SKILL.md | 83 | ### Step 5: Empty state | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/forget/SKILL.md | 12 | ### Step 1: Parse input | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/forget/SKILL.md | 20 | ### Step 2: Find memories | COMMENT |
| LOW⚡ | integrations/pi-agent-plugin/skills/forget/SKILL.md | 35 | ### Step 3: Confirm | COMMENT |
| LOW⚡ | integrations/pi-agent-plugin/skills/forget/SKILL.md | 43 | ### Step 4: Delete | COMMENT |
| LOW⚡ | integrations/pi-agent-plugin/skills/forget/SKILL.md | 47 | ### Step 5: Report | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/remember/SKILL.md | 12 | ### Step 1: Extract the content | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/remember/SKILL.md | 18 | ### Step 2: Classify the memory | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/remember/SKILL.md | 36 | ### Step 3: Store | COMMENT |
| LOW | integrations/pi-agent-plugin/skills/remember/SKILL.md | 44 | ### Step 4: Confirm | COMMENT |
| 119 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | tests/vector_stores/test_azure_ai_search.py | 610 | mock_search_client._client._config.user_agent_policy.add_user_agent.assert_called_with("mem0") | CODE |
| CRITICAL⚡ | tests/vector_stores/test_azure_ai_search.py | 611 | mock_index_client._client._config.user_agent_policy.add_user_agent.assert_called_with("mem0") | CODE |
| CRITICAL | tests/vector_stores/test_azure_ai_search.py | 5 | from azure.core.exceptions import HttpResponseError | CODE |
| CRITICAL | tests/vector_stores/test_weaviate.py | 151 | self.client_mock.collections.get.return_value.data.delete_by_id.assert_called_once_with("id1") | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1330 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1393 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1446 | axiosModule.__mockHttpClient.post.mock.calls.some( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1498 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1508 | axiosModule.__mockHttpClient.post.mock.calls.some( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1541 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1580 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1620 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1651 | const queryCalls = axiosModule.__mockHttpClient.post.mock.calls.filter( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1676 | const queryCall = axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 1762 | axiosModule.__mockHttpClient.post.mock.calls.find( | CODE |
| CRITICAL | mem0-ts/src/oss/tests/opensearch.unit.test.ts | 49 | const createCall = client.indices.create.mock.calls.find( | CODE |
| CRITICAL | mem0/vector_stores/azure_ai_search.py | 13 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | mem0/vector_stores/azure_ai_search.py | 98 | self.search_client._client._config.user_agent_policy.add_user_agent("mem0") | CODE |
| CRITICAL | mem0/vector_stores/azure_ai_search.py | 99 | self.index_client._client._config.user_agent_policy.add_user_agent("mem0") | CODE |
| CRITICAL⚡ | mem0/vector_stores/azure_ai_search.py | 424 | self.search_client._client._config.user_agent_policy.add_user_agent("mem0") | CODE |
| CRITICAL⚡ | mem0/vector_stores/azure_ai_search.py | 425 | self.index_client._client._config.user_agent_policy.add_user_agent("mem0") | CODE |
| CRITICAL | mem0/llms/openai_structured.py | 48 | response = self.client.beta.chat.completions.parse(**params) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_client.py | 16 | # Create a mock client instance | COMMENT |
| MEDIUM | tests/vector_stores/test_azure_ai_search.py | 60 | # Create an instance with dummy parameters. | COMMENT |
| MEDIUM | tests/vector_stores/test_elasticsearch.py | 36 | # Create a mock Elasticsearch client with proper attributes | COMMENT |
| MEDIUM | tests/vector_stores/test_supabase.py | 98 | # Create a Mock object to represent the record | COMMENT |
| MEDIUM | tests/vector_stores/test_mongodb.py | 18 | # Create a proper mock cursor | COMMENT |
| MEDIUM | tests/vector_stores/test_pinecone.py | 108 | # Create a mock Vector object | COMMENT |
| MEDIUM | tests/vector_stores/test_valkey.py | 495 | # Create a mock result with all fields | COMMENT |
| MEDIUM⚡ | tests/vector_stores/test_faiss.py | 362 | # Create a legitimate pickle with basic types | COMMENT |
| MEDIUM | tests/vector_stores/test_faiss.py | 35 | # Create a FAISS instance with a temporary directory | COMMENT |
| MEDIUM | tests/vector_stores/test_faiss.py | 396 | # Create a malicious pickle that tries to use subprocess | COMMENT |
| MEDIUM | tests/vector_stores/test_faiss.py | 413 | # Create a malicious pickle that tries to use eval | COMMENT |
| MEDIUM | tests/vector_stores/test_faiss.py | 430 | # Create a pickle that tries to load a class from a non-builtins module | COMMENT |
| MEDIUM | tests/vector_stores/test_faiss.py | 604 | # Create a malicious pickle file (RCE payload) | COMMENT |
| MEDIUM | tests/vector_stores/test_faiss.py | 644 | # Create a legitimate legacy pickle file | COMMENT |
| MEDIUM | tests/embeddings/test_huggingface_embeddings.py | 85 | # Create a mock for the response object and its attributes | COMMENT |
| MEDIUM | tests/memory/test_storage.py | 255 | # Create a legacy 'history' table missing new columns | COMMENT |
| MEDIUM | tests/memory/test_main.py | 470 | # Create a memory | COMMENT |
| MEDIUM | tests/llms/test_langchain.py | 29 | # Create a config with the model instance directly | COMMENT |
| MEDIUM | tests/llms/test_langchain.py | 41 | # Create a config with the model instance | COMMENT |
| MEDIUM | server/init-db.sh | 4 | # Create the mem0_app database for user/auth/api-key data. | COMMENT |
| MEDIUM⚡ | docs/openapi.json | 5157 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| MEDIUM⚡ | docs/openapi.json | 5165 | "source": "# Get all webhooks\ncurl --request GET \\\n --url 'https://api.mem0.ai/api/v1/webhooks/your_project_id | CODE |
| MEDIUM⚡ | docs/openapi.json | 5320 | "source": "# To use the Python SDK, install the package:\n# pip install mem0ai\n\nfrom mem0 import MemoryClient\nc | CODE |
| MEDIUM⚡ | …tions/mem0-plugin/tests/test_import_competing_tools.py | 93 | # Create a temporary memory-bank directory with .md files | COMMENT |
| MEDIUM | examples/misc/personal_assistant_agno.py | 21 | # Define the agent | COMMENT |
| MEDIUM | examples/misc/healthcare_assistant_google_adk.py | 74 | # Create the Healthcare Assistant Agent | COMMENT |
| MEDIUM | examples/misc/healthcare_assistant_google_adk.py | 105 | # Create a session | STRING |
| MEDIUM | examples/misc/healthcare_assistant_google_adk.py | 108 | # Create the runner | STRING |
| MEDIUM⚡ | examples/misc/strands_agent_aws_elasticache_neptune.py | 138 | # Create a simple message format for mem0 vector storage | COMMENT |
| MEDIUM | examples/misc/strands_agent_aws_elasticache_neptune.py | 350 | # Create a container with the chat frame styling | COMMENT |
| MEDIUM | examples/multiagents/llamaindex_learning_system.py | 136 | # Create the multi-agent workflow | STRING |
| MEDIUM | mem0/vector_stores/valkey.py | 111 | # Create the index schema | COMMENT |
| MEDIUM | mem0/vector_stores/valkey.py | 299 | # Create the key for the hash | COMMENT |
| MEDIUM | mem0/vector_stores/valkey.py | 407 | # Create the payload | COMMENT |
| MEDIUM | mem0/vector_stores/valkey.py | 431 | # Create the result | COMMENT |
| MEDIUM | mem0/vector_stores/valkey.py | 571 | # Create the payload with error handling | COMMENT |
| MEDIUM | mem0/vector_stores/redis.py | 96 | # Create a new schema with the specified parameters | COMMENT |
| MEDIUM | mem0/vector_stores/redis.py | 108 | # Create the schema | COMMENT |
| MEDIUM | mem0/vector_stores/redis.py | 111 | # Create the index | COMMENT |
| MEDIUM⚡ | mem0/vector_stores/azure_ai_search.py | 427 | # Create the collection | COMMENT |
| MEDIUM | mem0/vector_stores/vertex_ai_vector_search.py | 512 | # This method is included only to satisfy the abstract base class | COMMENT |
| MEDIUM | mem0/vector_stores/vertex_ai_vector_search.py | 525 | # Create the payload with all necessary fields | COMMENT |
| MEDIUM | mem0/memory/storage.py | 65 | # Create the new history table with updated schema | COMMENT |
| MEDIUM | mem0/memory/main.py | 501 | # Create the config object using the same class as the original | COMMENT |
| MEDIUM⚡ | openmemory/api/app/models.py | 216 | # Create the association | COMMENT |
| MEDIUM | openmemory/api/app/mcp_server.py | 58 | # Create a router for MCP endpoints | COMMENT |
| MEDIUM | openmemory/api/app/mcp_server.py | 479 | # Create a simple receive function that returns the body | COMMENT |
| MEDIUM | openmemory/api/app/mcp_server.py | 483 | # Create a simple send function that does nothing | COMMENT |
| MEDIUM | openmemory/api/app/routers/apps.py | 30 | # Create a subquery for memory counts | COMMENT |
| MEDIUM | openmemory/api/app/routers/apps.py | 38 | # Create a subquery for access counts | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_telemetry_sampling.py | 137 | CODE | |
| LOW | tests/test_memory_integration.py | 6 | CODE | |
| LOW | tests/test_telemetry.py | 177 | CODE | |
| LOW | tests/test_telemetry.py | 187 | CODE | |
| LOW | tests/test_telemetry.py | 207 | CODE | |
| LOW | tests/test_telemetry.py | 219 | CODE | |
| LOW | tests/test_telemetry.py | 237 | CODE | |
| LOW | tests/test_telemetry.py | 285 | CODE | |
| LOW | tests/vector_stores/test_faiss.py | 527 | CODE | |
| LOW | server/auth.py | 193 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 100 | CODE | |
| LOW | cli/python/src/mem0_cli/output.py | 143 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 34 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 125 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 197 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 537 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 534 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 143 | CODE | |
| LOW | integrations/mem0-plugin/scripts/auto_import.py | 124 | CODE | |
| LOW | integrations/mem0-plugin/scripts/auto_import.py | 157 | CODE | |
| LOW | integrations/mem0-plugin/scripts/parse_mem0_config.py | 231 | CODE | |
| LOW | integrations/mem0-plugin/scripts/telemetry.py | 134 | CODE | |
| LOW | integrations/mem0-plugin/scripts/session_stats.py | 109 | CODE | |
| LOW | …rations/mem0-plugin/scripts/capture_session_summary.py | 73 | CODE | |
| LOW | …rations/mem0-plugin/scripts/capture_session_summary.py | 102 | CODE | |
| LOW | integrations/mem0-plugin/scripts/on_pre_compact.py | 72 | CODE | |
| LOW | integrations/mem0-plugin/scripts/_identity.py | 26 | CODE | |
| LOW | …rations/mem0-plugin/scripts/capture_compact_summary.py | 69 | CODE | |
| LOW | …rations/mem0-plugin/scripts/capture_compact_summary.py | 138 | CODE | |
| LOW | integrations/mem0-plugin/scripts/_project.py | 21 | CODE | |
| LOW | integrations/mem0-plugin/scripts/auto_capture.py | 63 | CODE | |
| LOW | …ons/mem0-plugin/skills/mem0/scripts/mem0_doc_search.py | 160 | CODE | |
| LOW | examples/misc/voice_assistant_elevenlabs.py | 159 | CODE | |
| LOW | examples/misc/voice_assistant_elevenlabs.py | 205 | CODE | |
| LOW | examples/misc/personalized_search.py | 155 | CODE | |
| LOW | examples/misc/strands_agent_aws_elasticache_neptune.py | 179 | CODE | |
| LOW | examples/misc/strands_agent_aws_elasticache_neptune.py | 225 | CODE | |
| LOW | examples/misc/strands_agent_aws_elasticache_neptune.py | 280 | CODE | |
| LOW | mem0/reranker/cohere_reranker.py | 37 | CODE | |
| LOW | mem0/reranker/huggingface_reranker.py | 82 | CODE | |
| LOW | mem0/reranker/llm_reranker.py | 107 | CODE | |
| LOW | mem0/reranker/zero_entropy_reranker.py | 42 | CODE | |
| LOW | mem0/reranker/sentence_transformer_reranker.py | 49 | CODE | |
| LOW | mem0/vector_stores/cassandra.py | 225 | CODE | |
| LOW | mem0/vector_stores/cassandra.py | 434 | CODE | |
| LOW | mem0/vector_stores/valkey.py | 288 | CODE | |
| LOW | mem0/vector_stores/valkey.py | 559 | CODE | |
| LOW | mem0/vector_stores/valkey.py | 695 | CODE | |
| LOW | mem0/vector_stores/valkey.py | 766 | CODE | |
| LOW | mem0/vector_stores/milvus.py | 149 | CODE | |
| LOW | mem0/vector_stores/azure_mysql.py | 334 | CODE | |
| LOW | mem0/vector_stores/pinecone.py | 200 | CODE | |
| LOW | mem0/vector_stores/opensearch.py | 91 | CODE | |
| LOW | mem0/vector_stores/opensearch.py | 368 | CODE | |
| LOW | mem0/vector_stores/qdrant.py | 186 | CODE | |
| LOW | mem0/vector_stores/qdrant.py | 265 | CODE | |
| LOW | mem0/vector_stores/qdrant.py | 339 | CODE | |
| LOW | mem0/vector_stores/qdrant.py | 500 | CODE | |
| LOW | mem0/vector_stores/neptune_analytics.py | 218 | CODE | |
| LOW | mem0/vector_stores/faiss.py | 377 | CODE | |
| 69 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_oss_to_platform_migrate.py | 1 | CODE | |
| LOW | server/alembic/env.py | 9 | CODE | |
| LOW | cli/python/tests/conftest.py | 3 | CODE | |
| LOW | cli/python/tests/test_output.py | 3 | CODE | |
| LOW | cli/python/tests/test_branding.py | 3 | CODE | |
| LOW | cli/python/tests/test_platform_backend.py | 3 | CODE | |
| LOW | cli/python/tests/test_commands.py | 3 | CODE | |
| LOW | cli/python/tests/test_init_internals.py | 17 | CODE | |
| LOW | cli/python/tests/test_config.py | 3 | CODE | |
| LOW | cli/python/tests/test_cli_integration.py | 8 | CODE | |
| LOW | cli/python/tests/test_agent_mode.py | 13 | CODE | |
| LOW | cli/python/tests/test_telemetry.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/config.py | 10 | CODE | |
| LOW | cli/python/src/mem0_cli/telemetry.py | 10 | CODE | |
| LOW | cli/python/src/mem0_cli/telemetry_sender.py | 17 | CODE | |
| LOW | cli/python/src/mem0_cli/agent_detect.py | 15 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/plugin_sync.py | 27 | CODE | |
| LOW | cli/python/src/mem0_cli/output.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/state.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/__init__.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/__init__.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/platform.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/base.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/config_cmd.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/memory.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/whoami_cmd.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/agent_rush_cmd.py | 7 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/utils.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/events_cmd.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/identify_cmd.py | 9 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/entities.py | 3 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 3 | CODE | |
| LOW | …tions/mem0-plugin/tests/test_import_competing_tools.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/conftest.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_auto_capture.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_search.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_rubric_dedup.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_session_stats.py | 3 | CODE | |
| LOW | …tegrations/mem0-plugin/tests/test_parse_export_file.py | 3 | CODE | |
| LOW | …tegrations/mem0-plugin/tests/test_coding_categories.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_write_path.py | 10 | CODE | |
| LOW | …tegrations/mem0-plugin/tests/test_parse_mem0_config.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_project.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/tests/test_telemetry.py | 3 | CODE | |
| LOW | …ions/mem0-plugin/tests/test_capture_session_summary.py | 10 | CODE | |
| LOW | …ations/mem0-plugin/tests/test_auto_setup_categories.py | 10 | CODE | |
| LOW | integrations/mem0-plugin/scripts/_formatting.py | 7 | CODE | |
| LOW | integrations/mem0-plugin/scripts/install_codex_hooks.py | 24 | CODE | |
| LOW | integrations/mem0-plugin/scripts/auto_import.py | 13 | CODE | |
| LOW | integrations/mem0-plugin/scripts/load_settings.py | 6 | CODE | |
| LOW | integrations/mem0-plugin/scripts/_chunking.py | 3 | CODE | |
| LOW | integrations/mem0-plugin/scripts/parse_mem0_config.py | 19 | CODE | |
| LOW | …egrations/mem0-plugin/scripts/auto_setup_categories.py | 28 | CODE | |
| LOW | integrations/mem0-plugin/scripts/_search.py | 7 | CODE | |
| LOW | integrations/mem0-plugin/scripts/telemetry.py | 19 | CODE | |
| LOW | integrations/mem0-plugin/scripts/session_stats.py | 14 | CODE | |
| LOW | …rations/mem0-plugin/scripts/capture_session_summary.py | 14 | CODE | |
| LOW | integrations/mem0-plugin/scripts/file_context.py | 16 | CODE | |
| 34 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/vector_stores/test_e2e_threshold.py | 63 | # Step 1: Search without threshold (baseline) | COMMENT |
| LOW⚡ | tests/vector_stores/test_e2e_threshold.py | 74 | # Step 2: Verify all scores are non-negative (similarity, not raw distance) | COMMENT |
| LOW⚡ | tests/vector_stores/test_e2e_threshold.py | 79 | # Step 3: Simulate threshold filtering as Memory.search() does it | COMMENT |
| LOW⚡ | tests/vector_stores/test_e2e_threshold.py | 99 | # Step 4: Very high threshold should return 0 or very few results | COMMENT |
| LOW | tests/vector_stores/test_databricks.py | 636 | # Step 1: Config validation (simulates what Memory.from_config does) | COMMENT |
| LOW | tests/vector_stores/test_databricks.py | 654 | # Step 2: Factory instantiation (same as MemoryBase.__init__) | COMMENT |
| LOW⚡ | tests/memory/test_main.py | 425 | # Step 1: Create a memory — capture the payload stored in the vector store | COMMENT |
| LOW⚡ | tests/memory/test_main.py | 435 | # Step 2: Simulate the vector store returning this memory for both search and get_all | COMMENT |
| LOW⚡ | tests/memory/test_main.py | 444 | # Step 3: Call search and get_all, compare timestamps | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1393 | // Step 1: Preprocess query | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1397 | // Step 2: Embed query | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1400 | // Step 3: Semantic search (over-fetch for scoring pool) | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1408 | // Step 4: Keyword search (if store supports it) | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1520 | // Step 7: Build candidate set from semantic results | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1529 | // Step 8: Score and rank | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/memory/index.ts | 1539 | // Step 9: Format results | COMMENT |
| LOW | mem0-ts/src/oss/src/memory/index.ts | 1427 | // Step 5: Compute BM25 scores from keyword results | COMMENT |
| LOW | mem0-ts/src/oss/src/memory/index.ts | 1440 | // Step 6: Compute entity boosts | COMMENT |
| LOW | mem0-ts/src/oss/src/memory/index.ts | 1574 | // Step 10: Optionally re-rank with the configured reranker. Opt-in per | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/prompts/index.ts | 902 | // Step 1: Strip known noise tokens from OpenRouter/local models | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/prompts/index.ts | 910 | // Step 2: Strip code fences and <think> blocks | COMMENT |
| LOW⚡ | mem0-ts/src/oss/src/prompts/index.ts | 916 | // Step 3: Try to find valid JSON object by testing each `{` as potential start | COMMENT |
| LOW | mem0-ts/src/oss/src/prompts/index.ts | 966 | // Step 4: Fallback - try first/last brace (original behavior for edge cases) | COMMENT |
| LOW | mem0-ts/src/oss/src/prompts/index.ts | 980 | // Step 5: Try to locate a JSON array by testing each `[` as potential start | COMMENT |
| LOW⚡ | cli/python/src/mem0_cli/commands/init_cmd.py | 163 | # Step 2: Get code from user | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 144 | # Step 1: Request verification code | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 177 | # Step 3: Verify code | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 165 | # Step 1: request OTP (unless --code provided) | COMMENT |
| LOW | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 199 | # Step 2: verify + claim in one shot | COMMENT |
| LOW | cli/node/src/commands/agent-mode.ts | 180 | // Step 1: request OTP (unless --code was supplied) | COMMENT |
| LOW | cli/node/src/commands/agent-mode.ts | 222 | // Step 2: verify + claim atomically | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1591 | # Step 1: Preprocess query | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1595 | # Step 2: Embed query | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1598 | # Step 3: Semantic search (over-fetch for scoring pool) | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1604 | # Step 4: Keyword search (if store supports it) | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1609 | # Step 5: Compute BM25 scores from keyword results | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1619 | # Step 6: Compute entity boosts | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1624 | # Step 7: Build candidate set from semantic results | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1637 | # Step 8: Score and rank | COMMENT |
| LOW⚡ | mem0/memory/main.py | 1647 | # Step 9: Format results | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3231 | # Step 1: Preprocess query (CPU-bound) | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3235 | # Step 2: Embed query | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3238 | # Step 3: Semantic search (over-fetch) | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3244 | # Step 4: Keyword search (if store supports it) | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3249 | # Step 5: Compute BM25 scores | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3259 | # Step 6: Compute entity boosts | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3264 | # Step 7: Build candidate set from semantic results | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3277 | # Step 8: Score and rank | COMMENT |
| LOW⚡ | mem0/memory/main.py | 3287 | # Step 9: Format results | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | server/scripts/seed.sh | 15 | # Check if setup is needed | COMMENT |
| LOW | …tions/mem0-plugin/scripts/enforce_metadata_defaults.sh | 99 | # Check if filters already contain user_id/app_id | COMMENT |
| LOW | integrations/mem0-plugin/scripts/ensure_deps.sh | 45 | # Check if the other process's install failed | COMMENT |
| LOW | examples/nemoclaw/install-mem0-plugin.sh | 175 | # Check if plugin is already installed | COMMENT |
| LOW | examples/nemoclaw/install-mem0-plugin.sh | 255 | # Check if mem0_api already exists | COMMENT |
| LOW⚡ | examples/nemoclaw/setup-mem0-nemoclaw.sh | 528 | # Check if a sandbox already exists | COMMENT |
| LOW | examples/nemoclaw/setup-mem0-nemoclaw.sh | 431 | # Check if NemoClaw is installed in the container | COMMENT |
| LOW | examples/nemoclaw/setup-mem0-nemoclaw.sh | 618 | # Check if plugin is already installed by trying to download a known file from the sandbox. | COMMENT |
| LOW | examples/nemoclaw/setup-mem0-nemoclaw.sh | 700 | # Check if mem0_api already exists | COMMENT |
| LOW | mem0/vector_stores/valkey.py | 207 | # Check if the search module is available | COMMENT |
| LOW | mem0/vector_stores/valkey.py | 221 | # Check if the index already exists | COMMENT |
| LOW | mem0/vector_stores/opensearch.py | 117 | # Check if index is ready by attempting a simple search | COMMENT |
| LOW⚡ | mem0/vector_stores/databricks.py | 241 | # Check if index exists and create if needed | COMMENT |
| LOW | mem0/vector_stores/langchain.py | 49 | # Check if input is a list of Document objects | COMMENT |
| LOW | mem0/vector_stores/langchain.py | 95 | # Check if client has add_embeddings method | COMMENT |
| LOW⚡ | mem0/vector_stores/baidu.py | 97 | # Check if database exists | COMMENT |
| LOW | mem0/vector_stores/baidu.py | 118 | # Check if table already exists | COMMENT |
| LOW | mem0/embeddings/aws_bedrock.py | 32 | # Check if AWS config is provided in the config | COMMENT |
| LOW | mem0/memory/main.py | 714 | # Check if agent_id is present in metadata | COMMENT |
| LOW | mem0/memory/main.py | 717 | # Check if there are assistant role messages | COMMENT |
| LOW | mem0/memory/main.py | 2365 | # Check if agent_id is present in metadata | COMMENT |
| LOW | mem0/memory/main.py | 2368 | # Check if there are assistant role messages | COMMENT |
| LOW | mem0/proxy/main.py | 182 | # Check if self.mem0_client is an instance of Memory or MemoryClient | COMMENT |
| LOW | mem0/configs/vector_stores/elasticsearch.py | 28 | # Check if either cloud_id or host/port is provided | COMMENT |
| LOW | mem0/configs/vector_stores/elasticsearch.py | 32 | # Check if authentication is provided | COMMENT |
| LOW | mem0/configs/vector_stores/elasticsearch.py | 44 | # Check if headers is a dictionary | COMMENT |
| LOW | mem0/configs/vector_stores/elasticsearch.py | 48 | # Check if all keys and values are strings | COMMENT |
| LOW | mem0/configs/vector_stores/opensearch.py | 31 | # Check if host is provided | COMMENT |
| LOW | mem0/configs/vector_stores/chroma.py | 27 | # Check if cloud configuration is provided | COMMENT |
| LOW | mem0/configs/vector_stores/chroma.py | 35 | # Check if local/server configuration is provided | COMMENT |
| LOW | mem0/configs/llms/aws_bedrock.py | 124 | # Check if model follows provider.model-name format | COMMENT |
| LOW⚡ | mem0/llms/aws_bedrock.py | 111 | # Check if our model is available | COMMENT |
| LOW | mem0/llms/base.py | 39 | # Check if API key is available via environment variable | COMMENT |
| LOW⚡ | openmemory/run.sh | 18 | # Check if Docker is installed | COMMENT |
| LOW⚡ | openmemory/run.sh | 24 | # Check if docker compose is available | COMMENT |
| LOW⚡ | openmemory/run.sh | 30 | # Check if the container "mem0_ui" already exists and remove it if necessary | COMMENT |
| LOW | openmemory/run.sh | 85 | # Check if the compose file exists | COMMENT |
| LOW | openmemory/api/main.py | 30 | # Check if user exists | COMMENT |
| LOW | openmemory/api/main.py | 53 | # Check if app already exists | COMMENT |
| LOW⚡ | openmemory/api/app/models.py | 207 | # Check if the memory-category association already exists | COMMENT |
| LOW | openmemory/api/app/mcp_server.py | 85 | # Check if app is active | COMMENT |
| LOW | openmemory/api/app/routers/memories.py | 238 | # Check if app is active | COMMENT |
| LOW | openmemory/api/app/routers/memories.py | 281 | # Check if memory already exists | COMMENT |
| LOW | openmemory/api/app/utils/memory.py | 61 | # Check if we're running inside Docker | COMMENT |
| LOW⚡ | openmemory/api/app/utils/memory.py | 478 | # Check if config has changed by comparing hashes | COMMENT |
| LOW⚡ | openmemory/api/app/utils/permissions.py | 27 | # Check if memory is active | COMMENT |
| LOW⚡ | openmemory/api/app/utils/permissions.py | 35 | # Check if app exists and is active | COMMENT |
| LOW⚡ | openmemory/api/app/utils/permissions.py | 40 | # Check if app is paused/inactive | COMMENT |
| LOW | openmemory/api/app/utils/permissions.py | 52 | # Check if memory is in the accessible set | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_telemetry_aliasing.py | 142 | setup_module.mark_aliased("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 147 | assert setup_module.is_aliased("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 153 | setup_module.mark_aliased("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 161 | setup_module.mark_aliased("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 162 | assert setup_module.is_aliased("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 163 | assert not setup_module.is_aliased("new-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 177 | at.capture_identify("anon-123", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 181 | assert kwargs["distinct_id"] == "user@example.com" | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 191 | at.capture_identify("user@example.com", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 200 | at.capture_identify("", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 209 | at.capture_identify("anon-123", "user@example.com") # must not raise | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 219 | at.capture_identify("anon-123", "user@example.com") # must not raise | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 250 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 251 | telemetry.capture_identify.assert_called_once_with("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 252 | mark.assert_called_once_with("oss-uuid", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 268 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 269 | telemetry.capture_identify.assert_called_once_with("cli-anon-xyz", "user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 285 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 288 | assert ("oss-uuid", "user@example.com") in calls | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 289 | assert ("cli-anon", "user@example.com") in calls | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 304 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 349 | client_main._maybe_alias_anon_to_email("user@example.com") # must not raise | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 360 | return_value={"oss": "user@example.com", "cli": None, "aliased_pairs": []}, | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 366 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW⚡ | tests/test_telemetry_aliasing.py | 377 | client_main._maybe_alias_anon_to_email("user@example.com") # must not raise | CODE |
| LOW | tests/test_telemetry_aliasing.py | 329 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW | tests/test_telemetry_aliasing.py | 402 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW | tests/test_telemetry_aliasing.py | 407 | client_main._maybe_alias_anon_to_email("user@example.com") | CODE |
| LOW | tests/test_server_params.py | 39 | with patch.dict(os.environ, {"OPENAI_API_KEY": "fake-key", "ADMIN_API_KEY": ""}): | CODE |
| LOW | tests/test_client_feedback.py | 10 | client.user_email = "user@example.com" | CODE |
| LOW | tests/test_client_feedback.py | 39 | client.user_email = "user@example.com" | CODE |
| LOW | tests/test_api_keys_router.py | 55 | fake_user = User(id=uuid.uuid4(), name="t", email="t@e.com", password_hash="x", role="admin") | CODE |
| LOW | tests/test_api_keys_router.py | 56 | app.dependency_overrides[require_auth] = lambda: fake_user | CODE |
| LOW | tests/test_client.py | 19 | json=lambda: {"org_id": "org1", "project_id": "proj1", "user_email": "test@test.com"}, | CODE |
| LOW | tests/test_server_auth.py | 44 | with patch.dict(os.environ, {"OPENAI_API_KEY": "fake-key"}): | CODE |
| LOW | tests/vector_stores/test_mongodb.py | 42 | mock_collection.insert_one.assert_called_once_with({"_id": 0, "placeholder": True}) | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 574 | supabaseKey: "fake-key", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 593 | supabaseKey: "fake-key", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 630 | supabaseKey: "fake-key", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 691 | apiKey: "fake-key", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 710 | apiKey: "fake-key", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 4482 | apiToken: "fake-token", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 4499 | apiKey: "fake-token", | CODE |
| LOW | mem0-ts/src/oss/tests/vector-stores-compat.test.ts | 4518 | apiKey: "fake-token", | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 107 | await markMem0Aliased("oss-uuid", "user@example.com"); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 114 | expect(await isMem0Aliased("oss-uuid", "user@example.com")).toBe(true); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 122 | await markMem0Aliased("oss-uuid", "user@example.com"); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 134 | await markMem0Aliased("oss-uuid", "user@example.com"); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 135 | expect(await isMem0Aliased("oss-uuid", "user@example.com")).toBe(true); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 136 | expect(await isMem0Aliased("other-uuid", "user@example.com")).toBe(false); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 145 | markMem0Aliased("oss-uuid", "user@example.com"), | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 161 | await telemetry.captureIdentify("anon-uuid", "user@example.com"); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 167 | expect(payload.distinct_id).toBe("user@example.com"); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 175 | await telemetry.captureIdentify("user@example.com", "user@example.com"); | CODE |
| LOW⚡ | mem0-ts/src/client/tests/telemetry-aliasing.test.ts | 182 | await telemetry.captureIdentify("", "user@example.com"); | CODE |
| LOW | cli/python/tests/test_cli_integration.py | 175 | ["delete", "--api-key", "m0-fake-key"], | CODE |
| LOW | integrations/openclaw/openclaw.plugin.json | 81 | "placeholder": "m0-...", | CODE |
| LOW | integrations/openclaw/openclaw.plugin.json | 86 | "placeholder": "default", | CODE |
| LOW | integrations/openclaw/openclaw.plugin.json | 99 | "placeholder": "Only store user preferences and important facts...", | CODE |
| LOW | integrations/openclaw/openclaw.plugin.json | 114 | "placeholder": "0.3", | CODE |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/vector_stores/test_neptune_analytics.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | server/server_state.py | 15 | def set_session_factory(factory: Callable) -> None: | CODE |
| LOW | cli/python/src/mem0_cli/state.py | 14 | def set_agent_mode(val: bool) -> None: | CODE |
| LOW | cli/python/src/mem0_cli/state.py | 23 | def set_current_command(name: str) -> None: | CODE |
| LOW | cli/python/src/mem0_cli/backend/__init__.py | 5 | __all__ = ["Backend", "get_backend"] | CODE |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 505 | def _setup_platform(config: Mem0Config) -> None: | CODE |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 523 | def _setup_defaults(config: Mem0Config) -> None: | CODE |
| LOW | examples/misc/personalized_search.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/misc/multillm_memory.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/multiagents/llamaindex_learning_system.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/reranker/cohere_reranker.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/reranker/__init__.py | 12 | __all__ = [ | CODE |
| LOW | mem0/reranker/huggingface_reranker.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/reranker/llm_reranker.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/reranker/zero_entropy_reranker.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/reranker/sentence_transformer_reranker.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/cassandra.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/valkey.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/elasticsearch.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/s3_vectors.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/milvus.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/azure_mysql.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/pinecone.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/opensearch.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/supabase.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/turbopuffer.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/qdrant.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/upstash_vector.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/mongodb.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/neptune_analytics.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/faiss.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/pgvector.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/redis.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/weaviate.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/azure_ai_search.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/databricks.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/langchain.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/baidu.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/chroma.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/vector_stores/vertex_ai_vector_search.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/memory/notices.py | 883 | def _update_first_run_variant(variant) -> None: | CODE |
| LOW | mem0/memory/utils.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/memory/storage.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/memory/main.py | 82 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/memory/main.py | 416 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/proxy/main.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/utils/spacy_models.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/utils/lemmatization.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/llms/aws_bedrock.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/llms/groq.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/client/utils.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/client/main.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | mem0/client/project.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | openmemory/api/app/routers/__init__.py | 7 | __all__ = ["memories_router", "apps_router", "stats_router", "config_router", "backup_router"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli/python/src/mem0_cli/app.py | 255 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 323 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 441 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 547 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 730 | CODE | |
| LOW | cli/python/src/mem0_cli/app.py | 850 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/platform.py | 77 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/platform.py | 162 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/platform.py | 210 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/base.py | 15 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/base.py | 32 | CODE | |
| LOW | cli/python/src/mem0_cli/backend/base.py | 52 | CODE | |
| LOW | cli/python/src/mem0_cli/commands/init_cmd.py | 197 | CODE | |
| LOW | integrations/mem0-plugin/scripts/auto_capture.py | 107 | CODE | |
| LOW | examples/misc/strands_agent_aws_elasticache_neptune.py | 112 | CODE | |
| LOW | mem0/vector_stores/cassandra.py | 42 | CODE | |
| LOW | mem0/vector_stores/milvus.py | 235 | CODE | |
| LOW | mem0/vector_stores/milvus.py | 325 | CODE | |
| LOW | mem0/vector_stores/qdrant.py | 30 | CODE | |
| LOW | mem0/vector_stores/qdrant.py | 592 | CODE | |
| LOW | mem0/vector_stores/mongodb.py | 224 | CODE | |
| LOW | mem0/vector_stores/databricks.py | 52 | CODE | |
| LOW | mem0/memory/utils.py | 173 | CODE | |
| LOW | mem0/memory/main.py | 723 | CODE | |
| LOW | mem0/memory/main.py | 1972 | CODE | |
| LOW | mem0/memory/main.py | 2374 | CODE | |
| LOW | mem0/memory/main.py | 3638 | CODE | |
| LOW | mem0/proxy/main.py | 52 | CODE | |
| LOW | mem0/configs/prompts.py | 1016 | CODE | |
| LOW | mem0/configs/embeddings/base.py | 14 | CODE | |
| LOW | mem0/configs/llms/vllm.py | 12 | CODE | |
| LOW | mem0/configs/llms/minimax.py | 12 | CODE | |
| LOW | mem0/configs/llms/lmstudio.py | 12 | CODE | |
| LOW | mem0/configs/llms/azure.py | 13 | CODE | |
| LOW | mem0/configs/llms/gemini.py | 14 | CODE | |
| LOW | mem0/configs/llms/aws_bedrock.py | 14 | CODE | |
| LOW | mem0/configs/llms/openai.py | 12 | CODE | |
| LOW | mem0/configs/llms/deepseek.py | 12 | CODE | |
| LOW | mem0/configs/llms/anthropic.py | 12 | CODE | |
| LOW | mem0/configs/llms/xai.py | 12 | CODE | |
| LOW | mem0/configs/llms/ollama.py | 12 | CODE | |
| LOW | mem0/configs/llms/base.py | 16 | CODE | |
| LOW | openmemory/api/app/routers/memories.py | 102 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ations/mem0-plugin/tests/test_auto_setup_categories.py | 24 | # Fake client (dependency injection — apply_categories takes a client) # | COMMENT |
| MEDIUM | …ations/mem0-plugin/skills/mem0/references/use-cases.md | 11 | - [Multi-Agent / Multi-Tenant](#5-multi-agent--multi-tenant) | CODE |
| MEDIUM | examples/misc/movie_recommendation_grok3.py | 31 | "model": "all-MiniLM-L6-v2" # open embedding model | CODE |
| MEDIUM | examples/misc/strands_agent_aws_elasticache_neptune.py | 15 | - AWS Blog: https://aws.amazon.com/blogs/database/build-persistent-memory-for-agentic-ai-applications-with-mem0-open-sou | STRING |
| MEDIUM | examples/misc/strands_agent_aws_elasticache_neptune.py | 16 | - Mem0 Blog: https://mem0.ai/blog/build-persistent-memory-for-agentic-ai-applications-with-mem0-open-source-amazon-elast | STRING |
| MEDIUM | examples/multiagents/llamaindex_learning_system.py | 136 | # Create the multi-agent workflow | STRING |
| MEDIUM | examples/multiagents/llamaindex_learning_system.py | 158 | # The magic happens here - multi-agent memory is automatically shared! | STRING |
| MEDIUM | examples/multiagents/llamaindex_learning_system.py | 190 | # Second session - multi-agent memory will remember the first | COMMENT |
| MEDIUM | examples/multiagents/llamaindex_learning_system.py | 195 | # Show what the multi-agent system remembers | COMMENT |
| MEDIUM | .github/workflows/docs-llms-txt-check.yml | 7 | # python scripts/check-llms-txt-coverage.py --write # scaffold placeholders | COMMENT |
| MEDIUM | mem0/vector_stores/databricks.py | 421 | # so we inline using _format_sql_value (values are floats from the embedding model). | COMMENT |
| MEDIUM | mem0/memory/main.py | 891 | # Map UUIDs to integers (anti-hallucination) | COMMENT |
| MEDIUM | mem0/memory/main.py | 2529 | # Map UUIDs to integers (anti-hallucination) | COMMENT |
| MEDIUM | skills/mem0/references/use-cases.md | 11 | - [Multi-Agent / Multi-Tenant](#5-multi-agent--multi-tenant) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mem0-ts/src/global.d.ts | 1 | // Injected by tsup/esbuild's `define` at build time from package.json. | COMMENT |
| LOW | …tions/mem0-plugin/scripts/enforce_metadata_defaults.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | integrations/mem0-plugin/scripts/on_stop.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | integrations/mem0-plugin/scripts/_identity.sh | 1 | # Source this file. Sets MEM0_API_KEY, MEM0_RESOLVED_USER_ID, and settings. | COMMENT |
| LOW | integrations/mem0-plugin/scripts/on_file_read.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | integrations/mem0-plugin/scripts/on_bash_output.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | integrations/mem0-plugin/scripts/block_memory_write.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | integrations/mem0-plugin/scripts/_project.sh | 1 | # Source this file. Sets MEM0_PROJECT_ID and MEM0_BRANCH. | COMMENT |
| LOW | integrations/mem0-plugin/scripts/parse_export_file.py | 41 | """ | COMMENT |
| LOW | integrations/mem0-plugin/scripts/on_user_prompt.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | examples/mem0-demo/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/nemoclaw/install-mem0-plugin.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | examples/nemoclaw/setup-mem0-nemoclaw.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/llms-txt-ignore.txt | 1 | # Page path prefixes (relative to docs/, without .mdx) that intentionally | COMMENT |
| LOW | .github/workflows/release.yml | 1 | name: Release Router 🚦 | COMMENT |
| LOW | .github/workflows/ci-gate.yml | 1 | name: CI Gate | COMMENT |
| LOW | openmemory/ui/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | openmemory/backup-scripts/export_openmemory.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | openmemory/api/alembic.ini | 1 | # A generic, single database configuration. | COMMENT |
| LOW | openmemory/api/alembic.ini | 21 | # installed by adding `alembic[tz]` to the pip requirements | COMMENT |
| LOW | openmemory/api/alembic.ini | 41 | COMMENT | |
| LOW | openmemory/api/alembic.ini | 61 | sqlalchemy.url = sqlite:///./openmemory.db | COMMENT |
| LOW | openmemory/api/app/__init__.py | 1 | # This file makes the app directory a Python package | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/misc/test.py | 83 | # Example usage | COMMENT |
| LOW | examples/misc/study_buddy.py | 63 | # Example usage | COMMENT |
| LOW⚡ | examples/nemoclaw/install-mem0-plugin.sh | 8 | # Usage: | COMMENT |
| LOW | examples/nemoclaw/setup-mem0-nemoclaw.sh | 8 | # Usage: | COMMENT |
| LOW | openmemory/backup-scripts/export_openmemory.sh | 11 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mem0-ts/src/oss/tests/extract-json.test.ts | 37 | '{"facts": ["Loves pizza"]}\nLet me know if you need anything else!'; | CODE |
| LOW | openmemory/api/app/database.py | 7 | # load .env file (make sure you have DATABASE_URL set) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mem0/vector_stores/valkey.py | 353 | # No filters, just use the KNN search | COMMENT |
| LOW | mem0/memory/setup.py | 142 | # If no vector store provided, just return the user_id | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | cli/python/src/mem0_cli/commands/agent_mode_cmd.py | 35 | A backend regression that returns ``{"api_key": null}`` would otherwise be | STRING |