basic-memory 0.23.1.dev20__tar.gz → 0.23.1.dev27__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/CHANGELOG.md +47 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/PKG-INFO +1 -1
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/7f6a2b8c9d10_index_full_postgres_note_content.py +56 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/project_router.py +22 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/doctor.py +19 -3
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/project.py +7 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/search_repository.py +4 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/search_repository_base.py +15 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/project_service.py +36 -22
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/search_service.py +11 -3
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_project_router.py +45 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_doctor_command.py +17 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/clients/test_clients.py +30 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_service.py +85 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_search_service.py +74 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_postgres_full_content_search_migration.py +17 -7
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/plugins/marketplace.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/adversarial-review/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/adversarial-review/prompts/refute.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/adversarial-review/prompts/review.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/adversarial-review/schemas/findings.schema.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/adversarial-review/schemas/verdicts.schema.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux/references/handles-and-identify.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux/references/panes-surfaces.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux/references/trigger-flash-and-health.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux/references/windows-workspaces.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-markdown/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-markdown/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-markdown/references/commands.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-markdown/references/live-reload.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-settings/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-settings/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-settings/references/all-keys.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-settings/references/shortcut-actions.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-settings/scripts/cmux-settings +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-workspace/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-workspace/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/cmux-workspace/references/commands.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/code-review/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/fix-pr-issues/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/fix-pr-issues/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/fix-pr-issues/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/infographics/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/infographics/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/infographics/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/infographics/references/prompt-blueprint.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/infographics/references/style-balance.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/instrumentation/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/instrumentation/references/javascript/frameworks.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/instrumentation/references/javascript/patterns.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/instrumentation/references/python/integrations.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/instrumentation/references/python/logging-patterns.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/instrumentation/references/rust/patterns.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pr-create/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pr-create/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pr-create/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pr-description/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pr-description/references/pr-body-template.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pr-review-loop/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pull-request/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/context/AGENTS.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/context/pyproject.toml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/evals.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/files/accepted_preparation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/files/accepted_snapshot.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/files/shared_runtime_ownership.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/files/test_accepted_preparation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/evals/files/test_accepted_snapshot.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.agents/skills/pythonic-code/scripts/run_evals.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/commands/spec.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude/settings.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.claude-plugin/marketplace.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.codex/basic-memory.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.dockerignore +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.env.example +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.gitattributes +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/basic-memory/SOUL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/basic-memory/config.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/basic-memory/memory-ci-capture.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/dependabot.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/claude-code-review.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/consolidated-packages.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/mcp-registry-publish.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/publish-skills.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/release.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.github/workflows/test.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.gitignore +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/.python-version +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/AGENTS.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/CITATION.cff +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/CLA.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/CLAUDE.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/CONTRIBUTING.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/Dockerfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/LICENSE +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/NOTE-FORMAT.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/SECURITY.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/.github/workflows/benchmark-nightly.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/.github/workflows/benchmark-smoke.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/.gitignore +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/.python-version +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/AGENTS.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/datasets/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/datasets/locomo/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/datasets/locomo/download.sh +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/datasets/locomo/source.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/datasets/longmemeval/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/datasets/longmemeval/download.sh +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/results/matrix-v1.2-summary.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/results/matrix-v2-summary.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/results/structured-ingestion-findings.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/synthetic/docs/agent-memory.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/synthetic/docs/auth-memory.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/synthetic/docs/sync-memory.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/benchmarks/synthetic/queries.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/docs/benchmarks.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/docs/read-load-benchmark.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/docs/write-load-benchmark.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/pyproject.toml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/scripts/read_load_bench.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/scripts/write_load_bench.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/__main__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/bm_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/cli.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/concurrent_write.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/converters/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/converters/convomem_to_corpus.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/converters/locomo_to_corpus.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/converters/longmemeval_to_corpus.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/converters/structure_corpus.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/datasets/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/datasets/convomem.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/datasets/locomo.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/datasets/locomo_audit.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/datasets/longmemeval.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/exceptions.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/fairness.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/llm/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/llm/runners.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/baseline_fullcontext.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/baseline_grep.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/bm_cloud.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/bm_local.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/mem0_local.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/supermemory_local.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/providers/zep_reference.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/reporting/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/reporting/artifacts.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/reporting/compare.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/scoring/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/scoring/diagnose.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/scoring/qa.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/scoring/retrieval.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/scoring/review.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/src/basic_memory_benchmarks/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/test-int/test_compare_regression.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/test-int/test_runner_orchestration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/converters/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/converters/test_convomem_converter.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/converters/test_locomo_audit_corrections.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/converters/test_longmemeval_converter.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/llm/test_runners.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/providers/test_baseline_providers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/providers/test_bm_local_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/providers/test_mem0_normalization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/providers/test_supermemory_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_cli_surface.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_concurrent_write.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_diagnose.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_fairness.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_manifest_schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_qa_scoring.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_retrieval_metrics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_review.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_runner_grouped.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/tests/test_structure_corpus.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/benchmarks/uv.lock +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docker-compose-postgres.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docker-compose.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/ARCHITECTURE.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/DOMAIN_MODEL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/Docker.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/ENGINEERING_STYLE.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/NOTE-FORMAT.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/REDIS_READ_CACHE_PLAN.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/SPEC-PER-PROJECT-ROUTING.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/TRANSACTION_ISOLATION.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/ai-assistant-guide-extended.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/auto-bm-webhook-test.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/character-handling.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/cloud-cli.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/cloud-semantic-search-value.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/litellm-provider.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/logfire-instrumentation-strategy.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/manual-pages.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/mcp-ui-bakeoff-instructions.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/metadata-search.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/post-v0.18.0-test-plan.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/releases/v0.19.0.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/semantic-search-test-log.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/semantic-search.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/specs/SPEC-LOCAL-PLUS-PUBLISH.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/specs/SPEC-SCHEMA-IMPL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/specs/SPEC-SCHEMA.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/docs/testing-coverage.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/glama.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/.coveragerc +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/.github/workflows/integration.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/.github/workflows/release.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/.github/workflows/test.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/.gitignore +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/CHANGELOG.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/LICENSE +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/MONKEYPATCH.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/plugin.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/pytest.ini +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/requirements-dev.txt +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/skill/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/stubs/agent/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/stubs/agent/memory_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/stubs/tools/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/stubs/tools/registry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_actor.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_capture.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_child_env.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_helpers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_lifecycle.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_prefetch.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/hermes/tests/test_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/.githooks/pre-commit +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/.github/workflows/ci.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/.github/workflows/release.yml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/.gitignore +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/AGENTS.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/BASIC_MEMORY.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/CLAUDE.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/CONTEXT_ENGINE_PLAN.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/DEVELOPMENT.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/LICENSE +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/MEMORY_TASK_FLOW.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/SECURITY.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/biome.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/bm-client.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/bm-client.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/bun.lock +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/commands/cli.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/commands/skills.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/commands/skills.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/commands/slash.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/config.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/config.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/context-engine/basic-memory-context-engine.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/context-engine/basic-memory-context-engine.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/hooks/capture.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/hooks/capture.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/hooks/recall.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/hooks/recall.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/index.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/index.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/integration/bm-client.integration.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/logger.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/logger.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/openclaw.plugin.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/package.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/schema/conversation-schema.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/schema/task-schema.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/scripts/bm-local.sh +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/scripts/fetch-skills.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/scripts/setup-bm.sh +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/build-context.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/build-context.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/delete-note.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/delete-note.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/edit-note.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/edit-note.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/list-memory-projects.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/list-memory-projects.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/list-workspaces.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/list-workspaces.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/memory-provider.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/memory-provider.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/move-note.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/move-note.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/read-note.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/read-note.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/schema-diff.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/schema-diff.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/schema-infer.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/schema-infer.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/schema-validate.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/schema-validate.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/search-notes.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/search-notes.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/write-note.test.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tools/write-note.ts +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tsconfig.build.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/integrations/openclaw/tsconfig.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/llms-install.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/.claude-plugin/marketplace.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/CHANGELOG.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/DESIGN.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/docs/architecture.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/docs/getting-started.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/docs/why-combine-memory.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/hooks/hooks.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/hooks/pre_compact.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/hooks/session_start.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/hooks/test_claude_pre_compact.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/hooks/test_claude_session_start.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/output-styles/basic-memory.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/schemas/coding-session.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/schemas/decision.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/schemas/manpage.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/schemas/session.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/schemas/task.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/settings.example.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-checkpoint/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-decide/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-orient/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-remember/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-setup/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-share/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-status/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/claude-code/skills/bm-writing/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/.codex-plugin/plugin.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/.mcp.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/DEVELOPMENT.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/assets/app-icon.png +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/assets/logo.png +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/hooks/hooks.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/hooks/pre_compact.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/hooks/session_start.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/hooks/test_codex_pre_compact.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/hooks/test_codex_session_start.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/schemas/codex-session.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/schemas/coding-session.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/schemas/decision.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/schemas/task.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-checkpoint/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-checkpoint/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-checkpoint/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-decide/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-decide/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-decide/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-orient/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-orient/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-orient/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-remember/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-remember/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-remember/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-setup/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-setup/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-setup/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-share/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-share/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-share/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-status/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-status/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-status/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-writing/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-writing/agents/openai.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/plugins/codex/skills/bm-writing/assets/icon.svg +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/pyproject.toml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/build_skills_dist.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/edit-issue-labels.sh +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/testmon_cache.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/update_versions.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/validate_claude_plugin.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/validate_codex_plugin.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/validate_hermes_plugin.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/scripts/validate_skills.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/server.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/AGENTS.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/CLAUDE.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/DEVELOPMENT.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/justfile +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-capture/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-ci-capture/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-continue/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-curate/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-defrag/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-ingest/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-lifecycle/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-literary-analysis/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-metadata-search/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-notes/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-onboarding/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-onboarding/evals/evals.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-onboarding/references/assistant-setup.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-onboarding/references/conventions.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-onboarding/references/domain-playbooks.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-onboarding/references/schema-guide.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-reflect/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-research/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-schema/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/memory-tasks/SKILL.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills/skills-lock.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/skills-lock.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/smithery.yaml +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/2d26b287813b_dedupe_observations_and_purge_stale_.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/d7e8f9a0b1c2_add_structured_metadata_indexes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/h1b2c3d4e5f6_add_postgres_vector_search_tables.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/i2c3d4e5f6g7_auto_backfill_semantic_embeddings.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/j3d4e5f6g7h8_rename_entity_type_to_note_type.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/k4e5f6g7h8i9_add_created_by_and_last_updated_by_to_entity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/l5g6h7i8j9k0_add_note_content_table.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/m6h7i8j9k0l1_add_vector_sync_fingerprints.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/n7i8j9k0l1m2_cleanup_sqlite_search_orphans.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/o8j9k0l1m2n3_add_note_file_vacate_table.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/p9k0l1m2n3o4_add_vector_index_manifest_state.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/q0l1m2n3o4p5_add_relation_search_refresh_table.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/alembic/versions/r1m2n3o4p5q6_add_relation_generation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/container.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/inspect_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/knowledge_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/schema_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/routers/search_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/api/v2/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/ci/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/ci/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/ci/project_updates.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/analytics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/auth.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/auto_update.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/ci.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/core_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/project_sync.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/restore.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/schemas.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/shares.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/snapshot.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/transfer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/webdav.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/webdav_transfer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/cloud/workspace.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/command_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/format.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/hook.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/inspect.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/man.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/orphans.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/routing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/update.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/workspace.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/container.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/promo.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/config_logging.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/config_migrations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/config_models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/db.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/db.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/importers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/projects.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/read_cache.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/repositories.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/deps/services.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/_uuid7.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/adapters/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/adapters/base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/adapters/claude.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/adapters/codex.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/archive.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/envelope.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/inbox.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/hooks/project_ref.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/ignore_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/project_zip_import.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/event_operations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/filesystem.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/inline_operations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_dependencies.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_moves.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_notes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_project.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_schedulers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/local_watch.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/note_content_materialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/project_indexing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/repository_project_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/schedulers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/storage_events.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/watch_coordinator.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/index/watch_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/accepted_note_enqueue_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/accepted_note_mutation_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/accepted_note_search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/accepted_note_write_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/batch_indexer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/batching.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/change_detector.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/change_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/directory_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/embedding_index_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/external_file_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/file_batch_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/file_index_checking.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/file_index_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/file_indexer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/forward_reference_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/index_batch_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/index_file_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/index_file_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/input_file_adaptation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/job_payloads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/link_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/note_content_batch_reconciliation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/note_content_read_repair_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/note_content_reconciler.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/note_content_reconciliation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/note_file_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/note_materialization_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/orphan_cleanup.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/progress.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_delete_acceptance.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_coordinator.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_maintenance.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_progress.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_workflow.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_workflow_models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_workflow_stale.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/project_index_workflow_updates.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/relation_persistence.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/indexing/relation_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/man/basic-memory.1 +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/man/bm.1 +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/client_info.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/directory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/inspect.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/knowledge.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/memory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/resource.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/container.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/note_reads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/project_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/project_context_identifiers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/getting_started.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/resources/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/basic_memory_diagnostics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/ui_sdk.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/workspaces.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/html/note-preview-mcp-ui.html +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/html/note-preview-tool-ui.html +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/html/note-preview-vanilla.html +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/html/search-results-mcp-ui.html +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/html/search-results-tool-ui.html +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/html/search-results-vanilla.html +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/sdk.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/ui/templates.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/workspace_project_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/migration_loop.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/models/relation_search_refresh.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/picoschema/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/picoschema/diff.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/picoschema/inference.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/picoschema/parser.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/picoschema/resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/picoschema/validator.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/project_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/contract.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/invalidation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/keys.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/lifecycle.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/policy.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/read_through.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/read_cache/redis.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/redaction.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/accepted_note_repositories.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/accepted_note_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/accepted_note_search_row.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/accepted_note_vector_cleanup.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/embedding_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/embedding_provider_factory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/fastembed_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/fastembed_rerank_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/litellm_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/litellm_rerank_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/metadata_filters.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/milvus_config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/milvus_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/milvus_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/note_content_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/note_file_vacate_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/openai_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/pgvector_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/postgres_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/prefixing_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/rerank_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/rerank_provider_factory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/search_index_row.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/search_query.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/search_trace.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/semantic_chunking.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/semantic_errors.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/semantic_vector_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/semantic_vector_index_factory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/semantic_vector_sync.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/sqlite_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/repository/sqlite_vec_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/accepted_note_changes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/cleanup.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/job_payloads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/jobs.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/mode.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_content.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_content_deletes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_content_reads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_content_responses.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_file_guards.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_materialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_materialization_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_move.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/note_object_metadata.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/observed_index_files.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/process.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/projects.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/sample_notes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/storage.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/storage_events.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/storage_project_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/vector_sync.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/runtime/workflows.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/cloud.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/inspect.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/project_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/v2/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/v2/entity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/v2/graph.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/schemas/v2/project_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/bulk_link_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/composition.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/directory_deletes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/note_content_reads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/note_content_writes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/note_preparation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/project_deletes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/retrieval_inspect.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/workspace_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_cli_tool_read_note_security_error.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_cli_tool_recent_activity_page_size.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_cli_tool_search_notes_category.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_cli_tool_write_note_parity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_move_note_edge_cases.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_navigation_pagination_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/bughunt_fixes/test_parse_tags_comma_split_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_cli_tool_delete_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_cli_tool_edit_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_cli_tool_json_failure_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_cli_tool_json_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_cli_tool_write_note_type_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_project_commands_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_routing_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_search_notes_meta_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_status_wait_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/compare_search_benchmarks.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-01.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-02.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-03.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-04.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-05.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-06.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-07.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-08.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-09.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-10.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-11.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-12.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-13.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-14.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-15.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-16.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-17.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-18.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-19.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/people/drift-person-20.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/drift/schema/Person.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/array-single.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/empty-note.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/explicit-overrides-type.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/inline-and-type.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/no-frontmatter.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/relation-only.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/type-no-schema.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/edge-cases/unicode-fields.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/ada-lovelace.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/alan-turing.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/anders-hejlsberg.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/andrej-karpathy.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/barbara-liskov.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/bjarne-stroustrup.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/brendan-eich.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/claude-shannon.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/dennis-ritchie.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/dijkstra.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/donald-knuth.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/fei-fei-li.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/geoffrey-hinton.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/grace-hopper.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/guido-van-rossum.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/james-gosling.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/john-carmack.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/ken-thompson.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/larry-page.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/leslie-lamport.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/linus-torvalds.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/margaret-hamilton.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/rasmus-lerdorf.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/richard-stallman.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/rob-pike.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/satoshi-nakamoto.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/tim-berners-lee.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/vint-cerf.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/yann-lecun.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/inference/people/yukihiro-matsumoto.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/schemas/Book.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/schemas/InvalidOffSchema.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/schemas/Meeting.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/schemas/Person.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/schemas/SoftwareProject.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/schemas/StrictSchema.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/valid/basic-memory.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/valid/explicit-ref-note.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/valid/no-schema-note.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/valid/paul-graham.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/valid/rich-hickey.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/valid/standup-2024-01-15.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/warnings/extra-observations.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/warnings/missing-multiple.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/warnings/missing-required.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/fixtures/schema/warnings/wrong-enum-value.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_concurrent_write_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_delete_directory_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_long_relation_type_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_move_directory_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_observation_permalink_collision_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_output_format_json_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_pagination_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_param_aliases_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_permalink_collision_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_recreate_project_indexing_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_search_note_types_case_insensitive.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_smoke_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_string_params_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_ui_sdk_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_workspace_permalink_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/mcp/test_write_note_type_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_api_read_cache.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_materialization_invalidation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_mcp_read_cache.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_read_cache_benchmark.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_redis_read_cache.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_runtime_invalidation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/read_cache/test_search_read_cache.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/corpus.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/litellm_live_harness.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/metrics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/report.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_embedding_provider_reuse.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_litellm_live_harness.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_litellm_live_models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_milvus_lite.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_multiterm_semantic_queries.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_real_fastembed_reranker.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_reranker_latency.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_reranker_quality.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_search_diagnostics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_semantic_coverage.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/semantic/test_semantic_quality.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_embedding_status_vec0.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_note_file_vacate_atomicity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_note_materialization_lock_order.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/helpers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/test_diff_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/test_inference_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/test_parser_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_picoschema/test_validator_integration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_postgres_dispose_cycle.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_project_index_delete_materialization_race.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_relation_generation_concurrency.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/test-int/test_search_performance_benchmark.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/README.md +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/Screenshot.png +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/test_container.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_accepted_note_atomicity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_directory_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_entity_observation_lock_order.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_importer_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_inspect_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_knowledge_resolution_contract.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_knowledge_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_knowledge_router_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_memory_hydration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_memory_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_orphan_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_project_index_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_prompt_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_resource_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_schema_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_search_hydration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_search_router.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_search_router_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_utils_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/api/v2/test_workspace_permalink_headers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_bmignore_sync_filter_refresh.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_project_sync_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_rclone_installer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_upload_command_routing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_upload_path.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_webdav_client.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/cloud/test_webdav_transfer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_analytics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_auth_cli_auth.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_auto_update.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_ci_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_container.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_exit.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_tool_exit.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_tool_json_output.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_tool_rich_output.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cloud_authentication.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cloud_promo.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_cloud_status.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_coding_session_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_command_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_config_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_db_reindex.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_db_reset_exit.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_db_reset_zombie_check.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_hook_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_inspect_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_json_output.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_man_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_orphans_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_project_add_with_local_path.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_project_info_cloud_status.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_project_info_errors.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_project_list_and_ls.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_project_remove_errors.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_project_set_cloud_local.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_restore_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_routing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_share_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_snapshot_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_status_wait_timeout.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_update_command.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_upload.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_workspace_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cli/test_workspace_stub.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cloud/test_cloud_services.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cloud/test_note_content_materialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cloud/test_note_content_read_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/cloud/test_project_deletes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/db/test_memory_db_session_isolation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/db/test_semantic_search_startup.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/db/test_uvloop_policy.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/fixtures/claude_pre_compact.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/fixtures/claude_session_start.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/fixtures/codex_pre_compact.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/fixtures/codex_session_start.json +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/test_adapters.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/test_archive.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/test_envelope.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/test_inbox.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/hooks/test_uuid7.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/importers/test_conversation_indexing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/importers/test_project_zip_import.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_filesystem_events.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_inline_storage_event_processor.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_accepted_note_repositories.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_inline_result_recorder.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_markdown_file_indexer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_move_content_updates.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_project_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_project_scan_parity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_project_vector_cleaner_wiring.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_reconcile_file_reader.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_scheduler_task_failure.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_schedulers.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_watch_ignore_parity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_watch_orchestration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_watch_regular_file_parity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_watch_semantic_embedding.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_local_watch_stress_parity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_project_index_surface.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_repository_storage_event_project_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_storage_event_operation_processor.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_storage_event_orchestration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_watch_coordinator.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/index/test_watch_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_accepted_note_enqueue_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_accepted_note_mutation_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_accepted_note_search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_accepted_note_write_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_batch_index_search_writer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_batch_indexer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_batching.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_change_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_directory_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_embedding_index_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_external_file_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_file_batch_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_file_index_checking.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_file_index_models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_file_index_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_file_indexer.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_forward_reference_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_index_batch_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_index_file_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_indexing_job_payloads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_input_file_adaptation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_link_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_note_content_batch_reconciliation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_note_content_read_repair_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_note_content_reconciler.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_note_content_reconciliation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_note_file_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_note_materialization_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_orphan_cleanup.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_progress_models.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_delete_acceptance.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_delete_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_index_coordinator.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_index_maintenance.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_index_progress.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_index_runner.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_index_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_project_index_workflow.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_relation_persistence.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_relation_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_relation_resolution_scaling.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_relation_search_refresh_retry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/indexing/test_vector_sync_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_entity_parser_error_handling.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_markdown_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/clients/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_async_client_force_local.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_async_client_modes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_async_client_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_client_info.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_client_schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_client_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_first_connect_onboarding.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_mcp_container.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_mcp_note_type_normalization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_project_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_project_context_scoped_key.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_project_context_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_prompt_tool_delegation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_read_note_request_counts.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_search_total_exactness.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_server_lifespan_branches.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_server_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_basic_memory_diagnostics.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_contracts.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_json_output_modes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_project_management.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_schema.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_utils_cloud_auth.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_workspace_management.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_tool_write_note_metadata.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_ui_sdk.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_ui_templates.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/test_workspace_permalink_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/tools/test_mutating_memory_url_routing.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/mcp/tools/test_search_notes_multi_project.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/picoschema/__init__.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/picoschema/test_diff.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/picoschema/test_inference.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/picoschema/test_parser.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/picoschema/test_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/picoschema/test_validator.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_accepted_note_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_accepted_pending_entity_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_chunk_inspection.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_distance_to_similarity.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_entity_upsert_issue_187.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_explicit_session_transactions.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_external_vector_cleanup.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_fastembed_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_fastembed_rerank_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_hybrid_fusion.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_litellm_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_litellm_rerank_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_metadata_filters.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_metadata_filters_edge_cases.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_milvus_config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_milvus_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_milvus_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_note_content_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_note_file_vacate_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_openai_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_pgvector_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_postgres_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_postgres_search_repository_unit.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_prefixing_provider.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_rerank_pipeline.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_rerank_provider_factory.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_index_row.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_relaxation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_relaxation_unicode_classes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_relaxed_rendering.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_text_with_metadata_filters.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_search_trace.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_semantic_chunking.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_semantic_search_base.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_semantic_vector_index.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_semantic_vector_sync.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_sqlite_vector_search_repository.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_vector_manifest_generation_ownership.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_vector_pagination.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/repository/test_vector_threshold.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_accepted_note_response_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_accepted_note_write_guards.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_deleted_note_file_checksum.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_deleted_note_response.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_job_request_contracts.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_note_content_read_planning.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_note_content_store_materialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_note_materialization_request_matching.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_note_move_destination.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_pending_note_materialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_previous_materialized_note_file_delete.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_process.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_runtime_job_payloads.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_sample_notes.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/runtime/test_workflow_metadata.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_memory_serialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_bulk_link_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_entity_service_heading_boundaries.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_entity_service_prepare.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_entity_service_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_entity_service_write_result.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_note_type_normalization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_service_cloud_info.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_service_composition.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_service_embedding_status.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_search_service_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_semantic_search.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_semantic_timestamp_surfaces.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_upsert_entity_optimization.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_alembic_env.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_architecture_boundaries.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_claude_issue_triage.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_claude_plugin_hooks.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_codex_plugin_package.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_coerce.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_config.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_config_load_side_effects.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_deps.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_migration_loop.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_note_content_migration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_permalink_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_pr_title_workflow.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_project_resolver.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_rclone_commands.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_read_cache_lifecycle.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_read_cache_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_read_load_bench.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_runtime.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_runtime_observed_index_files.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_runtime_storage_events.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_runtime_storage_project_resolution.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_semantic_vector_index_migration.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_telemetry.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/test_update_versions.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_setup_logging.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_timezone_utils.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_validate_project_path.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/utils/test_workspace_context.py +0 -0
- {basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/uv.lock +0 -0
|
@@ -2,6 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## v0.23.1 (2026-08-25)
|
|
6
|
+
|
|
7
|
+
Fast-follow patch to v0.23.0 focused on PostgreSQL search parity and a
|
|
8
|
+
search-destroying reindex bug. Postgres now indexes complete note bodies for
|
|
9
|
+
full-text search (previously only titles and capped content stems, unlike
|
|
10
|
+
SQLite), and the per-project search reindex no longer wipes every other
|
|
11
|
+
project's search rows in the same database. Also adds a `#bm:links_to`
|
|
12
|
+
directive for disambiguating prose wiki-links, and hardens `bm update` output
|
|
13
|
+
after in-place upgrades.
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- Added the `#bm:links_to` directive: ending a list item with `#bm:links_to`
|
|
18
|
+
forces the reference to the implicit `links_to` relation, so a single-token
|
|
19
|
+
prose prefix (`- Mother [[Alice]] #bm:links_to`) is not parsed as an
|
|
20
|
+
explicit relation type. The directive stays in the source file but is
|
|
21
|
+
stripped from indexed observation and relation content.
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
- PostgreSQL full-text search now covers complete note bodies. Note content is
|
|
26
|
+
indexed as bounded, overlapping chunks in a new `search_index_fts_chunks`
|
|
27
|
+
table (a migration backfills existing notes), so deep content matches on
|
|
28
|
+
Postgres the way it always has on SQLite FTS5. The work includes correct
|
|
29
|
+
Boolean AND/NOT semantics across chunk boundaries, apostrophe and
|
|
30
|
+
punctuated-operand handling (`can't`, `v0.13.0b2`, `auth-service`),
|
|
31
|
+
metadata-filter composition, 100+ operand queries, and candidate
|
|
32
|
+
preselection so both GIN indexes stay in play.
|
|
33
|
+
- The per-project search reindex (`POST /search/reindex`) no longer drops the
|
|
34
|
+
shared `search_index` table. Dropping it destroyed every project's search
|
|
35
|
+
rows in the same database — and on Postgres nothing outside migrations
|
|
36
|
+
recreates the table, so cloud tenants lost search entirely until manual
|
|
37
|
+
repair. The rebuild now deletes only the reindexed project's rows (chunk
|
|
38
|
+
rows cascade), and the chunks migration recreates a missing `search_index`
|
|
39
|
+
so databases hit by the old behavior migrate cleanly.
|
|
40
|
+
- **#1316**: `bm update` status output no longer crashes after an in-place
|
|
41
|
+
upgrade removes the running install's files: rich's deferred Unicode width
|
|
42
|
+
table is preloaded before upgrading, and status lines fall back to plain
|
|
43
|
+
output instead of failing a completed update.
|
|
44
|
+
- **#1323**: `bm doctor` no longer fails when `BASIC_MEMORY_PROJECT_ROOT`
|
|
45
|
+
points at an existing project's directory. Doctor now asks the server for a
|
|
46
|
+
disposable `doctor-*` project under the configured root — the only
|
|
47
|
+
sanctioned exception to the nested-project guard — and cleanup deletes the
|
|
48
|
+
project's directory along with its registration.
|
|
49
|
+
- `bm doctor` waits for deferred note materialization before verifying the
|
|
50
|
+
API-written file, matching the accepted-write contract instead of racing it.
|
|
51
|
+
|
|
5
52
|
## v0.23.0 (2026-08-23)
|
|
6
53
|
|
|
7
54
|
Semantic search grows up and concurrent writes stop deadlocking. Search gains
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.23.1.
|
|
3
|
+
Version: 0.23.1.dev27
|
|
4
4
|
Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
|
|
5
5
|
Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
|
|
6
6
|
Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
|
|
@@ -22,6 +22,62 @@ def upgrade() -> None:
|
|
|
22
22
|
"""Index complete note bodies as bounded PostgreSQL FTS chunks."""
|
|
23
23
|
connection = op.get_bind()
|
|
24
24
|
if connection.dialect.name == "postgresql":
|
|
25
|
+
# --- Repair: recreate search_index if a destructive reindex removed it ---
|
|
26
|
+
# Trigger: search_index does not exist. Through v0.23.0, the per-project
|
|
27
|
+
# search reindex ran DROP TABLE IF EXISTS search_index, and on Postgres
|
|
28
|
+
# nothing outside migrations recreates that table.
|
|
29
|
+
# Why: the chunk backfill below reads search_index and the chunks table
|
|
30
|
+
# declares a foreign key to it, so without repair this migration fails
|
|
31
|
+
# permanently and blocks the database from ever reaching head.
|
|
32
|
+
# Outcome: healthy databases no-op on IF NOT EXISTS; a repaired database
|
|
33
|
+
# gets an empty index that the next full reindex repopulates. The DDL
|
|
34
|
+
# mirrors the current schema in models/search.py.
|
|
35
|
+
op.execute("""
|
|
36
|
+
CREATE TABLE IF NOT EXISTS search_index (
|
|
37
|
+
id INTEGER NOT NULL,
|
|
38
|
+
project_id INTEGER NOT NULL,
|
|
39
|
+
title TEXT,
|
|
40
|
+
content_stems TEXT,
|
|
41
|
+
content_snippet TEXT,
|
|
42
|
+
permalink VARCHAR,
|
|
43
|
+
file_path VARCHAR,
|
|
44
|
+
type VARCHAR,
|
|
45
|
+
from_id INTEGER,
|
|
46
|
+
to_id INTEGER,
|
|
47
|
+
relation_type VARCHAR,
|
|
48
|
+
entity_id INTEGER,
|
|
49
|
+
category VARCHAR,
|
|
50
|
+
metadata JSONB,
|
|
51
|
+
created_at TIMESTAMP WITH TIME ZONE,
|
|
52
|
+
updated_at TIMESTAMP WITH TIME ZONE,
|
|
53
|
+
textsearchable_index_col tsvector GENERATED ALWAYS AS (
|
|
54
|
+
to_tsvector(
|
|
55
|
+
'english',
|
|
56
|
+
coalesce(title, '') || ' ' ||
|
|
57
|
+
coalesce(content_stems, '')
|
|
58
|
+
)
|
|
59
|
+
) STORED,
|
|
60
|
+
PRIMARY KEY (id, type, project_id),
|
|
61
|
+
FOREIGN KEY (project_id) REFERENCES project(id) ON DELETE CASCADE
|
|
62
|
+
)
|
|
63
|
+
""")
|
|
64
|
+
op.execute("""
|
|
65
|
+
CREATE INDEX IF NOT EXISTS ix_search_index_project_id
|
|
66
|
+
ON search_index (project_id)
|
|
67
|
+
""")
|
|
68
|
+
op.execute("""
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_search_index_fts
|
|
70
|
+
ON search_index USING gin(textsearchable_index_col)
|
|
71
|
+
""")
|
|
72
|
+
op.execute("""
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_search_index_metadata_gin
|
|
74
|
+
ON search_index USING gin(metadata jsonb_path_ops)
|
|
75
|
+
""")
|
|
76
|
+
op.execute("""
|
|
77
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uix_search_index_permalink_project
|
|
78
|
+
ON search_index (permalink, project_id)
|
|
79
|
+
WHERE permalink IS NOT NULL
|
|
80
|
+
""")
|
|
25
81
|
op.execute("""
|
|
26
82
|
CREATE TABLE search_index_fts_chunks (
|
|
27
83
|
project_id INTEGER NOT NULL,
|
|
@@ -221,6 +221,28 @@ async def add_project(
|
|
|
221
221
|
raise HTTPException(status_code=400, detail=str(e))
|
|
222
222
|
|
|
223
223
|
|
|
224
|
+
@router.post("/doctor", response_model=ProjectStatusResponse, status_code=201)
|
|
225
|
+
async def add_doctor_project(project_service: ProjectServiceDep) -> ProjectStatusResponse:
|
|
226
|
+
"""Create a server-generated disposable project for the local doctor check."""
|
|
227
|
+
try:
|
|
228
|
+
new_project = await project_service.add_doctor_project()
|
|
229
|
+
except ValueError as e:
|
|
230
|
+
raise HTTPException(status_code=400, detail=str(e))
|
|
231
|
+
|
|
232
|
+
return ProjectStatusResponse(
|
|
233
|
+
message=f"Project '{new_project.name}' added successfully",
|
|
234
|
+
status="success",
|
|
235
|
+
default=new_project.is_default or False,
|
|
236
|
+
new_project=ProjectItem(
|
|
237
|
+
id=new_project.id,
|
|
238
|
+
external_id=new_project.external_id,
|
|
239
|
+
name=new_project.name,
|
|
240
|
+
path=new_project.path,
|
|
241
|
+
is_default=new_project.is_default or False,
|
|
242
|
+
),
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
|
|
224
246
|
@router.post("/config/sync", response_model=ProjectStatusResponse)
|
|
225
247
|
async def synchronize_projects(
|
|
226
248
|
project_service: ProjectServiceDep,
|
{basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/cli/commands/doctor.py
RENAMED
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import tempfile
|
|
6
6
|
import uuid
|
|
7
7
|
from pathlib import Path
|
|
8
|
+
from typing import Protocol
|
|
8
9
|
|
|
9
10
|
from loguru import logger
|
|
10
11
|
from rich.console import Console
|
|
@@ -23,6 +24,14 @@ from basic_memory.schemas import ProjectIndexRunResponse
|
|
|
23
24
|
console = Console()
|
|
24
25
|
|
|
25
26
|
|
|
27
|
+
class DoctorProjectClient(Protocol):
|
|
28
|
+
"""Project-client capability required to clean up doctor state."""
|
|
29
|
+
|
|
30
|
+
async def delete_project(
|
|
31
|
+
self, project_external_id: str, delete_notes: bool = False
|
|
32
|
+
) -> object: ...
|
|
33
|
+
|
|
34
|
+
|
|
26
35
|
def _is_default_project_delete_error(error: Exception) -> bool:
|
|
27
36
|
"""Return True only for the API guard that blocks deleting the default project."""
|
|
28
37
|
error_text = str(error)
|
|
@@ -61,14 +70,14 @@ async def _delete_doctor_project_locally(project_name: str, project_id: str) ->
|
|
|
61
70
|
|
|
62
71
|
|
|
63
72
|
async def _delete_doctor_project(
|
|
64
|
-
project_client:
|
|
73
|
+
project_client: DoctorProjectClient, project_name: str, project_id: str
|
|
65
74
|
) -> None:
|
|
66
75
|
"""Delete the generated doctor project without weakening the public API guard."""
|
|
67
76
|
# Deferred: ToolError lives in FastMCP's runtime, which must not load at CLI startup (#886).
|
|
68
77
|
from fastmcp.exceptions import ToolError
|
|
69
78
|
|
|
70
79
|
try:
|
|
71
|
-
await project_client.delete_project(project_id)
|
|
80
|
+
await project_client.delete_project(project_id, delete_notes=True)
|
|
72
81
|
except ToolError as exc:
|
|
73
82
|
if not _is_default_project_delete_error(exc):
|
|
74
83
|
raise
|
|
@@ -127,9 +136,16 @@ async def run_doctor() -> None:
|
|
|
127
136
|
project_id: str | None = None
|
|
128
137
|
|
|
129
138
|
try:
|
|
130
|
-
|
|
139
|
+
from basic_memory.config import ConfigManager
|
|
140
|
+
|
|
141
|
+
status = (
|
|
142
|
+
await project_client.create_doctor_project()
|
|
143
|
+
if ConfigManager().config.project_root
|
|
144
|
+
else await project_client.create_project(project_request.model_dump())
|
|
145
|
+
)
|
|
131
146
|
if not status.new_project:
|
|
132
147
|
raise ValueError("Failed to create doctor project")
|
|
148
|
+
project_name = status.new_project.name
|
|
133
149
|
project_id = status.new_project.external_id
|
|
134
150
|
# Use the resolved path from the server — when project_root is configured,
|
|
135
151
|
# the actual project directory differs from the requested temp_path
|
{basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/mcp/clients/project.py
RENAMED
|
@@ -78,6 +78,13 @@ class ProjectClient:
|
|
|
78
78
|
)
|
|
79
79
|
return ProjectStatusResponse.model_validate(response.json())
|
|
80
80
|
|
|
81
|
+
async def create_doctor_project(self) -> ProjectStatusResponse:
|
|
82
|
+
"""Create the server-generated disposable project used by doctor."""
|
|
83
|
+
from basic_memory.mcp.tools.utils import call_post
|
|
84
|
+
|
|
85
|
+
response = await call_post(self.http_client, "/v2/projects/doctor")
|
|
86
|
+
return ProjectStatusResponse.model_validate(response.json())
|
|
87
|
+
|
|
81
88
|
async def delete_project(
|
|
82
89
|
self, project_external_id: str, delete_notes: bool = False
|
|
83
90
|
) -> ProjectStatusResponse:
|
|
@@ -129,6 +129,10 @@ class SearchRepository(Protocol):
|
|
|
129
129
|
"""Delete item by permalink."""
|
|
130
130
|
...
|
|
131
131
|
|
|
132
|
+
async def delete_project_search_rows(self) -> None:
|
|
133
|
+
"""Delete every full-text search row owned by this project."""
|
|
134
|
+
...
|
|
135
|
+
|
|
132
136
|
async def delete_by_entity_id(self, entity_id: int) -> None:
|
|
133
137
|
"""Delete items by entity ID."""
|
|
134
138
|
...
|
|
@@ -1143,6 +1143,21 @@ class SearchRepositoryBase(ABC):
|
|
|
1143
1143
|
)
|
|
1144
1144
|
await session.commit()
|
|
1145
1145
|
|
|
1146
|
+
async def delete_project_search_rows(self) -> None:
|
|
1147
|
+
"""Delete every full-text search row owned by this repository's project.
|
|
1148
|
+
|
|
1149
|
+
Shared across backends: both store rows in `search_index` keyed by
|
|
1150
|
+
project_id, and a project-scoped DELETE leaves sibling projects in the
|
|
1151
|
+
same database untouched. On Postgres the bounded FTS chunk rows follow
|
|
1152
|
+
via their ON DELETE CASCADE foreign key.
|
|
1153
|
+
"""
|
|
1154
|
+
async with db.scoped_session(self.session_maker) as session:
|
|
1155
|
+
await session.execute(
|
|
1156
|
+
text("DELETE FROM search_index WHERE project_id = :project_id"),
|
|
1157
|
+
{"project_id": self.project_id},
|
|
1158
|
+
)
|
|
1159
|
+
await session.commit()
|
|
1160
|
+
|
|
1146
1161
|
async def execute_query(
|
|
1147
1162
|
self,
|
|
1148
1163
|
query: Executable,
|
{basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/project_service.py
RENAMED
|
@@ -4,6 +4,7 @@ import asyncio
|
|
|
4
4
|
import json
|
|
5
5
|
import os
|
|
6
6
|
import shutil
|
|
7
|
+
import uuid
|
|
7
8
|
from collections.abc import Callable
|
|
8
9
|
from datetime import datetime
|
|
9
10
|
from pathlib import Path
|
|
@@ -190,7 +191,9 @@ class ProjectService:
|
|
|
190
191
|
# Not nested in either direction
|
|
191
192
|
return False
|
|
192
193
|
|
|
193
|
-
async def add_project(
|
|
194
|
+
async def add_project(
|
|
195
|
+
self, name: str, path: str, set_default: bool = False, *, allow_nested: bool = False
|
|
196
|
+
) -> None:
|
|
194
197
|
"""Add a new project to the configuration and database.
|
|
195
198
|
|
|
196
199
|
Args:
|
|
@@ -240,27 +243,25 @@ class ProjectService:
|
|
|
240
243
|
f"In cloud mode, paths are normalized to lowercase to prevent case-sensitivity issues."
|
|
241
244
|
) # pragma: no cover
|
|
242
245
|
|
|
243
|
-
#
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
f"Projects cannot share directory trees."
|
|
263
|
-
)
|
|
246
|
+
# Doctor creates a disposable project inside the configured project root.
|
|
247
|
+
# It must be allowed to coexist with the existing root project.
|
|
248
|
+
if not allow_nested:
|
|
249
|
+
for existing in existing_projects:
|
|
250
|
+
if self._check_nested_paths(resolved_path, existing.path):
|
|
251
|
+
p_new = Path(resolved_path).resolve()
|
|
252
|
+
p_existing = Path(existing.path).resolve()
|
|
253
|
+
if p_new.is_relative_to(p_existing):
|
|
254
|
+
raise ValueError(
|
|
255
|
+
f"Cannot create project at '{resolved_path}': "
|
|
256
|
+
f"path is nested within existing project '{existing.name}' at '{existing.path}'. "
|
|
257
|
+
f"Projects cannot share directory trees."
|
|
258
|
+
)
|
|
259
|
+
else:
|
|
260
|
+
raise ValueError(
|
|
261
|
+
f"Cannot create project at '{resolved_path}': "
|
|
262
|
+
f"existing project '{existing.name}' at '{existing.path}' is nested within this path. "
|
|
263
|
+
f"Projects cannot share directory trees."
|
|
264
|
+
)
|
|
264
265
|
|
|
265
266
|
# Ensure the project directory exists on disk.
|
|
266
267
|
# Trigger: project_root not set means local filesystem mode (not S3/cloud)
|
|
@@ -332,6 +333,19 @@ class ProjectService:
|
|
|
332
333
|
|
|
333
334
|
logger.info(f"Project '{name}' added at {resolved_path}")
|
|
334
335
|
|
|
336
|
+
async def add_doctor_project(self) -> Project:
|
|
337
|
+
"""Create a server-generated disposable project under the configured root."""
|
|
338
|
+
project_root = self.config_manager.config.project_root
|
|
339
|
+
if not project_root:
|
|
340
|
+
raise ValueError("Doctor projects require BASIC_MEMORY_PROJECT_ROOT")
|
|
341
|
+
|
|
342
|
+
project_name = f"doctor-{uuid.uuid4().hex[:8]}"
|
|
343
|
+
await self.add_project(project_name, project_root, allow_nested=True)
|
|
344
|
+
project = await self.get_project(project_name)
|
|
345
|
+
if project is None: # pragma: no cover
|
|
346
|
+
raise ValueError("Failed to retrieve doctor project")
|
|
347
|
+
return project
|
|
348
|
+
|
|
335
349
|
async def remove_project(self, name: str, delete_notes: bool = False) -> None:
|
|
336
350
|
"""Remove a project from configuration and database.
|
|
337
351
|
|
{basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/src/basic_memory/services/search_service.py
RENAMED
|
@@ -11,7 +11,6 @@ from typing import Any, List, Optional, Set, Dict
|
|
|
11
11
|
from dateparser import parse
|
|
12
12
|
from fastapi import BackgroundTasks
|
|
13
13
|
from loguru import logger
|
|
14
|
-
from sqlalchemy import text
|
|
15
14
|
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker
|
|
16
15
|
|
|
17
16
|
import logfire
|
|
@@ -152,11 +151,20 @@ class SearchService:
|
|
|
152
151
|
logger.info("Starting full reindex")
|
|
153
152
|
# Trigger: a full search rebuild removes every derived row.
|
|
154
153
|
# Why: vector storage may live outside SQL, so cleanup must cross the
|
|
155
|
-
# repository boundary before the full-text
|
|
154
|
+
# repository boundary before the full-text rows are rebuilt.
|
|
156
155
|
# Outcome: built-in and extension indexes follow the same lifecycle.
|
|
157
156
|
await self.repository.delete_project_vector_rows()
|
|
158
|
-
|
|
157
|
+
# Trigger: this service reindexes exactly one project, but search_index
|
|
158
|
+
# is shared by every project in the database (local SQLite consolidated
|
|
159
|
+
# into one memory.db; cloud tenants share one Postgres DB across
|
|
160
|
+
# projects). The historical DROP TABLE here dated from the one-database-
|
|
161
|
+
# per-project era and destroyed sibling projects' rows — on Postgres it
|
|
162
|
+
# also left nothing behind, since only migrations recreate the table.
|
|
163
|
+
# Why: a project-scoped DELETE clears only rows this rebuild will
|
|
164
|
+
# repopulate, and on Postgres the FTS chunk rows cascade with them.
|
|
165
|
+
# Outcome: sibling projects keep serving search while this one rebuilds.
|
|
159
166
|
await self.init_search_index()
|
|
167
|
+
await self.repository.delete_project_search_rows()
|
|
160
168
|
|
|
161
169
|
# Reindex all entities
|
|
162
170
|
logger.debug("Indexing entities")
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Tests for V2 project management API routes (ID-based endpoints)."""
|
|
2
2
|
|
|
3
|
+
import os
|
|
3
4
|
import tempfile
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
|
|
@@ -629,3 +630,47 @@ async def test_resolve_project_empty_identifier(client: AsyncClient, v2_projects
|
|
|
629
630
|
response = await client.post(f"{v2_projects_url}/resolve", json=resolve_data)
|
|
630
631
|
|
|
631
632
|
assert response.status_code == 422 # Validation error
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
@pytest.mark.skipif(os.name == "nt", reason="Project root constraints only tested on POSIX systems")
|
|
636
|
+
@pytest.mark.asyncio
|
|
637
|
+
async def test_add_doctor_project_endpoint(
|
|
638
|
+
client: AsyncClient,
|
|
639
|
+
v2_projects_url,
|
|
640
|
+
monkeypatch,
|
|
641
|
+
tmp_path,
|
|
642
|
+
):
|
|
643
|
+
"""Regression #1323: the doctor endpoint creates a disposable nested project."""
|
|
644
|
+
root_path = tmp_path / "app" / "data"
|
|
645
|
+
root_path.mkdir(parents=True)
|
|
646
|
+
monkeypatch.setenv("BASIC_MEMORY_PROJECT_ROOT", str(root_path))
|
|
647
|
+
from basic_memory import config as config_module
|
|
648
|
+
|
|
649
|
+
config_module._CONFIG_CACHE = None
|
|
650
|
+
config_module._CONFIG_MTIME = None
|
|
651
|
+
config_module._CONFIG_SIZE = None
|
|
652
|
+
try:
|
|
653
|
+
response = await client.post(f"{v2_projects_url}/doctor")
|
|
654
|
+
|
|
655
|
+
assert response.status_code == 201
|
|
656
|
+
data = response.json()
|
|
657
|
+
assert data["status"] == "success"
|
|
658
|
+
assert data["new_project"]["name"].startswith("doctor-")
|
|
659
|
+
assert Path(data["new_project"]["path"]).resolve().is_relative_to(root_path.resolve())
|
|
660
|
+
finally:
|
|
661
|
+
monkeypatch.delenv("BASIC_MEMORY_PROJECT_ROOT", raising=False)
|
|
662
|
+
config_module._CONFIG_CACHE = None
|
|
663
|
+
config_module._CONFIG_MTIME = None
|
|
664
|
+
config_module._CONFIG_SIZE = None
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
@pytest.mark.asyncio
|
|
668
|
+
async def test_add_doctor_project_endpoint_requires_project_root(
|
|
669
|
+
client: AsyncClient,
|
|
670
|
+
v2_projects_url,
|
|
671
|
+
):
|
|
672
|
+
"""Without a configured project root the doctor endpoint refuses cleanly."""
|
|
673
|
+
response = await client.post(f"{v2_projects_url}/doctor")
|
|
674
|
+
|
|
675
|
+
assert response.status_code == 400
|
|
676
|
+
assert "BASIC_MEMORY_PROJECT_ROOT" in response.json()["detail"]
|
|
@@ -91,3 +91,20 @@ async def test_doctor_reports_api_note_missing_after_materialization_drain(tmp_p
|
|
|
91
91
|
tmp_path / "doctor" / "missing.md",
|
|
92
92
|
"doctor/missing.md",
|
|
93
93
|
)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@pytest.mark.asyncio
|
|
97
|
+
async def test_doctor_cleanup_deletes_project_notes():
|
|
98
|
+
"""Doctor cleanup removes the disposable project's canonical files."""
|
|
99
|
+
|
|
100
|
+
deleted: list[tuple[str, bool]] = []
|
|
101
|
+
|
|
102
|
+
class ProjectClient:
|
|
103
|
+
async def delete_project(
|
|
104
|
+
self, project_external_id: str, delete_notes: bool = False
|
|
105
|
+
) -> None:
|
|
106
|
+
deleted.append((project_external_id, delete_notes))
|
|
107
|
+
|
|
108
|
+
await doctor_cmd._delete_doctor_project(ProjectClient(), "doctor-test", "project-id")
|
|
109
|
+
|
|
110
|
+
assert deleted == [("project-id", True)]
|
|
@@ -527,6 +527,36 @@ class TestProjectClient:
|
|
|
527
527
|
client = ProjectClient(mock_http)
|
|
528
528
|
assert client.http_client is mock_http
|
|
529
529
|
|
|
530
|
+
@pytest.mark.asyncio
|
|
531
|
+
async def test_create_doctor_project(self, monkeypatch):
|
|
532
|
+
"""Test create_doctor_project posts to the doctor endpoint."""
|
|
533
|
+
|
|
534
|
+
mock_response = MagicMock()
|
|
535
|
+
mock_response.json.return_value = {
|
|
536
|
+
"message": "Project 'doctor-abc12345' added successfully",
|
|
537
|
+
"status": "success",
|
|
538
|
+
"default": False,
|
|
539
|
+
"new_project": {
|
|
540
|
+
"id": 7,
|
|
541
|
+
"external_id": "uuid-doctor",
|
|
542
|
+
"name": "doctor-abc12345",
|
|
543
|
+
"path": "/app/data/doctor-abc12345",
|
|
544
|
+
"is_default": False,
|
|
545
|
+
},
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
async def mock_call_post(client, url, **kwargs):
|
|
549
|
+
assert url == "/v2/projects/doctor"
|
|
550
|
+
return mock_response
|
|
551
|
+
|
|
552
|
+
monkeypatch.setattr("basic_memory.mcp.tools.utils.call_post", mock_call_post)
|
|
553
|
+
|
|
554
|
+
mock_http = MagicMock()
|
|
555
|
+
client = ProjectClient(mock_http)
|
|
556
|
+
result = await client.create_doctor_project()
|
|
557
|
+
assert result.new_project is not None
|
|
558
|
+
assert result.new_project.name == "doctor-abc12345"
|
|
559
|
+
|
|
530
560
|
@pytest.mark.asyncio
|
|
531
561
|
async def test_list_projects(self, monkeypatch):
|
|
532
562
|
"""Test list_projects calls correct endpoint."""
|
{basic_memory-0.23.1.dev20 → basic_memory-0.23.1.dev27}/tests/services/test_project_service.py
RENAMED
|
@@ -1207,6 +1207,32 @@ async def test_add_project_rejects_nested_child_path(project_service: ProjectSer
|
|
|
1207
1207
|
await project_service.remove_project(parent_project_name)
|
|
1208
1208
|
|
|
1209
1209
|
|
|
1210
|
+
@pytest.mark.asyncio
|
|
1211
|
+
async def test_add_project_rejects_doctor_prefixed_nested_child_path(
|
|
1212
|
+
project_service: ProjectService,
|
|
1213
|
+
):
|
|
1214
|
+
"""A user-controlled doctor-prefixed name cannot bypass project isolation."""
|
|
1215
|
+
parent_project_name = f"parent-project-{os.urandom(4).hex()}"
|
|
1216
|
+
doctor_project_name = f"doctor-{os.urandom(4).hex()}"
|
|
1217
|
+
with tempfile.TemporaryDirectory() as temp_dir:
|
|
1218
|
+
parent_path = Path(temp_dir) / "parent"
|
|
1219
|
+
parent_path.mkdir()
|
|
1220
|
+
|
|
1221
|
+
try:
|
|
1222
|
+
await project_service.add_project(parent_project_name, parent_path.as_posix())
|
|
1223
|
+
|
|
1224
|
+
with pytest.raises(ValueError, match="nested within existing project"):
|
|
1225
|
+
await project_service.add_project(
|
|
1226
|
+
doctor_project_name,
|
|
1227
|
+
(parent_path / "doctor").as_posix(),
|
|
1228
|
+
)
|
|
1229
|
+
finally:
|
|
1230
|
+
if doctor_project_name in project_service.projects:
|
|
1231
|
+
await project_service.remove_project(doctor_project_name)
|
|
1232
|
+
if parent_project_name in project_service.projects:
|
|
1233
|
+
await project_service.remove_project(parent_project_name)
|
|
1234
|
+
|
|
1235
|
+
|
|
1210
1236
|
@pytest.mark.asyncio
|
|
1211
1237
|
async def test_add_project_rejects_parent_path_over_existing_child(project_service: ProjectService):
|
|
1212
1238
|
"""Test that adding a parent project over an existing nested project fails."""
|
|
@@ -1696,3 +1722,62 @@ async def test_remove_project_rejects_database_default_in_both_modes(
|
|
|
1696
1722
|
project_service.config_manager.remove_project(test_project_name)
|
|
1697
1723
|
except Exception:
|
|
1698
1724
|
pass
|
|
1725
|
+
|
|
1726
|
+
|
|
1727
|
+
@pytest.mark.skipif(os.name == "nt", reason="Project root constraints only tested on POSIX systems")
|
|
1728
|
+
@pytest.mark.asyncio
|
|
1729
|
+
async def test_add_doctor_project_allows_nested_under_configured_root(
|
|
1730
|
+
project_service: ProjectService, config_manager: ConfigManager, monkeypatch
|
|
1731
|
+
):
|
|
1732
|
+
"""Regression #1323: doctor can create its disposable project under the root.
|
|
1733
|
+
|
|
1734
|
+
When an existing project owns BASIC_MEMORY_PROJECT_ROOT itself, the normal
|
|
1735
|
+
nesting guard rejects any project beneath it. The server-generated doctor
|
|
1736
|
+
project is the sanctioned exception, and cleanup removes its directory.
|
|
1737
|
+
"""
|
|
1738
|
+
with tempfile.TemporaryDirectory() as temp_dir:
|
|
1739
|
+
root_path = Path(temp_dir) / "app" / "data"
|
|
1740
|
+
root_path.mkdir(parents=True, exist_ok=True)
|
|
1741
|
+
owner_name = f"root-owner-{os.urandom(4).hex()}"
|
|
1742
|
+
|
|
1743
|
+
# The owner project claims the root itself, as in the issue's Docker setup
|
|
1744
|
+
# (created before project_root constraints applied to it).
|
|
1745
|
+
await project_service.add_project(owner_name, str(root_path))
|
|
1746
|
+
|
|
1747
|
+
monkeypatch.setenv("BASIC_MEMORY_PROJECT_ROOT", str(root_path))
|
|
1748
|
+
from basic_memory import config as config_module
|
|
1749
|
+
|
|
1750
|
+
config_module._CONFIG_CACHE = None
|
|
1751
|
+
config_module._CONFIG_MTIME = None
|
|
1752
|
+
config_module._CONFIG_SIZE = None
|
|
1753
|
+
|
|
1754
|
+
doctor_name = None
|
|
1755
|
+
try:
|
|
1756
|
+
project = await project_service.add_doctor_project()
|
|
1757
|
+
doctor_name = project.name
|
|
1758
|
+
|
|
1759
|
+
assert doctor_name.startswith("doctor-")
|
|
1760
|
+
doctor_path = Path(project.path).resolve()
|
|
1761
|
+
assert doctor_path.is_relative_to(root_path.resolve())
|
|
1762
|
+
assert doctor_path != root_path.resolve()
|
|
1763
|
+
assert doctor_path.exists()
|
|
1764
|
+
|
|
1765
|
+
await project_service.remove_project(doctor_name, delete_notes=True)
|
|
1766
|
+
doctor_name = None
|
|
1767
|
+
assert not doctor_path.exists()
|
|
1768
|
+
finally:
|
|
1769
|
+
if doctor_name and doctor_name in project_service.projects:
|
|
1770
|
+
await project_service.remove_project(doctor_name, delete_notes=True)
|
|
1771
|
+
monkeypatch.delenv("BASIC_MEMORY_PROJECT_ROOT", raising=False)
|
|
1772
|
+
config_module._CONFIG_CACHE = None
|
|
1773
|
+
config_module._CONFIG_MTIME = None
|
|
1774
|
+
config_module._CONFIG_SIZE = None
|
|
1775
|
+
if owner_name in project_service.projects:
|
|
1776
|
+
await project_service.remove_project(owner_name)
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
@pytest.mark.asyncio
|
|
1780
|
+
async def test_add_doctor_project_requires_project_root(project_service: ProjectService):
|
|
1781
|
+
"""Without a configured root there is no nesting problem for doctor to solve."""
|
|
1782
|
+
with pytest.raises(ValueError, match="BASIC_MEMORY_PROJECT_ROOT"):
|
|
1783
|
+
await project_service.add_doctor_project()
|