basic-memory 0.21.5__tar.gz → 0.22.0__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.22.0/.agents/plugins/marketplace.json +20 -0
- basic_memory-0.22.0/.agents/skills/adversarial-review/SKILL.md +159 -0
- basic_memory-0.22.0/.agents/skills/adversarial-review/prompts/refute.md +22 -0
- basic_memory-0.22.0/.agents/skills/adversarial-review/prompts/review.md +39 -0
- basic_memory-0.22.0/.agents/skills/adversarial-review/schemas/findings.schema.json +52 -0
- basic_memory-0.22.0/.agents/skills/adversarial-review/schemas/verdicts.schema.json +38 -0
- basic_memory-0.22.0/.agents/skills/code-review/SKILL.md +68 -0
- basic_memory-0.22.0/.agents/skills/fix-pr-issues/SKILL.md +48 -0
- basic_memory-0.22.0/.agents/skills/fix-pr-issues/agents/openai.yaml +7 -0
- basic_memory-0.22.0/.agents/skills/fix-pr-issues/assets/icon.svg +5 -0
- basic_memory-0.22.0/.agents/skills/infographics/SKILL.md +247 -0
- basic_memory-0.22.0/.agents/skills/infographics/agents/openai.yaml +7 -0
- basic_memory-0.22.0/.agents/skills/infographics/assets/icon.svg +5 -0
- basic_memory-0.22.0/.agents/skills/infographics/references/prompt-blueprint.md +72 -0
- basic_memory-0.22.0/.agents/skills/infographics/references/style-balance.md +42 -0
- basic_memory-0.22.0/.agents/skills/pr-create/SKILL.md +114 -0
- basic_memory-0.22.0/.agents/skills/pr-create/agents/openai.yaml +7 -0
- basic_memory-0.22.0/.agents/skills/pr-create/assets/icon.svg +5 -0
- basic_memory-0.22.0/.claude/commands/release/beta.md +96 -0
- basic_memory-0.22.0/.claude/commands/release/release.md +207 -0
- basic_memory-0.22.0/.claude/skills/basic-machines-review +1 -0
- basic_memory-0.22.0/.claude-plugin/marketplace.json +29 -0
- basic_memory-0.22.0/.github/basic-memory/SOUL.md +25 -0
- basic_memory-0.22.0/.github/basic-memory/config.yml +7 -0
- basic_memory-0.22.0/.github/basic-memory/memory-ci-capture.md +64 -0
- basic_memory-0.22.0/.github/workflows/basic-memory.yml +75 -0
- basic_memory-0.22.0/.github/workflows/claude-code-review.yml +85 -0
- basic_memory-0.22.0/.github/workflows/consolidated-packages.yml +110 -0
- basic_memory-0.22.0/.github/workflows/docker.yml +59 -0
- basic_memory-0.22.0/.github/workflows/pr-title.yml +48 -0
- basic_memory-0.22.0/.github/workflows/release.yml +165 -0
- basic_memory-0.22.0/.github/workflows/test.yml +407 -0
- basic_memory-0.22.0/.gitignore +67 -0
- basic_memory-0.22.0/AGENTS.md +540 -0
- basic_memory-0.22.0/CHANGELOG.md +2960 -0
- basic_memory-0.22.0/PKG-INFO +692 -0
- basic_memory-0.22.0/README.md +637 -0
- basic_memory-0.22.0/docs/ENGINEERING_STYLE.md +64 -0
- basic_memory-0.22.0/docs/cloud-cli.md +1046 -0
- basic_memory-0.22.0/docs/litellm-provider.md +300 -0
- basic_memory-0.22.0/docs/semantic-search.md +382 -0
- basic_memory-0.22.0/glama.json +7 -0
- basic_memory-0.22.0/integrations/hermes/.coveragerc +9 -0
- basic_memory-0.22.0/integrations/hermes/.github/workflows/integration.yml +48 -0
- basic_memory-0.22.0/integrations/hermes/.github/workflows/pr-title.yml +36 -0
- basic_memory-0.22.0/integrations/hermes/.github/workflows/release.yml +194 -0
- basic_memory-0.22.0/integrations/hermes/.github/workflows/test.yml +39 -0
- basic_memory-0.22.0/integrations/hermes/.gitignore +6 -0
- basic_memory-0.22.0/integrations/hermes/CHANGELOG.md +133 -0
- basic_memory-0.22.0/integrations/hermes/LICENSE +661 -0
- basic_memory-0.22.0/integrations/hermes/MONKEYPATCH.md +269 -0
- basic_memory-0.22.0/integrations/hermes/README.md +235 -0
- basic_memory-0.22.0/integrations/hermes/__init__.py +1874 -0
- basic_memory-0.22.0/integrations/hermes/justfile +22 -0
- basic_memory-0.22.0/integrations/hermes/plugin.yaml +11 -0
- basic_memory-0.22.0/integrations/hermes/pytest.ini +8 -0
- basic_memory-0.22.0/integrations/hermes/requirements-dev.txt +1 -0
- basic_memory-0.22.0/integrations/hermes/skill/SKILL.md +242 -0
- basic_memory-0.22.0/integrations/hermes/tests/conftest.py +167 -0
- basic_memory-0.22.0/integrations/hermes/tests/stubs/agent/__init__.py +1 -0
- basic_memory-0.22.0/integrations/hermes/tests/stubs/agent/memory_provider.py +5 -0
- basic_memory-0.22.0/integrations/hermes/tests/stubs/tools/__init__.py +1 -0
- basic_memory-0.22.0/integrations/hermes/tests/stubs/tools/registry.py +9 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_actor.py +183 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_capture.py +337 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_commands.py +725 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_helpers.py +531 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_integration.py +423 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_prefetch.py +296 -0
- basic_memory-0.22.0/integrations/hermes/tests/test_provider.py +637 -0
- basic_memory-0.22.0/integrations/openclaw/.githooks/pre-commit +11 -0
- basic_memory-0.22.0/integrations/openclaw/.github/workflows/ci.yml +37 -0
- basic_memory-0.22.0/integrations/openclaw/.github/workflows/release.yml +99 -0
- basic_memory-0.22.0/integrations/openclaw/.gitignore +146 -0
- basic_memory-0.22.0/integrations/openclaw/AGENTS.md +1 -0
- basic_memory-0.22.0/integrations/openclaw/BASIC_MEMORY.md +208 -0
- basic_memory-0.22.0/integrations/openclaw/CLAUDE.md +632 -0
- basic_memory-0.22.0/integrations/openclaw/CONTEXT_ENGINE_PLAN.md +275 -0
- basic_memory-0.22.0/integrations/openclaw/DEVELOPMENT.md +130 -0
- basic_memory-0.22.0/integrations/openclaw/LICENSE +21 -0
- basic_memory-0.22.0/integrations/openclaw/MEMORY_TASK_FLOW.md +156 -0
- basic_memory-0.22.0/integrations/openclaw/README.md +279 -0
- basic_memory-0.22.0/integrations/openclaw/SECURITY.md +61 -0
- basic_memory-0.22.0/integrations/openclaw/biome.json +97 -0
- basic_memory-0.22.0/integrations/openclaw/bm-client.test.ts +696 -0
- basic_memory-0.22.0/integrations/openclaw/bm-client.ts +915 -0
- basic_memory-0.22.0/integrations/openclaw/bun.lock +807 -0
- basic_memory-0.22.0/integrations/openclaw/commands/cli.ts +175 -0
- basic_memory-0.22.0/integrations/openclaw/commands/skills.test.ts +125 -0
- basic_memory-0.22.0/integrations/openclaw/commands/skills.ts +64 -0
- basic_memory-0.22.0/integrations/openclaw/commands/slash.ts +107 -0
- basic_memory-0.22.0/integrations/openclaw/config.test.ts +187 -0
- basic_memory-0.22.0/integrations/openclaw/config.ts +136 -0
- basic_memory-0.22.0/integrations/openclaw/context-engine/basic-memory-context-engine.test.ts +400 -0
- basic_memory-0.22.0/integrations/openclaw/context-engine/basic-memory-context-engine.ts +262 -0
- basic_memory-0.22.0/integrations/openclaw/hooks/capture.test.ts +244 -0
- basic_memory-0.22.0/integrations/openclaw/hooks/capture.ts +107 -0
- basic_memory-0.22.0/integrations/openclaw/hooks/recall.test.ts +215 -0
- basic_memory-0.22.0/integrations/openclaw/hooks/recall.ts +81 -0
- basic_memory-0.22.0/integrations/openclaw/index.test.ts +90 -0
- basic_memory-0.22.0/integrations/openclaw/index.ts +172 -0
- basic_memory-0.22.0/integrations/openclaw/integration/bm-client.integration.test.ts +225 -0
- basic_memory-0.22.0/integrations/openclaw/justfile +68 -0
- basic_memory-0.22.0/integrations/openclaw/logger.test.ts +243 -0
- basic_memory-0.22.0/integrations/openclaw/logger.ts +47 -0
- basic_memory-0.22.0/integrations/openclaw/openclaw.plugin.json +110 -0
- basic_memory-0.22.0/integrations/openclaw/package.json +96 -0
- basic_memory-0.22.0/integrations/openclaw/schema/conversation-schema.ts +33 -0
- basic_memory-0.22.0/integrations/openclaw/schema/task-schema.ts +34 -0
- basic_memory-0.22.0/integrations/openclaw/scripts/bm-local.sh +17 -0
- basic_memory-0.22.0/integrations/openclaw/scripts/fetch-skills.ts +108 -0
- basic_memory-0.22.0/integrations/openclaw/scripts/setup-bm.sh +48 -0
- basic_memory-0.22.0/integrations/openclaw/tools/build-context.test.ts +556 -0
- basic_memory-0.22.0/integrations/openclaw/tools/build-context.ts +128 -0
- basic_memory-0.22.0/integrations/openclaw/tools/delete-note.test.ts +72 -0
- basic_memory-0.22.0/integrations/openclaw/tools/delete-note.ts +71 -0
- basic_memory-0.22.0/integrations/openclaw/tools/edit-note.test.ts +205 -0
- basic_memory-0.22.0/integrations/openclaw/tools/edit-note.ts +123 -0
- basic_memory-0.22.0/integrations/openclaw/tools/list-memory-projects.test.ts +161 -0
- basic_memory-0.22.0/integrations/openclaw/tools/list-memory-projects.ts +101 -0
- basic_memory-0.22.0/integrations/openclaw/tools/list-workspaces.test.ts +146 -0
- basic_memory-0.22.0/integrations/openclaw/tools/list-workspaces.ts +80 -0
- basic_memory-0.22.0/integrations/openclaw/tools/memory-provider.test.ts +149 -0
- basic_memory-0.22.0/integrations/openclaw/tools/memory-provider.ts +335 -0
- basic_memory-0.22.0/integrations/openclaw/tools/move-note.test.ts +78 -0
- basic_memory-0.22.0/integrations/openclaw/tools/move-note.ts +79 -0
- basic_memory-0.22.0/integrations/openclaw/tools/read-note.test.ts +181 -0
- basic_memory-0.22.0/integrations/openclaw/tools/read-note.ts +84 -0
- basic_memory-0.22.0/integrations/openclaw/tools/schema-diff.test.ts +126 -0
- basic_memory-0.22.0/integrations/openclaw/tools/schema-diff.ts +109 -0
- basic_memory-0.22.0/integrations/openclaw/tools/schema-infer.test.ts +132 -0
- basic_memory-0.22.0/integrations/openclaw/tools/schema-infer.ts +108 -0
- basic_memory-0.22.0/integrations/openclaw/tools/schema-validate.test.ts +142 -0
- basic_memory-0.22.0/integrations/openclaw/tools/schema-validate.ts +106 -0
- basic_memory-0.22.0/integrations/openclaw/tools/search-notes.test.ts +455 -0
- basic_memory-0.22.0/integrations/openclaw/tools/search-notes.ts +144 -0
- basic_memory-0.22.0/integrations/openclaw/tools/write-note.test.ts +567 -0
- basic_memory-0.22.0/integrations/openclaw/tools/write-note.ts +113 -0
- basic_memory-0.22.0/integrations/openclaw/tsconfig.build.json +12 -0
- basic_memory-0.22.0/integrations/openclaw/tsconfig.json +24 -0
- basic_memory-0.22.0/justfile +503 -0
- basic_memory-0.22.0/plugins/claude-code/.claude-plugin/marketplace.json +29 -0
- basic_memory-0.22.0/plugins/claude-code/.claude-plugin/plugin.json +9 -0
- basic_memory-0.22.0/plugins/claude-code/CHANGELOG.md +273 -0
- basic_memory-0.22.0/plugins/claude-code/DESIGN.md +625 -0
- basic_memory-0.22.0/plugins/claude-code/README.md +142 -0
- basic_memory-0.22.0/plugins/claude-code/docs/architecture.md +166 -0
- basic_memory-0.22.0/plugins/claude-code/docs/getting-started.md +138 -0
- basic_memory-0.22.0/plugins/claude-code/docs/why-combine-memory.md +102 -0
- basic_memory-0.22.0/plugins/claude-code/hooks/hooks.json +29 -0
- basic_memory-0.22.0/plugins/claude-code/hooks/pre-compact.sh +232 -0
- basic_memory-0.22.0/plugins/claude-code/hooks/session-start.sh +293 -0
- basic_memory-0.22.0/plugins/claude-code/justfile +21 -0
- basic_memory-0.22.0/plugins/claude-code/output-styles/basic-memory.md +55 -0
- basic_memory-0.22.0/plugins/claude-code/schemas/decision.md +44 -0
- basic_memory-0.22.0/plugins/claude-code/schemas/session.md +48 -0
- basic_memory-0.22.0/plugins/claude-code/schemas/task.md +39 -0
- basic_memory-0.22.0/plugins/claude-code/settings.example.json +17 -0
- basic_memory-0.22.0/plugins/claude-code/skills/bm-remember/SKILL.md +51 -0
- basic_memory-0.22.0/plugins/claude-code/skills/bm-setup/SKILL.md +226 -0
- basic_memory-0.22.0/plugins/claude-code/skills/bm-share/SKILL.md +61 -0
- basic_memory-0.22.0/plugins/claude-code/skills/bm-status/SKILL.md +62 -0
- basic_memory-0.22.0/plugins/codex/.codex-plugin/plugin.json +46 -0
- basic_memory-0.22.0/plugins/codex/.mcp.json +11 -0
- basic_memory-0.22.0/plugins/codex/DEVELOPMENT.md +80 -0
- basic_memory-0.22.0/plugins/codex/README.md +93 -0
- basic_memory-0.22.0/plugins/codex/assets/app-icon.png +0 -0
- basic_memory-0.22.0/plugins/codex/assets/logo.png +0 -0
- basic_memory-0.22.0/plugins/codex/hooks/hooks.json +31 -0
- basic_memory-0.22.0/plugins/codex/hooks/pre-compact.py +232 -0
- basic_memory-0.22.0/plugins/codex/hooks/pre-compact.sh +15 -0
- basic_memory-0.22.0/plugins/codex/hooks/session-start.py +237 -0
- basic_memory-0.22.0/plugins/codex/hooks/session-start.sh +15 -0
- basic_memory-0.22.0/plugins/codex/justfile +19 -0
- basic_memory-0.22.0/plugins/codex/schemas/codex-session.md +47 -0
- basic_memory-0.22.0/plugins/codex/schemas/decision.md +30 -0
- basic_memory-0.22.0/plugins/codex/schemas/task.md +30 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-checkpoint/SKILL.md +62 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-checkpoint/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-checkpoint/assets/icon.svg +6 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-decide/SKILL.md +35 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-decide/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-decide/assets/icon.svg +4 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-orient/SKILL.md +36 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-orient/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-orient/assets/icon.svg +5 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-remember/SKILL.md +31 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-remember/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-remember/assets/icon.svg +5 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-setup/SKILL.md +101 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-setup/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-setup/assets/icon.svg +11 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-share/SKILL.md +38 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-share/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-share/assets/icon.svg +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-status/SKILL.md +50 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-status/agents/openai.yaml +7 -0
- basic_memory-0.22.0/plugins/codex/skills/bm-status/assets/icon.svg +4 -0
- basic_memory-0.22.0/pyproject.toml +177 -0
- basic_memory-0.22.0/scripts/testmon_cache.py +225 -0
- basic_memory-0.22.0/scripts/update_versions.py +190 -0
- basic_memory-0.22.0/scripts/validate_claude_plugin.py +135 -0
- basic_memory-0.22.0/scripts/validate_codex_plugin.py +144 -0
- basic_memory-0.22.0/scripts/validate_hermes_plugin.py +60 -0
- basic_memory-0.22.0/scripts/validate_skills.py +98 -0
- basic_memory-0.22.0/server.json +31 -0
- basic_memory-0.22.0/skills/AGENTS.md +1 -0
- basic_memory-0.22.0/skills/CLAUDE.md +64 -0
- basic_memory-0.22.0/skills/DEVELOPMENT.md +83 -0
- basic_memory-0.22.0/skills/README.md +134 -0
- basic_memory-0.22.0/skills/justfile +14 -0
- basic_memory-0.22.0/skills/memory-capture/SKILL.md +275 -0
- basic_memory-0.22.0/skills/memory-ci-capture/SKILL.md +56 -0
- basic_memory-0.22.0/skills/memory-continue/SKILL.md +148 -0
- basic_memory-0.22.0/skills/memory-curate/SKILL.md +243 -0
- basic_memory-0.22.0/skills/memory-defrag/SKILL.md +86 -0
- basic_memory-0.22.0/skills/memory-ingest/SKILL.md +309 -0
- basic_memory-0.22.0/skills/memory-lifecycle/SKILL.md +182 -0
- basic_memory-0.22.0/skills/memory-literary-analysis/SKILL.md +511 -0
- basic_memory-0.22.0/skills/memory-metadata-search/SKILL.md +184 -0
- basic_memory-0.22.0/skills/memory-notes/SKILL.md +342 -0
- basic_memory-0.22.0/skills/memory-reflect/SKILL.md +73 -0
- basic_memory-0.22.0/skills/memory-research/SKILL.md +235 -0
- basic_memory-0.22.0/skills/memory-schema/SKILL.md +237 -0
- basic_memory-0.22.0/skills/memory-tasks/SKILL.md +166 -0
- basic_memory-0.22.0/skills/skills-lock.json +50 -0
- basic_memory-0.22.0/src/basic_memory/__init__.py +7 -0
- basic_memory-0.22.0/src/basic_memory/alembic/env.py +234 -0
- basic_memory-0.22.0/src/basic_memory/api/v2/routers/knowledge_router.py +908 -0
- basic_memory-0.22.0/src/basic_memory/api/v2/routers/search_router.py +157 -0
- basic_memory-0.22.0/src/basic_memory/api/v2/utils.py +280 -0
- basic_memory-0.22.0/src/basic_memory/ci/README.md +225 -0
- basic_memory-0.22.0/src/basic_memory/ci/__init__.py +1 -0
- basic_memory-0.22.0/src/basic_memory/ci/project_updates.py +984 -0
- basic_memory-0.22.0/src/basic_memory/cli/app.py +121 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/__init__.py +32 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/ci.py +437 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/cloud/bisync_commands.py +150 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/cloud/core_commands.py +395 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/cloud/project_sync.py +740 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/cloud/rclone_commands.py +756 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/cloud/rclone_config.py +150 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/cloud/workspace.py +123 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/mcp.py +128 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/project.py +1518 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/status.py +277 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/tool.py +919 -0
- basic_memory-0.22.0/src/basic_memory/cli/commands/workspace.py +23 -0
- basic_memory-0.22.0/src/basic_memory/cli/main.py +41 -0
- basic_memory-0.22.0/src/basic_memory/config.py +1159 -0
- basic_memory-0.22.0/src/basic_memory/db.py +496 -0
- basic_memory-0.22.0/src/basic_memory/ignore_utils.py +311 -0
- basic_memory-0.22.0/src/basic_memory/indexing/batch_indexer.py +716 -0
- basic_memory-0.22.0/src/basic_memory/mcp/clients/knowledge.py +355 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/build_context.py +302 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/delete_note.py +480 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/edit_note.py +735 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/move_note.py +992 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/project_management.py +727 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/read_note.py +558 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/recent_activity.py +614 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/search.py +1139 -0
- basic_memory-0.22.0/src/basic_memory/mcp/tools/write_note.py +382 -0
- basic_memory-0.22.0/src/basic_memory/models/knowledge.py +322 -0
- basic_memory-0.22.0/src/basic_memory/repository/embedding_provider_factory.py +225 -0
- basic_memory-0.22.0/src/basic_memory/repository/entity_repository.py +586 -0
- basic_memory-0.22.0/src/basic_memory/repository/fastembed_provider.py +325 -0
- basic_memory-0.22.0/src/basic_memory/repository/litellm_provider.py +230 -0
- basic_memory-0.22.0/src/basic_memory/repository/postgres_search_repository.py +1086 -0
- basic_memory-0.22.0/src/basic_memory/repository/project_repository.py +299 -0
- basic_memory-0.22.0/src/basic_memory/repository/search_repository.py +163 -0
- basic_memory-0.22.0/src/basic_memory/repository/search_repository_base.py +2272 -0
- basic_memory-0.22.0/src/basic_memory/repository/sqlite_search_repository.py +1117 -0
- basic_memory-0.22.0/src/basic_memory/schemas/search.py +150 -0
- basic_memory-0.22.0/src/basic_memory/schemas/v2/__init__.py +43 -0
- basic_memory-0.22.0/src/basic_memory/schemas/v2/entity.py +201 -0
- basic_memory-0.22.0/src/basic_memory/services/context_service.py +692 -0
- basic_memory-0.22.0/src/basic_memory/services/project_service.py +1166 -0
- basic_memory-0.22.0/src/basic_memory/services/search_service.py +989 -0
- basic_memory-0.22.0/src/basic_memory/sync/sync_service.py +1778 -0
- basic_memory-0.22.0/src/basic_memory/utils.py +797 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_cli_tool_read_note_security_error.py +50 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_cli_tool_recent_activity_page_size.py +76 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_cli_tool_search_notes_category.py +73 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_cli_tool_write_note_parity.py +193 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_move_note_edge_cases.py +219 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_navigation_pagination_integration.py +241 -0
- basic_memory-0.22.0/test-int/bughunt_fixes/test_parse_tags_comma_split_integration.py +81 -0
- basic_memory-0.22.0/test-int/cli/test_cli_tool_delete_note_integration.py +277 -0
- basic_memory-0.22.0/test-int/cli/test_cli_tool_write_note_type_integration.py +94 -0
- basic_memory-0.22.0/test-int/cli/test_status_wait_integration.py +43 -0
- basic_memory-0.22.0/test-int/conftest.py +503 -0
- basic_memory-0.22.0/test-int/mcp/test_edit_note_integration.py +828 -0
- basic_memory-0.22.0/test-int/mcp/test_move_note_integration.py +994 -0
- basic_memory-0.22.0/test-int/mcp/test_observation_permalink_collision_integration.py +141 -0
- basic_memory-0.22.0/test-int/mcp/test_param_aliases_integration.py +605 -0
- basic_memory-0.22.0/test-int/mcp/test_search_integration.py +551 -0
- basic_memory-0.22.0/test-int/mcp/test_search_note_types_case_insensitive.py +98 -0
- basic_memory-0.22.0/test-int/mcp/test_write_note_integration.py +612 -0
- basic_memory-0.22.0/test-int/mcp/test_write_note_type_integration.py +154 -0
- basic_memory-0.22.0/test-int/semantic/litellm_live_harness.py +401 -0
- basic_memory-0.22.0/test-int/semantic/test_embedding_provider_reuse.py +123 -0
- basic_memory-0.22.0/test-int/semantic/test_litellm_live_harness.py +125 -0
- basic_memory-0.22.0/test-int/semantic/test_litellm_live_models.py +55 -0
- basic_memory-0.22.0/test-int/test_embedding_status_vec0.py +181 -0
- basic_memory-0.22.0/test-int/test_postgres_dispose_cycle.py +69 -0
- basic_memory-0.22.0/tests/api/v2/test_knowledge_router.py +1472 -0
- basic_memory-0.22.0/tests/api/v2/test_memory_hydration.py +285 -0
- basic_memory-0.22.0/tests/cli/cloud/test_project_sync_command.py +748 -0
- basic_memory-0.22.0/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +151 -0
- basic_memory-0.22.0/tests/cli/test_ci_commands.py +524 -0
- basic_memory-0.22.0/tests/cli/test_cli_exit.py +109 -0
- basic_memory-0.22.0/tests/cli/test_cli_telemetry.py +62 -0
- basic_memory-0.22.0/tests/cli/test_cli_tool_json_output.py +936 -0
- basic_memory-0.22.0/tests/cli/test_cloud_authentication.py +303 -0
- basic_memory-0.22.0/tests/cli/test_db_reindex.py +325 -0
- basic_memory-0.22.0/tests/cli/test_json_output.py +551 -0
- basic_memory-0.22.0/tests/cli/test_project_list_and_ls.py +1068 -0
- basic_memory-0.22.0/tests/cli/test_workspace_commands.py +255 -0
- basic_memory-0.22.0/tests/cli/test_workspace_stub.py +31 -0
- basic_memory-0.22.0/tests/conftest.py +792 -0
- basic_memory-0.22.0/tests/db/test_uvloop_policy.py +83 -0
- basic_memory-0.22.0/tests/indexing/test_batch_indexer.py +869 -0
- basic_memory-0.22.0/tests/markdown/__init__.py +0 -0
- basic_memory-0.22.0/tests/mcp/clients/__init__.py +0 -0
- basic_memory-0.22.0/tests/mcp/clients/test_clients.py +435 -0
- basic_memory-0.22.0/tests/mcp/test_tool_contracts.py +159 -0
- basic_memory-0.22.0/tests/mcp/test_tool_edit_note.py +1530 -0
- basic_memory-0.22.0/tests/mcp/test_tool_json_output_modes.py +419 -0
- basic_memory-0.22.0/tests/mcp/test_tool_move_note.py +1302 -0
- basic_memory-0.22.0/tests/mcp/test_tool_project_management.py +1222 -0
- basic_memory-0.22.0/tests/mcp/test_tool_read_note.py +1303 -0
- basic_memory-0.22.0/tests/mcp/test_tool_search.py +2117 -0
- basic_memory-0.22.0/tests/mcp/test_tool_telemetry.py +287 -0
- basic_memory-0.22.0/tests/mcp/test_tool_write_note.py +1386 -0
- basic_memory-0.22.0/tests/mcp/tools/test_search_notes_multi_project.py +366 -0
- basic_memory-0.22.0/tests/repository/test_entity_repository.py +1317 -0
- basic_memory-0.22.0/tests/repository/test_fastembed_provider.py +673 -0
- basic_memory-0.22.0/tests/repository/test_hybrid_fusion.py +306 -0
- basic_memory-0.22.0/tests/repository/test_litellm_provider.py +483 -0
- basic_memory-0.22.0/tests/repository/test_observation_repository.py +529 -0
- basic_memory-0.22.0/tests/repository/test_openai_provider.py +641 -0
- basic_memory-0.22.0/tests/repository/test_postgres_search_repository.py +1003 -0
- basic_memory-0.22.0/tests/repository/test_search_repository.py +1126 -0
- basic_memory-0.22.0/tests/repository/test_semantic_search_base.py +811 -0
- basic_memory-0.22.0/tests/repository/test_sqlite_vector_search_repository.py +587 -0
- basic_memory-0.22.0/tests/repository/test_vector_pagination.py +179 -0
- basic_memory-0.22.0/tests/repository/test_vector_threshold.py +468 -0
- basic_memory-0.22.0/tests/services/test_context_service.py +647 -0
- basic_memory-0.22.0/tests/services/test_project_service_embedding_status.py +366 -0
- basic_memory-0.22.0/tests/services/test_search_service.py +1523 -0
- basic_memory-0.22.0/tests/sync/test_sync_service.py +1894 -0
- basic_memory-0.22.0/tests/test_codex_plugin_package.py +130 -0
- basic_memory-0.22.0/tests/test_coerce.py +115 -0
- basic_memory-0.22.0/tests/test_config.py +1602 -0
- basic_memory-0.22.0/tests/test_pr_title_workflow.py +18 -0
- basic_memory-0.22.0/tests/test_rclone_commands.py +936 -0
- basic_memory-0.22.0/tests/test_update_versions.py +158 -0
- basic_memory-0.22.0/tests/utils/test_parse_tags.py +73 -0
- basic_memory-0.22.0/uv.lock +4351 -0
- basic_memory-0.21.5/.claude/commands/release/beta.md +0 -95
- basic_memory-0.21.5/.claude/commands/release/release.md +0 -199
- basic_memory-0.21.5/.github/workflows/claude-code-review.yml +0 -86
- basic_memory-0.21.5/.github/workflows/docker.yml +0 -61
- basic_memory-0.21.5/.github/workflows/pr-title.yml +0 -44
- basic_memory-0.21.5/.github/workflows/release.yml +0 -125
- basic_memory-0.21.5/.github/workflows/test.yml +0 -294
- basic_memory-0.21.5/.gitignore +0 -60
- basic_memory-0.21.5/AGENTS.md +0 -486
- basic_memory-0.21.5/CHANGELOG.md +0 -2827
- basic_memory-0.21.5/PKG-INFO +0 -608
- basic_memory-0.21.5/README.md +0 -555
- basic_memory-0.21.5/docs/cloud-cli.md +0 -926
- basic_memory-0.21.5/docs/semantic-search.md +0 -271
- basic_memory-0.21.5/justfile +0 -416
- basic_memory-0.21.5/pyproject.toml +0 -165
- basic_memory-0.21.5/server.json +0 -25
- basic_memory-0.21.5/src/basic_memory/__init__.py +0 -7
- basic_memory-0.21.5/src/basic_memory/alembic/env.py +0 -217
- basic_memory-0.21.5/src/basic_memory/api/v2/routers/knowledge_router.py +0 -705
- basic_memory-0.21.5/src/basic_memory/api/v2/routers/search_router.py +0 -155
- basic_memory-0.21.5/src/basic_memory/api/v2/utils.py +0 -278
- basic_memory-0.21.5/src/basic_memory/cli/app.py +0 -112
- basic_memory-0.21.5/src/basic_memory/cli/commands/__init__.py +0 -29
- basic_memory-0.21.5/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -120
- basic_memory-0.21.5/src/basic_memory/cli/commands/cloud/core_commands.py +0 -293
- basic_memory-0.21.5/src/basic_memory/cli/commands/cloud/project_sync.py +0 -343
- basic_memory-0.21.5/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -421
- basic_memory-0.21.5/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -110
- basic_memory-0.21.5/src/basic_memory/cli/commands/cloud/workspace.py +0 -118
- basic_memory-0.21.5/src/basic_memory/cli/commands/mcp.py +0 -116
- basic_memory-0.21.5/src/basic_memory/cli/commands/project.py +0 -1506
- basic_memory-0.21.5/src/basic_memory/cli/commands/status.py +0 -212
- basic_memory-0.21.5/src/basic_memory/cli/commands/tool.py +0 -780
- basic_memory-0.21.5/src/basic_memory/cli/main.py +0 -39
- basic_memory-0.21.5/src/basic_memory/config.py +0 -1133
- basic_memory-0.21.5/src/basic_memory/db.py +0 -439
- basic_memory-0.21.5/src/basic_memory/ignore_utils.py +0 -302
- basic_memory-0.21.5/src/basic_memory/indexing/batch_indexer.py +0 -710
- basic_memory-0.21.5/src/basic_memory/mcp/clients/knowledge.py +0 -326
- basic_memory-0.21.5/src/basic_memory/mcp/tools/build_context.py +0 -290
- basic_memory-0.21.5/src/basic_memory/mcp/tools/delete_note.py +0 -472
- basic_memory-0.21.5/src/basic_memory/mcp/tools/edit_note.py +0 -639
- basic_memory-0.21.5/src/basic_memory/mcp/tools/move_note.py +0 -884
- basic_memory-0.21.5/src/basic_memory/mcp/tools/project_management.py +0 -711
- basic_memory-0.21.5/src/basic_memory/mcp/tools/read_note.py +0 -477
- basic_memory-0.21.5/src/basic_memory/mcp/tools/recent_activity.py +0 -608
- basic_memory-0.21.5/src/basic_memory/mcp/tools/search.py +0 -1021
- basic_memory-0.21.5/src/basic_memory/mcp/tools/write_note.py +0 -365
- basic_memory-0.21.5/src/basic_memory/models/knowledge.py +0 -311
- basic_memory-0.21.5/src/basic_memory/repository/embedding_provider_factory.py +0 -161
- basic_memory-0.21.5/src/basic_memory/repository/entity_repository.py +0 -576
- basic_memory-0.21.5/src/basic_memory/repository/fastembed_provider.py +0 -138
- basic_memory-0.21.5/src/basic_memory/repository/postgres_search_repository.py +0 -1057
- basic_memory-0.21.5/src/basic_memory/repository/project_repository.py +0 -278
- basic_memory-0.21.5/src/basic_memory/repository/search_repository.py +0 -142
- basic_memory-0.21.5/src/basic_memory/repository/search_repository_base.py +0 -2252
- basic_memory-0.21.5/src/basic_memory/repository/sqlite_search_repository.py +0 -1089
- basic_memory-0.21.5/src/basic_memory/schemas/search.py +0 -146
- basic_memory-0.21.5/src/basic_memory/schemas/v2/__init__.py +0 -41
- basic_memory-0.21.5/src/basic_memory/schemas/v2/entity.py +0 -185
- basic_memory-0.21.5/src/basic_memory/services/context_service.py +0 -653
- basic_memory-0.21.5/src/basic_memory/services/project_service.py +0 -1153
- basic_memory-0.21.5/src/basic_memory/services/search_service.py +0 -983
- basic_memory-0.21.5/src/basic_memory/sync/sync_service.py +0 -1767
- basic_memory-0.21.5/src/basic_memory/utils.py +0 -753
- basic_memory-0.21.5/test-int/conftest.py +0 -496
- basic_memory-0.21.5/test-int/mcp/test_edit_note_integration.py +0 -790
- basic_memory-0.21.5/test-int/mcp/test_move_note_integration.py +0 -771
- basic_memory-0.21.5/test-int/mcp/test_param_aliases_integration.py +0 -565
- basic_memory-0.21.5/test-int/mcp/test_search_integration.py +0 -499
- basic_memory-0.21.5/test-int/mcp/test_write_note_integration.py +0 -524
- basic_memory-0.21.5/tests/api/v2/test_knowledge_router.py +0 -909
- basic_memory-0.21.5/tests/api/v2/test_memory_hydration.py +0 -279
- basic_memory-0.21.5/tests/cli/cloud/test_project_sync_command.py +0 -92
- basic_memory-0.21.5/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -113
- basic_memory-0.21.5/tests/cli/test_cli_exit.py +0 -105
- basic_memory-0.21.5/tests/cli/test_cli_telemetry.py +0 -53
- basic_memory-0.21.5/tests/cli/test_cli_tool_json_output.py +0 -737
- basic_memory-0.21.5/tests/cli/test_cloud_authentication.py +0 -266
- basic_memory-0.21.5/tests/cli/test_db_reindex.py +0 -322
- basic_memory-0.21.5/tests/cli/test_json_output.py +0 -420
- basic_memory-0.21.5/tests/cli/test_project_list_and_ls.py +0 -1054
- basic_memory-0.21.5/tests/cli/test_workspace_commands.py +0 -251
- basic_memory-0.21.5/tests/conftest.py +0 -785
- basic_memory-0.21.5/tests/indexing/test_batch_indexer.py +0 -797
- basic_memory-0.21.5/tests/mcp/clients/test_clients.py +0 -405
- basic_memory-0.21.5/tests/mcp/test_tool_contracts.py +0 -156
- basic_memory-0.21.5/tests/mcp/test_tool_edit_note.py +0 -1265
- basic_memory-0.21.5/tests/mcp/test_tool_json_output_modes.py +0 -384
- basic_memory-0.21.5/tests/mcp/test_tool_move_note.py +0 -1154
- basic_memory-0.21.5/tests/mcp/test_tool_project_management.py +0 -1199
- basic_memory-0.21.5/tests/mcp/test_tool_read_note.py +0 -1003
- basic_memory-0.21.5/tests/mcp/test_tool_search.py +0 -1753
- basic_memory-0.21.5/tests/mcp/test_tool_telemetry.py +0 -284
- basic_memory-0.21.5/tests/mcp/test_tool_write_note.py +0 -1313
- basic_memory-0.21.5/tests/mcp/tools/test_search_notes_multi_project.py +0 -368
- basic_memory-0.21.5/tests/repository/test_entity_repository.py +0 -1282
- basic_memory-0.21.5/tests/repository/test_fastembed_provider.py +0 -150
- basic_memory-0.21.5/tests/repository/test_hybrid_fusion.py +0 -304
- basic_memory-0.21.5/tests/repository/test_observation_repository.py +0 -468
- basic_memory-0.21.5/tests/repository/test_openai_provider.py +0 -580
- basic_memory-0.21.5/tests/repository/test_postgres_search_repository.py +0 -818
- basic_memory-0.21.5/tests/repository/test_search_repository.py +0 -1046
- basic_memory-0.21.5/tests/repository/test_semantic_search_base.py +0 -810
- basic_memory-0.21.5/tests/repository/test_sqlite_vector_search_repository.py +0 -562
- basic_memory-0.21.5/tests/repository/test_vector_pagination.py +0 -177
- basic_memory-0.21.5/tests/repository/test_vector_threshold.py +0 -466
- basic_memory-0.21.5/tests/services/test_context_service.py +0 -385
- basic_memory-0.21.5/tests/services/test_project_service_embedding_status.py +0 -335
- basic_memory-0.21.5/tests/services/test_search_service.py +0 -1387
- basic_memory-0.21.5/tests/sync/test_sync_service.py +0 -1814
- basic_memory-0.21.5/tests/test_coerce.py +0 -57
- basic_memory-0.21.5/tests/test_config.py +0 -1592
- basic_memory-0.21.5/tests/test_rclone_commands.py +0 -564
- basic_memory-0.21.5/tests/utils/test_parse_tags.py +0 -68
- basic_memory-0.21.5/ui/tool-ui-react/.gitignore +0 -2
- basic_memory-0.21.5/ui/tool-ui-react/build.mjs +0 -85
- basic_memory-0.21.5/ui/tool-ui-react/package-lock.json +0 -2507
- basic_memory-0.21.5/ui/tool-ui-react/package.json +0 -25
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/_adapter.tsx +0 -44
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/data-table.tsx +0 -869
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/error-boundary.tsx +0 -19
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/formatters.tsx +0 -453
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/index.tsx +0 -31
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/schema.ts +0 -234
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/types.ts +0 -285
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/data-table/utilities.ts +0 -186
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/_adapter.tsx +0 -12
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/action-buttons.tsx +0 -100
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/actions-config.ts +0 -48
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/error-boundary.tsx +0 -51
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/index.ts +0 -8
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/media/aspect-ratio.ts +0 -27
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/media/format-utils.ts +0 -35
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/media/index.ts +0 -15
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/media/overlay-gradient.ts +0 -25
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/media/sanitize-href.ts +0 -18
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/parse.ts +0 -37
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/schema.ts +0 -122
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/use-action-buttons.tsx +0 -128
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/use-copy-to-clipboard.ts +0 -63
- basic_memory-0.21.5/ui/tool-ui-react/src/components/tool-ui/shared/utils.ts +0 -29
- basic_memory-0.21.5/ui/tool-ui-react/src/components/ui/accordion.tsx +0 -76
- basic_memory-0.21.5/ui/tool-ui-react/src/components/ui/badge.tsx +0 -48
- basic_memory-0.21.5/ui/tool-ui-react/src/components/ui/button.tsx +0 -63
- basic_memory-0.21.5/ui/tool-ui-react/src/components/ui/dropdown-menu.tsx +0 -257
- basic_memory-0.21.5/ui/tool-ui-react/src/components/ui/table.tsx +0 -90
- basic_memory-0.21.5/ui/tool-ui-react/src/components/ui/tooltip.tsx +0 -61
- basic_memory-0.21.5/ui/tool-ui-react/src/note-preview.tsx +0 -122
- basic_memory-0.21.5/ui/tool-ui-react/src/search-results.tsx +0 -175
- basic_memory-0.21.5/ui/tool-ui-react/src/styles.css +0 -74
- basic_memory-0.21.5/ui/tool-ui-react/tailwind.config.js +0 -8
- basic_memory-0.21.5/uv.lock +0 -3715
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.agents/skills/instrumentation/SKILL.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.agents/skills/instrumentation/references/javascript/frameworks.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.agents/skills/instrumentation/references/javascript/patterns.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.agents/skills/instrumentation/references/python/integrations.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.agents/skills/instrumentation/references/python/logging-patterns.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.agents/skills/instrumentation/references/rust/patterns.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.claude/commands/spec.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.claude/settings.json +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.dockerignore +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.env.example +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/dependabot.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/.python-version +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/CITATION.cff +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/CLA.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/CLAUDE.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/CONTRIBUTING.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/Dockerfile +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/LICENSE +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/NOTE-FORMAT.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/SECURITY.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docker-compose-postgres.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docker-compose.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/ARCHITECTURE.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/Docker.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/NOTE-FORMAT.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/SPEC-PER-PROJECT-ROUTING.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/ai-assistant-guide-extended.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/character-handling.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/cloud-semantic-search-value.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/logfire-instrumentation-strategy.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/mcp-ui-bakeoff-instructions.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/metadata-search.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/post-v0.18.0-test-plan.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/releases/v0.19.0.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/semantic-search-test-log.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/specs/SPEC-LOCAL-PLUS-PUBLISH.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/specs/SPEC-SCHEMA-IMPL.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/specs/SPEC-SCHEMA.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/docs/testing-coverage.md +0 -0
- {basic_memory-0.21.5/test-int/semantic → basic_memory-0.22.0/integrations/hermes/tests}/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/llms-install.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/skills-lock.json +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/smithery.yaml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/d7e8f9a0b1c2_add_structured_metadata_indexes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/h1b2c3d4e5f6_add_postgres_vector_search_tables.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/i2c3d4e5f6g7_auto_backfill_semantic_embeddings.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/j3d4e5f6g7h8_rename_entity_type_to_note_type.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/k4e5f6g7h8i9_add_created_by_and_last_updated_by_to_entity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/l5g6h7i8j9k0_add_note_content_table.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/m6h7i8j9k0l1_add_vector_sync_fingerprints.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/alembic/versions/n7i8j9k0l1m2_cleanup_sqlite_search_orphans.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/project_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/api/v2/routers/schema_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/analytics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/auth.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/auto_update.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/restore.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/schemas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/snapshot.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/command_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/doctor.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/format.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/orphans.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/routing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/commands/update.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/cli/promo.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/config.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/db.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/importers.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/projects.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/repositories.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps/services.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/indexing/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/indexing/batching.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/indexing/models.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/memory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/project.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/resource.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/clients/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/formatting.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/project_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/resources/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/resources/cloud_info.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/resources/release_notes.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/resources/ui.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/cloud_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/release_notes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/ui_sdk.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/tools/workspaces.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/html/note-preview-mcp-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/html/note-preview-tool-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/html/note-preview-vanilla.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/html/search-results-mcp-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/html/search-results-tool-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/html/search-results-vanilla.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/sdk.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/mcp/ui/templates.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/project_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/embedding_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/metadata_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/note_content_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/openai_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/search_index_row.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/repository/semantic_errors.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/runtime.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schema/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schema/diff.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schema/inference.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schema/parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schema/resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schema/validator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/cloud.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/sync_report.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/v2/graph.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/schemas/v2/resource.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/sync/coordinator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/src/basic_memory/workspace_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.21.5/tests/markdown → basic_memory-0.22.0/test-int/bughunt_fixes}/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_cli_tool_edit_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_cli_tool_json_failure_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_cli_tool_json_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_project_commands_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_routing_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_search_notes_meta_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/compare_search_benchmarks.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-01.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-02.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-03.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-04.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-05.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-06.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-07.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-08.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-09.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-10.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-11.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-12.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-13.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-14.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-15.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-16.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-17.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-18.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-19.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/people/drift-person-20.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/drift/schema/Person.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/array-single.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/empty-note.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/explicit-overrides-type.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/inline-and-type.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/no-frontmatter.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/relation-only.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/type-no-schema.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/edge-cases/unicode-fields.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/ada-lovelace.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/alan-turing.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/anders-hejlsberg.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/andrej-karpathy.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/barbara-liskov.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/bjarne-stroustrup.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/brendan-eich.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/claude-shannon.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/dennis-ritchie.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/dijkstra.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/donald-knuth.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/fei-fei-li.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/geoffrey-hinton.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/grace-hopper.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/guido-van-rossum.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/james-gosling.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/john-carmack.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/ken-thompson.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/larry-page.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/leslie-lamport.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/linus-torvalds.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/margaret-hamilton.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/rasmus-lerdorf.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/richard-stallman.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/rob-pike.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/satoshi-nakamoto.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/tim-berners-lee.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/vint-cerf.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/yann-lecun.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/inference/people/yukihiro-matsumoto.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/schemas/Book.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/schemas/Meeting.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/schemas/Person.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/schemas/SoftwareProject.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/schemas/StrictSchema.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/valid/basic-memory.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/valid/explicit-ref-note.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/valid/no-schema-note.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/valid/paul-graham.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/valid/rich-hickey.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/valid/standup-2024-01-15.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/warnings/extra-observations.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/warnings/missing-multiple.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/warnings/missing-required.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/fixtures/schema/warnings/wrong-enum-value.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_delete_directory_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_long_relation_type_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_move_directory_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_output_format_json_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_pagination_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_permalink_collision_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_smoke_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_string_params_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_ui_sdk_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/mcp/test_workspace_permalink_integration.py +0 -0
- {basic_memory-0.21.5/tests/mcp/clients → basic_memory-0.22.0/test-int/semantic}/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/corpus.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/metrics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/report.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/test_multiterm_semantic_queries.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/test_search_diagnostics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/test_semantic_coverage.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/semantic/test_semantic_quality.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_disable_permalinks_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/helpers.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/test_diff_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/test_inference_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/test_parser_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_schema/test_validator_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_search_performance_benchmark.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/test-int/test_sync_batching_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/README.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/Screenshot.png +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_directory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_importer_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_knowledge_router_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_memory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_orphan_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_project_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_prompt_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_resource_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_schema_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_search_hydration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_search_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_search_router_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_utils_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/api/v2/test_workspace_permalink_headers.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/cloud/test_rclone_installer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/cloud/test_upload_command_routing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/cloud/test_upload_path.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_analytics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_auth_cli_auth.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_auto_update.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_cli_container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_cli_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_cli_tool_exit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_cloud_promo.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_cloud_status.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_db_reset_exit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_db_reset_zombie_check.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_orphans_command.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_project_add_with_local_path.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_project_info_cloud_status.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_project_info_errors.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_project_set_cloud_local.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_restore_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_routing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_snapshot_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_update_command.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/cli/test_upload.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/deps/test_task_failure_callback.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/importers/test_conversation_indexing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/indexing/test_batching.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_entity_parser_error_handling.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_markdown_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_async_client_force_local.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_async_client_modes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_async_client_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_client_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_client_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_mcp_container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_project_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_project_context_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_prompt_tool_delegation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_server_lifespan_branches.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_server_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_cloud_discovery.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_utils_cloud_auth.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_workspace_management.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_tool_write_note_metadata.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_ui_resources.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_ui_sdk.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_ui_templates.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/test_workspace_permalink_resolution.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_distance_to_similarity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_entity_upsert_issue_187.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_metadata_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_metadata_filters_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_note_content_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_postgres_search_repository_unit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_search_index_row.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/repository/test_search_text_with_metadata_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schema/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schema/test_diff.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schema/test_inference.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schema/test_parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schema/test_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schema/test_validator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_memory_serialization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_entity_service_prepare.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_entity_service_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_entity_service_write_result.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_project_service_cloud_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_search_service_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_semantic_search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_task_scheduler_semantic.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/services/test_upsert_entity_optimization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_character_conflicts.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_coordinator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_sync_one_markdown_file.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_sync_service_batching.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_sync_service_incremental.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_sync_service_subprocess.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_sync_service_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_watch_service_atomic_adds.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_watch_service_reload.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/sync/test_watch_service_stress.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_alembic_env.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_deps.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_note_content_migration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_permalink_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_project_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_runtime.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/test_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_setup_logging.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_timezone_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_validate_project_path.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.22.0}/tests/utils/test_workspace_context.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "basic-memory-local",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "Basic Memory Local"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "codex",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./plugins/codex"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Developer Tools"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adversarial-review
|
|
3
|
+
description: Cross-vendor adversarial code review of the current branch. Two different model families (Claude + Codex/GPT) review the diff independently, then try to refute each other's findings; survivors are reported by confidence. Runs from either Claude Code or Codex. Use when the user asks for an adversarial review, a cross-model / second-opinion review, or wants high-confidence findings before merging. Report-only — never auto-applies fixes.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Adversarial code review
|
|
8
|
+
|
|
9
|
+
Two reviewers from **different model families** — **Claude** and **Codex/GPT** — review the
|
|
10
|
+
same diff independently, then each tries to **refute** the other's findings. A finding's
|
|
11
|
+
confidence comes from whether it survives that cross-examination. This kills the two failure
|
|
12
|
+
modes of solo LLM review: self-ratification (a model won't critique its own work) and
|
|
13
|
+
confident false positives.
|
|
14
|
+
|
|
15
|
+
## You are the orchestrator — and one of the two reviewers
|
|
16
|
+
|
|
17
|
+
This skill runs from **either** Claude Code **or** Codex. First, **identify which model
|
|
18
|
+
family you are** (Claude or Codex/GPT). Then:
|
|
19
|
+
|
|
20
|
+
- **You** are reviewer #1. You review **natively**, in this session, using your own tools.
|
|
21
|
+
- **The other family** is reviewer #2. You invoke it as a **subprocess CLI** for an
|
|
22
|
+
independent pass: a fresh process, no shared context — that independence is the point.
|
|
23
|
+
|
|
24
|
+
The CLI for "the other model":
|
|
25
|
+
|
|
26
|
+
| If you are… | Invoke the other via… |
|
|
27
|
+
|-------------|------------------------|
|
|
28
|
+
| **Claude** | `codex exec` (GPT) |
|
|
29
|
+
| **Codex** | `claude -p` (Claude) |
|
|
30
|
+
|
|
31
|
+
Everything else in the flow is symmetric. Resolve the `prompts/` and `schemas/` paths
|
|
32
|
+
below relative to **this skill's own directory** (where this SKILL.md lives).
|
|
33
|
+
|
|
34
|
+
## Inputs
|
|
35
|
+
|
|
36
|
+
Two independent, optional inputs:
|
|
37
|
+
|
|
38
|
+
- `BASE` — the ref to diff against. Default `main`.
|
|
39
|
+
- `SCOPE` — a pathspec to narrow the review (e.g. `src/basic_memory`). Default: none (whole diff).
|
|
40
|
+
|
|
41
|
+
These are separate: a ref and a pathspec are not interchangeable. Build the **canonical diff
|
|
42
|
+
command** once in preflight and reuse it everywhere below — never re-spell the diff inline
|
|
43
|
+
(the scattered, inconsistent spelling is what broke earlier). Build it as an **argv array**,
|
|
44
|
+
not a string, so a `$SCOPE` containing spaces or glob characters survives intact:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
BASE="${BASE:-main}"
|
|
48
|
+
DIFF=(git diff "$BASE...HEAD") # argv array — never a scalar string
|
|
49
|
+
[ -n "$SCOPE" ] && DIFF+=(-- "$SCOPE") # pathspec stays one argument even with spaces
|
|
50
|
+
DIFF_STR=$(printf '%q ' "${DIFF[@]}") # shell-quoted rendering, for embedding in a prompt
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
To **run** it, use `"${DIFF[@]}"` (quoted, no word-splitting). To **embed** it as text inside
|
|
54
|
+
a subprocess prompt, use `$DIFF_STR`.
|
|
55
|
+
|
|
56
|
+
## Preflight
|
|
57
|
+
|
|
58
|
+
0. Set `SKILL_DIR` to the directory this SKILL.md lives in. Canonical location is
|
|
59
|
+
`.agents/skills/adversarial-review` (the shared agent-skills store); Claude Code reaches it
|
|
60
|
+
via the `.claude/skills/adversarial-review` symlink, Codex via its own skills path. The
|
|
61
|
+
`prompts/` and `schemas/` subdirs are siblings of this file in every case.
|
|
62
|
+
1. Confirm the *other* model's CLI is on PATH (`codex` if you're Claude, `claude` if you're
|
|
63
|
+
Codex). If it's missing, tell the user the panel falls back to single-model (which loses
|
|
64
|
+
the cross-vendor benefit) and ask whether to proceed or stop.
|
|
65
|
+
2. Run `"${DIFF[@]}"`. If it prints nothing, report "nothing to review against $BASE"
|
|
66
|
+
(mention `$SCOPE` if set) and stop.
|
|
67
|
+
3. `RUN=$(mktemp -d)` — scratch dir for the other model's output. Transient, never committed.
|
|
68
|
+
No persisted artifacts, no state file.
|
|
69
|
+
|
|
70
|
+
## Phase 0 — Deterministic gates (before the models)
|
|
71
|
+
|
|
72
|
+
Models are statistically blind to negation ("never do X"). Enforce mechanical house rules
|
|
73
|
+
with tools, not prompts, and treat hits as high-confidence facts (reported separately from
|
|
74
|
+
model findings):
|
|
75
|
+
|
|
76
|
+
- `just lint` and `just typecheck` if the diff touches `src/`.
|
|
77
|
+
- Grep the diff for catchable house-rule violations: `getattr(.*,.*,` defaults, bare
|
|
78
|
+
`except:` / `except Exception: pass`, function-scope imports.
|
|
79
|
+
|
|
80
|
+
## Phase 1 — Independent review (you + the other model, concurrently)
|
|
81
|
+
|
|
82
|
+
Both reviewers get the same brief: `prompts/review.md` + the repo's `CLAUDE.md` house rules,
|
|
83
|
+
reviewing the diff from `"${DIFF[@]}"`. Both emit findings matching `schemas/findings.schema.json`.
|
|
84
|
+
|
|
85
|
+
**Your native pass:** review as yourself, following `prompts/review.md`. Hold your findings
|
|
86
|
+
as that JSON shape.
|
|
87
|
+
|
|
88
|
+
**The other model's pass** — run, from the repo root, the row that matches you:
|
|
89
|
+
|
|
90
|
+
Always redirect `codex` stdin from `/dev/null` — if stdin is a pipe (e.g. the call gets
|
|
91
|
+
backgrounded), `codex exec` blocks "Reading additional input from stdin..." and fails.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# You are Claude → run Codex:
|
|
95
|
+
codex exec -s read-only \
|
|
96
|
+
--output-schema "$SKILL_DIR/schemas/findings.schema.json" \
|
|
97
|
+
-o "$RUN/other_findings.json" \
|
|
98
|
+
"$(cat "$SKILL_DIR/prompts/review.md")
|
|
99
|
+
|
|
100
|
+
Review the diff: $DIFF_STR" </dev/null
|
|
101
|
+
|
|
102
|
+
# You are Codex → run Claude (read-only via plan mode; parse the JSON block it returns):
|
|
103
|
+
claude -p --permission-mode plan --output-format json \
|
|
104
|
+
"$(cat "$SKILL_DIR/prompts/review.md")
|
|
105
|
+
|
|
106
|
+
Review the diff: $DIFF_STR
|
|
107
|
+
Return ONLY a JSON object matching this schema:
|
|
108
|
+
$(cat "$SKILL_DIR/schemas/findings.schema.json")" </dev/null > "$RUN/other_raw.json"
|
|
109
|
+
# claude --output-format json output shape varies by CLI version: it may be a JSON ARRAY
|
|
110
|
+
# of event objects, OR a single result object. Normalize before reading: if it's an array,
|
|
111
|
+
# take the element with type=='result'; otherwise use the object as-is. Then read its
|
|
112
|
+
# .result string, strip the ```json fence if present, and parse that.
|
|
113
|
+
# (Verified empirically: the CLI in this environment emits the array form.)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
> Runtime note for Codex orchestrating: `claude -p` needs network access, which Codex's
|
|
117
|
+
> default sandbox blocks. Run it from a Codex session whose project is trusted with network
|
|
118
|
+
> allowed (or approve the `claude` call when prompted). Keep Codex's own sandbox on — do not
|
|
119
|
+
> bypass it just to reach the network.
|
|
120
|
+
|
|
121
|
+
Tag each finding with its origin (`claude` / `codex`).
|
|
122
|
+
|
|
123
|
+
## Phase 2 — Cross-refute
|
|
124
|
+
|
|
125
|
+
Each model tries to refute the *other's* findings, per `prompts/refute.md`
|
|
126
|
+
(verdicts match `schemas/verdicts.schema.json`).
|
|
127
|
+
|
|
128
|
+
- **You** refute the other model's findings natively.
|
|
129
|
+
- **The other model** refutes *your* findings — invoke it again the same way (swap
|
|
130
|
+
`prompts/review.md` for `prompts/refute.md`, append your findings JSON **and `$DIFF_STR`**
|
|
131
|
+
so it judges against the right base and scope, and for Codex use
|
|
132
|
+
`--output-schema "$SKILL_DIR/schemas/verdicts.schema.json"`).
|
|
133
|
+
|
|
134
|
+
Match verdicts to findings by `id`.
|
|
135
|
+
|
|
136
|
+
## Phase 3 — Synthesize and report (no auto-fix)
|
|
137
|
+
|
|
138
|
+
Merge, dedupe (same file + overlapping lines + same root cause = one finding), assign
|
|
139
|
+
confidence from provenance:
|
|
140
|
+
|
|
141
|
+
- **High** — both models raised it independently, OR one raised it and the other upheld it.
|
|
142
|
+
- **Medium** — one raised it; the other could not refute it but did not independently find it.
|
|
143
|
+
- **Low / contested** — one raised it and the other **refuted** it. Keep it, show both sides,
|
|
144
|
+
let the human judge. Never silently drop a contested finding.
|
|
145
|
+
- Deterministic-gate hits are reported as facts, separate from the model panel.
|
|
146
|
+
|
|
147
|
+
Rank by `severity × confidence`. Present a compact table: `severity | confidence | file:line
|
|
148
|
+
| claim | found-by / upheld-or-refuted-by`. Expand the high-confidence ones with `why` and
|
|
149
|
+
any suggested fix.
|
|
150
|
+
|
|
151
|
+
End by asking which findings, if any, to fix. **Do not edit code until the user picks.**
|
|
152
|
+
Convergence between the models is not correctness — your job is to surface a ranked,
|
|
153
|
+
cross-examined list, not to declare the branch clean.
|
|
154
|
+
|
|
155
|
+
## Deliberately NOT done
|
|
156
|
+
|
|
157
|
+
- No loop-until-both-agree (models converge by going silent, not by being right).
|
|
158
|
+
- No persisted artifacts / state machine — the scratch dir is thrown away.
|
|
159
|
+
- No auto-applying fixes.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Refute the other reviewer
|
|
2
|
+
|
|
3
|
+
A different reviewer (a different model family) produced the findings below against the
|
|
4
|
+
same diff under review (the exact `git diff` command is provided with the findings). Your
|
|
5
|
+
job is to try to **refute** each one.
|
|
6
|
+
|
|
7
|
+
Default to skepticism: assume a finding is wrong until the code proves it right. A finding
|
|
8
|
+
that survives a genuine attempt to disprove it is worth far more than one nobody checked.
|
|
9
|
+
|
|
10
|
+
For each finding, read the actual code it points at and return a verdict:
|
|
11
|
+
|
|
12
|
+
- **refuted** — the claim is wrong, the code does not do what the finding says, the case
|
|
13
|
+
cannot occur, or it is pure style with no correctness impact. Cite the specific code or
|
|
14
|
+
fact that disproves it.
|
|
15
|
+
- **upheld** — you tried to refute it and could not; the finding is real.
|
|
16
|
+
- **partial** — the underlying issue is real but the finding mis-states the severity or
|
|
17
|
+
scope. Explain, and set `corrected_severity` if the severity should change.
|
|
18
|
+
|
|
19
|
+
Do not be agreeable for its own sake, and do not refute for its own sake. Follow the code.
|
|
20
|
+
|
|
21
|
+
Return ONLY the structured verdicts object conforming to the provided schema. Every
|
|
22
|
+
verdict's `id` must match the `id` of the finding it judges.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Adversarial reviewer
|
|
2
|
+
|
|
3
|
+
You are an independent, skeptical code reviewer. Another agent wrote this code; your
|
|
4
|
+
job is to find what is actually wrong with it — not to praise it, not to rubber-stamp it.
|
|
5
|
+
|
|
6
|
+
You are reviewing a specific diff — the exact `git diff` command to run is provided at the
|
|
7
|
+
end of this prompt by the orchestrator. Run it, then read the changed files in full for
|
|
8
|
+
context, not just the hunks.
|
|
9
|
+
|
|
10
|
+
## What to look for, in priority order
|
|
11
|
+
|
|
12
|
+
1. **Correctness** — logic errors, wrong conditions, off-by-one, unhandled `None`,
|
|
13
|
+
broken async/await, races, resource leaks, incorrect error handling.
|
|
14
|
+
2. **Security** — injection, path traversal, secret leakage, missing authz, unsafe
|
|
15
|
+
deserialization.
|
|
16
|
+
3. **House rules** (this repo's `CLAUDE.md`/`AGENTS.md` — these are hard rules):
|
|
17
|
+
- No swallowed exceptions / no silent fallback logic. Code must fail fast.
|
|
18
|
+
- Imports at the top of the file unless deferral is justified in a comment.
|
|
19
|
+
- No speculative `getattr(obj, "attr", default)` to paper over unknown attributes.
|
|
20
|
+
- Repository pattern for data access; MCP tools talk to API routers via the httpx
|
|
21
|
+
ASGI client, not directly to services.
|
|
22
|
+
- 100-char lines; full type annotations; async SQLAlchemy 2.0; Pydantic v2.
|
|
23
|
+
- New code needs tests (coverage stays at 100%).
|
|
24
|
+
4. **Performance** — N+1 queries, work inside hot loops, sync I/O on the async path.
|
|
25
|
+
5. **Maintainability** — only when it materially risks a bug. Do not report pure style.
|
|
26
|
+
|
|
27
|
+
## Rules of engagement
|
|
28
|
+
|
|
29
|
+
- Every finding MUST be falsifiable: cite the specific file, line, and the code that
|
|
30
|
+
triggers it. "This could be cleaner" is not a finding.
|
|
31
|
+
- Do not invent issues to seem thorough. An empty findings list is a valid, good result.
|
|
32
|
+
- Watch your own negation blindness: when a rule says "never do X," check the diff for X
|
|
33
|
+
explicitly rather than trusting a gestalt impression.
|
|
34
|
+
- Prefer few high-confidence findings over many speculative ones.
|
|
35
|
+
- Assign severity honestly: `critical` = data loss/security/crash in normal use;
|
|
36
|
+
`high` = wrong behavior on a common path; `medium` = wrong on an edge case or a real
|
|
37
|
+
house-rule violation; `low` = minor.
|
|
38
|
+
|
|
39
|
+
Return ONLY the structured findings object conforming to the provided schema.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "AdversarialReviewFindings",
|
|
4
|
+
"description": "Structured output for one reviewer's pass over a diff.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["findings"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"findings": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["id", "file", "line", "severity", "category", "claim", "why", "suggested_fix"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Short stable slug for this finding, e.g. 'swallowed-exc-sync-service'."
|
|
19
|
+
},
|
|
20
|
+
"file": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Path relative to repo root."
|
|
23
|
+
},
|
|
24
|
+
"line": {
|
|
25
|
+
"type": "integer",
|
|
26
|
+
"description": "Best line number in the new file, or 0 if not line-specific."
|
|
27
|
+
},
|
|
28
|
+
"severity": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["critical", "high", "medium", "low"]
|
|
31
|
+
},
|
|
32
|
+
"category": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": ["correctness", "security", "house-rule", "performance", "maintainability"]
|
|
35
|
+
},
|
|
36
|
+
"claim": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "One sentence: what is wrong."
|
|
39
|
+
},
|
|
40
|
+
"why": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "Concrete reasoning + the specific code that triggers it. Must be falsifiable, not vibes."
|
|
43
|
+
},
|
|
44
|
+
"suggested_fix": {
|
|
45
|
+
"type": ["string", "null"],
|
|
46
|
+
"description": "The smallest change that resolves it, or null if none is obvious."
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "AdversarialReviewVerdicts",
|
|
4
|
+
"description": "One reviewer's attempt to refute another reviewer's findings.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["verdicts"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"verdicts": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["id", "verdict", "reasoning", "corrected_severity"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The id of the finding being judged (must match the input finding's id)."
|
|
19
|
+
},
|
|
20
|
+
"verdict": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"enum": ["upheld", "refuted", "partial"],
|
|
23
|
+
"description": "upheld = the finding is real; refuted = it is wrong or a non-issue; partial = real but mis-scoped/wrong-severity."
|
|
24
|
+
},
|
|
25
|
+
"reasoning": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Why. For refuted, cite the specific code or fact that disproves the claim."
|
|
28
|
+
},
|
|
29
|
+
"corrected_severity": {
|
|
30
|
+
"type": ["string", "null"],
|
|
31
|
+
"enum": ["critical", "high", "medium", "low", null],
|
|
32
|
+
"description": "Set only when verdict is 'partial' and severity should change; otherwise null."
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review
|
|
3
|
+
description: Use when reviewing Basic Machines code for house style, architecture risk, pre-merge hardening, or whether a change fits basic-memory/basic-memory-cloud conventions.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Basic Machines Review
|
|
8
|
+
|
|
9
|
+
Use this skill for repo-local review passes where ordinary code review needs Basic Machines
|
|
10
|
+
house style and architecture judgment. Report findings only; do not edit code unless the user
|
|
11
|
+
asks you to fix specific findings.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
Review the current diff or named files against:
|
|
16
|
+
|
|
17
|
+
- The repo's `AGENTS.md` / `CLAUDE.md`
|
|
18
|
+
- `docs/ENGINEERING_STYLE.md`
|
|
19
|
+
- The touched code paths and tests
|
|
20
|
+
|
|
21
|
+
Apply only the guidance for the active repo. In `basic-memory`, prioritize local-first
|
|
22
|
+
file/database/MCP boundaries. In `basic-memory-cloud`, prioritize tenant/workspace isolation,
|
|
23
|
+
cloud worker behavior, and web-v2 state/runtime boundaries.
|
|
24
|
+
|
|
25
|
+
## Review Rubric
|
|
26
|
+
|
|
27
|
+
Report only concrete, falsifiable risks:
|
|
28
|
+
|
|
29
|
+
- **Cognitive load:** Is the change harder to understand than the problem requires?
|
|
30
|
+
- **Change propagation:** Will one product change force edits across unrelated layers?
|
|
31
|
+
- **Knowledge duplication:** Is the same rule encoded in multiple places that can drift?
|
|
32
|
+
- **Accidental complexity:** Did the change add abstractions, fallbacks, or state without need?
|
|
33
|
+
- **Dependency direction:** Are API/MCP/CLI, services, repositories, and UI stores respecting
|
|
34
|
+
their intended boundaries?
|
|
35
|
+
- **Domain model distortion:** Do names and types still match the product concept, or did a
|
|
36
|
+
transport/storage detail leak into the domain?
|
|
37
|
+
- **Test oracle quality:** Would the tests fail for the bug or regression the change claims to
|
|
38
|
+
protect against?
|
|
39
|
+
|
|
40
|
+
## House Rules To Check Explicitly
|
|
41
|
+
|
|
42
|
+
- No speculative `getattr(obj, "attr", default)` for unknown model shapes.
|
|
43
|
+
- No broad exception swallowing, warning-only failure paths, or hidden fallback behavior.
|
|
44
|
+
- No casts or `Any` that hide an unclear type relationship.
|
|
45
|
+
- Dataclasses for internal value/result objects; Pydantic at validation/serialization
|
|
46
|
+
boundaries.
|
|
47
|
+
- Narrow `Protocol`s when only a capability is needed.
|
|
48
|
+
- Explicit async/resource ownership, cancellation, and cleanup.
|
|
49
|
+
- Meaningful regression tests or verification for risky changes.
|
|
50
|
+
- Comments explain why, not what.
|
|
51
|
+
|
|
52
|
+
## Reporting Format
|
|
53
|
+
|
|
54
|
+
Lead with findings ordered by severity. Each finding should include:
|
|
55
|
+
|
|
56
|
+
| Severity | Use for |
|
|
57
|
+
| -------- | ------- |
|
|
58
|
+
| `high` | A likely correctness, security, data-loss, or tenant/workspace isolation failure |
|
|
59
|
+
| `medium` | A concrete maintainability or boundary risk that can cause future defects |
|
|
60
|
+
| `low` | A minor consistency issue, ambiguous guidance, or review-only cleanup |
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
severity | file:line | risk category | claim
|
|
64
|
+
Why: concrete behavior or code path that proves the risk.
|
|
65
|
+
Fix: smallest practical change, or "none obvious" if the risk needs product input.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
If there are no findings, say so and note any verification gaps that remain.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fix-pr-issues
|
|
3
|
+
description: Use when addressing Basic Memory pull request feedback, failed checks, or BM Bossbot blockers from Codex.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Fix Basic Memory PR Issues
|
|
7
|
+
|
|
8
|
+
Resolve PR feedback and failed checks, then wait for BM Bossbot to approve the
|
|
9
|
+
new head SHA. This skill never merges a PR.
|
|
10
|
+
|
|
11
|
+
## Gather
|
|
12
|
+
|
|
13
|
+
1. Identify the PR:
|
|
14
|
+
- `gh pr view --json number,url,headRefOid,mergeStateStatus,statusCheckRollup`
|
|
15
|
+
|
|
16
|
+
2. Collect feedback:
|
|
17
|
+
- PR comments and review summaries
|
|
18
|
+
- inline review comments and unresolved review threads
|
|
19
|
+
- failed GitHub Actions jobs and relevant logs
|
|
20
|
+
- the managed `BM_BOSSBOT_SUMMARY` block in the PR body
|
|
21
|
+
|
|
22
|
+
3. Build a short issue ledger:
|
|
23
|
+
- source
|
|
24
|
+
- concrete problem
|
|
25
|
+
- expected fix
|
|
26
|
+
- verification needed
|
|
27
|
+
|
|
28
|
+
## Fix
|
|
29
|
+
|
|
30
|
+
1. Address one ledger item at a time.
|
|
31
|
+
2. Read each file in full before editing it.
|
|
32
|
+
3. Keep diffs narrow and preserve unrelated user changes.
|
|
33
|
+
4. Run the smallest meaningful verification first, then widen as needed.
|
|
34
|
+
5. Commit with `git commit -s` when code or docs changed.
|
|
35
|
+
|
|
36
|
+
## Push And Recheck
|
|
37
|
+
|
|
38
|
+
1. Push the branch.
|
|
39
|
+
2. Watch checks for the new `headRefOid`.
|
|
40
|
+
3. Wait for the required `BM Bossbot Approval` status to pass on that exact SHA.
|
|
41
|
+
4. If BM Bossbot reviews an older SHA, treat the approval as stale and keep
|
|
42
|
+
waiting for the current one.
|
|
43
|
+
|
|
44
|
+
## Reply
|
|
45
|
+
|
|
46
|
+
For each addressed comment or blocker, reply with the fix commit, verification
|
|
47
|
+
run, and current BM Bossbot status. Do not resolve or dismiss substantive
|
|
48
|
+
feedback without evidence.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Fix PR Issues"
|
|
3
|
+
short_description: "Address PR feedback and BM Bossbot blockers"
|
|
4
|
+
icon_small: "./assets/icon.svg"
|
|
5
|
+
icon_large: "./assets/icon.svg"
|
|
6
|
+
brand_color: "#2563EB"
|
|
7
|
+
default_prompt: "Use $fix-pr-issues to address PR feedback and wait for BM Bossbot Approval on the latest head SHA."
|