basic-memory 0.21.5__tar.gz → 0.21.6__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.21.6/.agents/plugins/marketplace.json +20 -0
- basic_memory-0.21.6/.agents/skills/adversarial-review/SKILL.md +159 -0
- basic_memory-0.21.6/.agents/skills/adversarial-review/prompts/refute.md +22 -0
- basic_memory-0.21.6/.agents/skills/adversarial-review/prompts/review.md +39 -0
- basic_memory-0.21.6/.agents/skills/adversarial-review/schemas/findings.schema.json +52 -0
- basic_memory-0.21.6/.agents/skills/adversarial-review/schemas/verdicts.schema.json +38 -0
- basic_memory-0.21.6/.claude/commands/release/release.md +205 -0
- basic_memory-0.21.6/.claude-plugin/marketplace.json +29 -0
- basic_memory-0.21.6/.github/basic-memory/SOUL.md +25 -0
- basic_memory-0.21.6/.github/basic-memory/config.yml +7 -0
- basic_memory-0.21.6/.github/basic-memory/memory-ci-capture.md +64 -0
- basic_memory-0.21.6/.github/workflows/basic-memory.yml +75 -0
- basic_memory-0.21.6/.github/workflows/consolidated-packages.yml +110 -0
- basic_memory-0.21.6/.github/workflows/pr-title.yml +48 -0
- basic_memory-0.21.6/.github/workflows/release.yml +165 -0
- basic_memory-0.21.6/.gitignore +67 -0
- basic_memory-0.21.6/AGENTS.md +512 -0
- basic_memory-0.21.6/CHANGELOG.md +2895 -0
- basic_memory-0.21.6/PKG-INFO +690 -0
- basic_memory-0.21.6/README.md +637 -0
- basic_memory-0.21.6/integrations/hermes/.coveragerc +9 -0
- basic_memory-0.21.6/integrations/hermes/.github/workflows/integration.yml +48 -0
- basic_memory-0.21.6/integrations/hermes/.github/workflows/pr-title.yml +36 -0
- basic_memory-0.21.6/integrations/hermes/.github/workflows/release.yml +194 -0
- basic_memory-0.21.6/integrations/hermes/.github/workflows/test.yml +39 -0
- basic_memory-0.21.6/integrations/hermes/.gitignore +6 -0
- basic_memory-0.21.6/integrations/hermes/CHANGELOG.md +133 -0
- basic_memory-0.21.6/integrations/hermes/LICENSE +661 -0
- basic_memory-0.21.6/integrations/hermes/MONKEYPATCH.md +269 -0
- basic_memory-0.21.6/integrations/hermes/README.md +235 -0
- basic_memory-0.21.6/integrations/hermes/__init__.py +1874 -0
- basic_memory-0.21.6/integrations/hermes/justfile +22 -0
- basic_memory-0.21.6/integrations/hermes/plugin.yaml +11 -0
- basic_memory-0.21.6/integrations/hermes/pytest.ini +8 -0
- basic_memory-0.21.6/integrations/hermes/requirements-dev.txt +1 -0
- basic_memory-0.21.6/integrations/hermes/skill/SKILL.md +242 -0
- basic_memory-0.21.6/integrations/hermes/tests/conftest.py +167 -0
- basic_memory-0.21.6/integrations/hermes/tests/stubs/agent/__init__.py +1 -0
- basic_memory-0.21.6/integrations/hermes/tests/stubs/agent/memory_provider.py +5 -0
- basic_memory-0.21.6/integrations/hermes/tests/stubs/tools/__init__.py +1 -0
- basic_memory-0.21.6/integrations/hermes/tests/stubs/tools/registry.py +9 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_actor.py +183 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_capture.py +337 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_commands.py +725 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_helpers.py +531 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_integration.py +423 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_prefetch.py +296 -0
- basic_memory-0.21.6/integrations/hermes/tests/test_provider.py +637 -0
- basic_memory-0.21.6/integrations/openclaw/.githooks/pre-commit +11 -0
- basic_memory-0.21.6/integrations/openclaw/.github/workflows/ci.yml +37 -0
- basic_memory-0.21.6/integrations/openclaw/.github/workflows/release.yml +99 -0
- basic_memory-0.21.6/integrations/openclaw/.gitignore +146 -0
- basic_memory-0.21.6/integrations/openclaw/AGENTS.md +1 -0
- basic_memory-0.21.6/integrations/openclaw/BASIC_MEMORY.md +208 -0
- basic_memory-0.21.6/integrations/openclaw/CLAUDE.md +632 -0
- basic_memory-0.21.6/integrations/openclaw/CONTEXT_ENGINE_PLAN.md +275 -0
- basic_memory-0.21.6/integrations/openclaw/DEVELOPMENT.md +130 -0
- basic_memory-0.21.6/integrations/openclaw/LICENSE +21 -0
- basic_memory-0.21.6/integrations/openclaw/MEMORY_TASK_FLOW.md +156 -0
- basic_memory-0.21.6/integrations/openclaw/README.md +279 -0
- basic_memory-0.21.6/integrations/openclaw/SECURITY.md +61 -0
- basic_memory-0.21.6/integrations/openclaw/biome.json +97 -0
- basic_memory-0.21.6/integrations/openclaw/bm-client.test.ts +696 -0
- basic_memory-0.21.6/integrations/openclaw/bm-client.ts +915 -0
- basic_memory-0.21.6/integrations/openclaw/bun.lock +807 -0
- basic_memory-0.21.6/integrations/openclaw/commands/cli.ts +175 -0
- basic_memory-0.21.6/integrations/openclaw/commands/skills.test.ts +125 -0
- basic_memory-0.21.6/integrations/openclaw/commands/skills.ts +64 -0
- basic_memory-0.21.6/integrations/openclaw/commands/slash.ts +107 -0
- basic_memory-0.21.6/integrations/openclaw/config.test.ts +187 -0
- basic_memory-0.21.6/integrations/openclaw/config.ts +136 -0
- basic_memory-0.21.6/integrations/openclaw/context-engine/basic-memory-context-engine.test.ts +400 -0
- basic_memory-0.21.6/integrations/openclaw/context-engine/basic-memory-context-engine.ts +262 -0
- basic_memory-0.21.6/integrations/openclaw/hooks/capture.test.ts +244 -0
- basic_memory-0.21.6/integrations/openclaw/hooks/capture.ts +107 -0
- basic_memory-0.21.6/integrations/openclaw/hooks/recall.test.ts +215 -0
- basic_memory-0.21.6/integrations/openclaw/hooks/recall.ts +81 -0
- basic_memory-0.21.6/integrations/openclaw/index.test.ts +90 -0
- basic_memory-0.21.6/integrations/openclaw/index.ts +172 -0
- basic_memory-0.21.6/integrations/openclaw/integration/bm-client.integration.test.ts +225 -0
- basic_memory-0.21.6/integrations/openclaw/justfile +68 -0
- basic_memory-0.21.6/integrations/openclaw/logger.test.ts +243 -0
- basic_memory-0.21.6/integrations/openclaw/logger.ts +47 -0
- basic_memory-0.21.6/integrations/openclaw/openclaw.plugin.json +110 -0
- basic_memory-0.21.6/integrations/openclaw/package.json +96 -0
- basic_memory-0.21.6/integrations/openclaw/schema/conversation-schema.ts +33 -0
- basic_memory-0.21.6/integrations/openclaw/schema/task-schema.ts +34 -0
- basic_memory-0.21.6/integrations/openclaw/scripts/bm-local.sh +17 -0
- basic_memory-0.21.6/integrations/openclaw/scripts/fetch-skills.ts +108 -0
- basic_memory-0.21.6/integrations/openclaw/scripts/setup-bm.sh +48 -0
- basic_memory-0.21.6/integrations/openclaw/tools/build-context.test.ts +556 -0
- basic_memory-0.21.6/integrations/openclaw/tools/build-context.ts +128 -0
- basic_memory-0.21.6/integrations/openclaw/tools/delete-note.test.ts +72 -0
- basic_memory-0.21.6/integrations/openclaw/tools/delete-note.ts +71 -0
- basic_memory-0.21.6/integrations/openclaw/tools/edit-note.test.ts +205 -0
- basic_memory-0.21.6/integrations/openclaw/tools/edit-note.ts +123 -0
- basic_memory-0.21.6/integrations/openclaw/tools/list-memory-projects.test.ts +161 -0
- basic_memory-0.21.6/integrations/openclaw/tools/list-memory-projects.ts +101 -0
- basic_memory-0.21.6/integrations/openclaw/tools/list-workspaces.test.ts +146 -0
- basic_memory-0.21.6/integrations/openclaw/tools/list-workspaces.ts +80 -0
- basic_memory-0.21.6/integrations/openclaw/tools/memory-provider.test.ts +149 -0
- basic_memory-0.21.6/integrations/openclaw/tools/memory-provider.ts +335 -0
- basic_memory-0.21.6/integrations/openclaw/tools/move-note.test.ts +78 -0
- basic_memory-0.21.6/integrations/openclaw/tools/move-note.ts +79 -0
- basic_memory-0.21.6/integrations/openclaw/tools/read-note.test.ts +181 -0
- basic_memory-0.21.6/integrations/openclaw/tools/read-note.ts +84 -0
- basic_memory-0.21.6/integrations/openclaw/tools/schema-diff.test.ts +126 -0
- basic_memory-0.21.6/integrations/openclaw/tools/schema-diff.ts +109 -0
- basic_memory-0.21.6/integrations/openclaw/tools/schema-infer.test.ts +132 -0
- basic_memory-0.21.6/integrations/openclaw/tools/schema-infer.ts +108 -0
- basic_memory-0.21.6/integrations/openclaw/tools/schema-validate.test.ts +142 -0
- basic_memory-0.21.6/integrations/openclaw/tools/schema-validate.ts +106 -0
- basic_memory-0.21.6/integrations/openclaw/tools/search-notes.test.ts +455 -0
- basic_memory-0.21.6/integrations/openclaw/tools/search-notes.ts +144 -0
- basic_memory-0.21.6/integrations/openclaw/tools/write-note.test.ts +567 -0
- basic_memory-0.21.6/integrations/openclaw/tools/write-note.ts +113 -0
- basic_memory-0.21.6/integrations/openclaw/tsconfig.build.json +12 -0
- basic_memory-0.21.6/integrations/openclaw/tsconfig.json +24 -0
- basic_memory-0.21.6/justfile +470 -0
- basic_memory-0.21.6/plugins/claude-code/.claude-plugin/marketplace.json +29 -0
- basic_memory-0.21.6/plugins/claude-code/.claude-plugin/plugin.json +9 -0
- basic_memory-0.21.6/plugins/claude-code/CHANGELOG.md +273 -0
- basic_memory-0.21.6/plugins/claude-code/DESIGN.md +625 -0
- basic_memory-0.21.6/plugins/claude-code/README.md +142 -0
- basic_memory-0.21.6/plugins/claude-code/docs/architecture.md +166 -0
- basic_memory-0.21.6/plugins/claude-code/docs/getting-started.md +138 -0
- basic_memory-0.21.6/plugins/claude-code/docs/why-combine-memory.md +102 -0
- basic_memory-0.21.6/plugins/claude-code/hooks/hooks.json +29 -0
- basic_memory-0.21.6/plugins/claude-code/hooks/pre-compact.sh +232 -0
- basic_memory-0.21.6/plugins/claude-code/hooks/session-start.sh +293 -0
- basic_memory-0.21.6/plugins/claude-code/justfile +21 -0
- basic_memory-0.21.6/plugins/claude-code/output-styles/basic-memory.md +55 -0
- basic_memory-0.21.6/plugins/claude-code/schemas/decision.md +44 -0
- basic_memory-0.21.6/plugins/claude-code/schemas/session.md +48 -0
- basic_memory-0.21.6/plugins/claude-code/schemas/task.md +39 -0
- basic_memory-0.21.6/plugins/claude-code/settings.example.json +17 -0
- basic_memory-0.21.6/plugins/claude-code/skills/bm-remember/SKILL.md +51 -0
- basic_memory-0.21.6/plugins/claude-code/skills/bm-setup/SKILL.md +226 -0
- basic_memory-0.21.6/plugins/claude-code/skills/bm-share/SKILL.md +61 -0
- basic_memory-0.21.6/plugins/claude-code/skills/bm-status/SKILL.md +62 -0
- basic_memory-0.21.6/plugins/codex/.codex-plugin/plugin.json +46 -0
- basic_memory-0.21.6/plugins/codex/.mcp.json +11 -0
- basic_memory-0.21.6/plugins/codex/DEVELOPMENT.md +80 -0
- basic_memory-0.21.6/plugins/codex/README.md +93 -0
- basic_memory-0.21.6/plugins/codex/assets/app-icon.png +0 -0
- basic_memory-0.21.6/plugins/codex/assets/logo.png +0 -0
- basic_memory-0.21.6/plugins/codex/hooks/hooks.json +31 -0
- basic_memory-0.21.6/plugins/codex/hooks/pre-compact.py +232 -0
- basic_memory-0.21.6/plugins/codex/hooks/pre-compact.sh +15 -0
- basic_memory-0.21.6/plugins/codex/hooks/session-start.py +237 -0
- basic_memory-0.21.6/plugins/codex/hooks/session-start.sh +15 -0
- basic_memory-0.21.6/plugins/codex/justfile +19 -0
- basic_memory-0.21.6/plugins/codex/schemas/codex-session.md +47 -0
- basic_memory-0.21.6/plugins/codex/schemas/decision.md +30 -0
- basic_memory-0.21.6/plugins/codex/schemas/task.md +30 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-checkpoint/SKILL.md +62 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-checkpoint/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-checkpoint/assets/icon.svg +6 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-decide/SKILL.md +35 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-decide/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-decide/assets/icon.svg +4 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-orient/SKILL.md +36 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-orient/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-orient/assets/icon.svg +5 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-remember/SKILL.md +31 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-remember/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-remember/assets/icon.svg +5 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-setup/SKILL.md +101 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-setup/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-setup/assets/icon.svg +11 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-share/SKILL.md +38 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-share/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-share/assets/icon.svg +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-status/SKILL.md +50 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-status/agents/openai.yaml +7 -0
- basic_memory-0.21.6/plugins/codex/skills/bm-status/assets/icon.svg +4 -0
- basic_memory-0.21.6/scripts/update_versions.py +185 -0
- basic_memory-0.21.6/scripts/validate_claude_plugin.py +135 -0
- basic_memory-0.21.6/scripts/validate_codex_plugin.py +144 -0
- basic_memory-0.21.6/scripts/validate_hermes_plugin.py +60 -0
- basic_memory-0.21.6/scripts/validate_skills.py +72 -0
- basic_memory-0.21.6/server.json +31 -0
- basic_memory-0.21.6/skills/AGENTS.md +1 -0
- basic_memory-0.21.6/skills/CLAUDE.md +64 -0
- basic_memory-0.21.6/skills/DEVELOPMENT.md +83 -0
- basic_memory-0.21.6/skills/README.md +134 -0
- basic_memory-0.21.6/skills/justfile +14 -0
- basic_memory-0.21.6/skills/memory-capture/SKILL.md +275 -0
- basic_memory-0.21.6/skills/memory-ci-capture/SKILL.md +56 -0
- basic_memory-0.21.6/skills/memory-continue/SKILL.md +148 -0
- basic_memory-0.21.6/skills/memory-curate/SKILL.md +243 -0
- basic_memory-0.21.6/skills/memory-defrag/SKILL.md +86 -0
- basic_memory-0.21.6/skills/memory-ingest/SKILL.md +309 -0
- basic_memory-0.21.6/skills/memory-lifecycle/SKILL.md +182 -0
- basic_memory-0.21.6/skills/memory-literary-analysis/SKILL.md +511 -0
- basic_memory-0.21.6/skills/memory-metadata-search/SKILL.md +184 -0
- basic_memory-0.21.6/skills/memory-notes/SKILL.md +342 -0
- basic_memory-0.21.6/skills/memory-reflect/SKILL.md +73 -0
- basic_memory-0.21.6/skills/memory-research/SKILL.md +235 -0
- basic_memory-0.21.6/skills/memory-schema/SKILL.md +237 -0
- basic_memory-0.21.6/skills/memory-tasks/SKILL.md +166 -0
- basic_memory-0.21.6/skills/skills-lock.json +50 -0
- basic_memory-0.21.6/src/basic_memory/__init__.py +7 -0
- basic_memory-0.21.6/src/basic_memory/api/v2/routers/knowledge_router.py +716 -0
- basic_memory-0.21.6/src/basic_memory/ci/README.md +225 -0
- basic_memory-0.21.6/src/basic_memory/ci/__init__.py +1 -0
- basic_memory-0.21.6/src/basic_memory/ci/project_updates.py +984 -0
- basic_memory-0.21.6/src/basic_memory/cli/commands/__init__.py +30 -0
- basic_memory-0.21.6/src/basic_memory/cli/commands/ci.py +437 -0
- basic_memory-0.21.6/src/basic_memory/cli/commands/cloud/core_commands.py +316 -0
- basic_memory-0.21.6/src/basic_memory/cli/commands/cloud/project_sync.py +403 -0
- basic_memory-0.21.6/src/basic_memory/cli/commands/cloud/workspace.py +123 -0
- basic_memory-0.21.6/src/basic_memory/cli/commands/project.py +1518 -0
- basic_memory-0.21.6/src/basic_memory/cli/main.py +40 -0
- basic_memory-0.21.6/src/basic_memory/mcp/tools/project_management.py +727 -0
- basic_memory-0.21.6/src/basic_memory/repository/project_repository.py +277 -0
- basic_memory-0.21.6/src/basic_memory/schemas/v2/entity.py +186 -0
- basic_memory-0.21.6/tests/api/v2/test_knowledge_router.py +957 -0
- basic_memory-0.21.6/tests/ci/test_project_updates.py +718 -0
- basic_memory-0.21.6/tests/cli/cloud/test_project_sync_command.py +366 -0
- basic_memory-0.21.6/tests/cli/test_ci_commands.py +524 -0
- basic_memory-0.21.6/tests/cli/test_cloud_authentication.py +303 -0
- basic_memory-0.21.6/tests/cli/test_project_list_and_ls.py +1068 -0
- basic_memory-0.21.6/tests/cli/test_workspace_commands.py +255 -0
- basic_memory-0.21.6/tests/mcp/clients/__init__.py +0 -0
- basic_memory-0.21.6/tests/mcp/test_tool_project_management.py +1222 -0
- basic_memory-0.21.6/tests/mcp/tools/test_search_notes_multi_project.py +366 -0
- basic_memory-0.21.6/tests/test_codex_plugin_package.py +57 -0
- basic_memory-0.21.6/tests/test_pr_title_workflow.py +18 -0
- basic_memory-0.21.6/tests/test_update_versions.py +147 -0
- basic_memory-0.21.5/.claude/commands/release/release.md +0 -199
- 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/.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/justfile +0 -416
- 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/api/v2/routers/knowledge_router.py +0 -705
- 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/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/workspace.py +0 -118
- basic_memory-0.21.5/src/basic_memory/cli/commands/project.py +0 -1506
- basic_memory-0.21.5/src/basic_memory/cli/main.py +0 -39
- basic_memory-0.21.5/src/basic_memory/mcp/tools/project_management.py +0 -711
- basic_memory-0.21.5/src/basic_memory/repository/project_repository.py +0 -278
- basic_memory-0.21.5/src/basic_memory/schemas/v2/entity.py +0 -185
- basic_memory-0.21.5/tests/api/v2/test_knowledge_router.py +0 -909
- basic_memory-0.21.5/tests/cli/cloud/test_project_sync_command.py +0 -92
- basic_memory-0.21.5/tests/cli/test_cloud_authentication.py +0 -266
- 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/mcp/test_tool_project_management.py +0 -1199
- basic_memory-0.21.5/tests/mcp/tools/test_search_notes_multi_project.py +0 -368
- 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 → basic_memory-0.21.6}/.agents/skills/instrumentation/SKILL.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/javascript/frameworks.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/javascript/patterns.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/python/integrations.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/python/logging-patterns.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/rust/patterns.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.claude/commands/spec.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.claude/settings.json +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.dockerignore +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.env.example +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/dependabot.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/workflows/claude-code-review.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.github/workflows/test.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/.python-version +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/CITATION.cff +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/CLA.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/CLAUDE.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/CONTRIBUTING.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/Dockerfile +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/LICENSE +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/NOTE-FORMAT.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/SECURITY.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docker-compose-postgres.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docker-compose.yml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/ARCHITECTURE.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/Docker.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/NOTE-FORMAT.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/SPEC-PER-PROJECT-ROUTING.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/ai-assistant-guide-extended.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/character-handling.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/cloud-cli.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/cloud-semantic-search-value.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/logfire-instrumentation-strategy.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/mcp-ui-bakeoff-instructions.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/metadata-search.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/post-v0.18.0-test-plan.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/releases/v0.19.0.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/semantic-search-test-log.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/semantic-search.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/specs/SPEC-LOCAL-PLUS-PUBLISH.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/specs/SPEC-SCHEMA-IMPL.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/specs/SPEC-SCHEMA.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/docs/testing-coverage.md +0 -0
- {basic_memory-0.21.5/test-int/semantic → basic_memory-0.21.6/integrations/hermes/tests}/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/llms-install.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/pyproject.toml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/skills-lock.json +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/smithery.yaml +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/d7e8f9a0b1c2_add_structured_metadata_indexes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/h1b2c3d4e5f6_add_postgres_vector_search_tables.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/i2c3d4e5f6g7_auto_backfill_semantic_embeddings.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/j3d4e5f6g7h8_rename_entity_type_to_note_type.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/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.21.6}/src/basic_memory/alembic/versions/l5g6h7i8j9k0_add_note_content_table.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/m6h7i8j9k0l1_add_vector_sync_fingerprints.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/n7i8j9k0l1m2_cleanup_sqlite_search_orphans.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/project_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/schema_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/search_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/api/v2/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/analytics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/auth.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/auto_update.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/restore.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/schemas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/snapshot.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/command_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/doctor.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/format.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/orphans.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/routing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/commands/update.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/cli/promo.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/config.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/db.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/config.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/db.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/importers.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/projects.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/repositories.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps/services.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/ignore_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/indexing/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/indexing/batch_indexer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/indexing/batching.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/indexing/models.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/knowledge.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/memory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/project.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/resource.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/formatting.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/project_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/cloud_info.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/release_notes.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/ui.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/cloud_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/release_notes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/ui_sdk.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/workspaces.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/note-preview-mcp-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/note-preview-tool-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/note-preview-vanilla.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/search-results-mcp-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/search-results-tool-ui.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/search-results-vanilla.html +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/sdk.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/templates.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/project_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/embedding_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/embedding_provider_factory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/fastembed_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/metadata_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/note_content_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/openai_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/postgres_search_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/search_index_row.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/search_repository_base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/semantic_errors.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/repository/sqlite_search_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/runtime.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schema/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schema/diff.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schema/inference.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schema/parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schema/resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schema/validator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/cloud.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/sync_report.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/v2/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/v2/graph.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/schemas/v2/resource.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/sync/coordinator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/src/basic_memory/workspace_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_cli_tool_edit_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_cli_tool_json_failure_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_cli_tool_json_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_project_commands_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_routing_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_search_notes_meta_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/compare_search_benchmarks.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-01.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-02.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-03.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-04.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-05.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-06.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-07.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-08.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-09.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-10.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-11.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-12.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-13.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-14.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-15.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-16.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-17.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-18.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-19.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-20.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/schema/Person.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/array-single.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/empty-note.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/explicit-overrides-type.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/inline-and-type.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/no-frontmatter.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/relation-only.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/type-no-schema.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/unicode-fields.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/ada-lovelace.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/alan-turing.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/anders-hejlsberg.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/andrej-karpathy.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/barbara-liskov.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/bjarne-stroustrup.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/brendan-eich.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/claude-shannon.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/dennis-ritchie.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/dijkstra.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/donald-knuth.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/fei-fei-li.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/geoffrey-hinton.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/grace-hopper.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/guido-van-rossum.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/james-gosling.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/john-carmack.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/ken-thompson.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/larry-page.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/leslie-lamport.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/linus-torvalds.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/margaret-hamilton.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/rasmus-lerdorf.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/richard-stallman.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/rob-pike.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/satoshi-nakamoto.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/tim-berners-lee.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/vint-cerf.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/yann-lecun.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/yukihiro-matsumoto.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/Book.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/Meeting.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/Person.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/SoftwareProject.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/StrictSchema.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/basic-memory.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/explicit-ref-note.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/no-schema-note.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/paul-graham.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/rich-hickey.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/standup-2024-01-15.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/extra-observations.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/missing-multiple.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/missing-required.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/wrong-enum-value.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_delete_directory_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_long_relation_type_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_move_directory_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_output_format_json_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_pagination_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_param_aliases_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_permalink_collision_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_smoke_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_string_params_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_ui_sdk_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_workspace_permalink_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.21.5/tests/markdown → basic_memory-0.21.6/test-int/semantic}/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/corpus.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/metrics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/report.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/test_multiterm_semantic_queries.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/test_search_diagnostics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/test_semantic_coverage.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/semantic/test_semantic_quality.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_disable_permalinks_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/helpers.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/test_diff_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/test_inference_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/test_parser_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_schema/test_validator_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_search_performance_benchmark.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/test-int/test_sync_batching_integration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/README.md +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/Screenshot.png +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_directory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_importer_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_knowledge_router_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_memory_hydration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_memory_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_orphan_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_project_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_prompt_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_resource_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_schema_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_search_hydration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_search_router.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_search_router_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_utils_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/api/v2/test_workspace_permalink_headers.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/cloud/test_rclone_installer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/cloud/test_upload_command_routing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/cloud/test_upload_path.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_analytics.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_auth_cli_auth.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_auto_update.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_exit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_tool_exit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_tool_json_output.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cloud_promo.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_cloud_status.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_db_reindex.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_db_reset_exit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_db_reset_zombie_check.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_json_output.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_orphans_command.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_project_add_with_local_path.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_project_info_cloud_status.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_project_info_errors.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_project_set_cloud_local.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_restore_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_routing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_snapshot_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_update_command.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/cli/test_upload.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/deps/test_task_failure_callback.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/importers/test_conversation_indexing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/indexing/test_batch_indexer.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/indexing/test_batching.py +0 -0
- {basic_memory-0.21.5/tests/mcp/clients → basic_memory-0.21.6/tests/markdown}/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_entity_parser_error_handling.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_markdown_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/clients/test_clients.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_async_client_force_local.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_async_client_modes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_async_client_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_client_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_client_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_mcp_container.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_project_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_project_context_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_prompt_tool_delegation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_server_lifespan_branches.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_server_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_cloud_discovery.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_contracts.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_json_output_modes.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_schema.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_utils_cloud_auth.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_workspace_management.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_tool_write_note_metadata.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_ui_resources.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_ui_sdk.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_ui_templates.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/test_workspace_permalink_resolution.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_distance_to_similarity.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_entity_upsert_issue_187.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_fastembed_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_hybrid_fusion.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_metadata_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_metadata_filters_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_note_content_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_openai_provider.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_postgres_search_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_postgres_search_repository_unit.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_search_index_row.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_search_text_with_metadata_filters.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_semantic_search_base.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_sqlite_vector_search_repository.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_vector_pagination.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/repository/test_vector_threshold.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schema/__init__.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schema/test_diff.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schema/test_inference.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schema/test_parser.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schema/test_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schema/test_validator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_memory_serialization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_entity_service_prepare.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_entity_service_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_entity_service_write_result.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_project_service_cloud_info.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_project_service_embedding_status.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_search_service_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_semantic_search.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_task_scheduler_semantic.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/services/test_upsert_entity_optimization.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_character_conflicts.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_coordinator.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_one_markdown_file.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_service_batching.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_service_incremental.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_service_subprocess.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_service_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_watch_service_atomic_adds.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_watch_service_reload.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/sync/test_watch_service_stress.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_alembic_env.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_coerce.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_config.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_deps.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_note_content_migration.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_permalink_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_project_resolver.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_rclone_commands.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_runtime.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/test_telemetry.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_setup_logging.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_timezone_utils.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_validate_project_path.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/tests/utils/test_workspace_context.py +0 -0
- {basic_memory-0.21.5 → basic_memory-0.21.6}/uv.lock +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,205 @@
|
|
|
1
|
+
# /release - Create Stable Release
|
|
2
|
+
|
|
3
|
+
Create a stable release using the automated justfile target with comprehensive validation.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/release <version>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (required): Release version like `v0.13.2`
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
You are an expert release manager for the Basic Memory project. When the user runs `/release`, execute the following steps:
|
|
16
|
+
|
|
17
|
+
### Step 1: Pre-flight Validation
|
|
18
|
+
|
|
19
|
+
#### Version Check
|
|
20
|
+
1. Check current version in `src/basic_memory/__init__.py`
|
|
21
|
+
2. Verify new version format matches `v\d+\.\d+\.\d+` pattern
|
|
22
|
+
3. Confirm version is higher than current version
|
|
23
|
+
|
|
24
|
+
#### Git Status
|
|
25
|
+
1. Check current git status for uncommitted changes
|
|
26
|
+
2. Verify we're on the `main` branch
|
|
27
|
+
3. Confirm no existing tag with this version
|
|
28
|
+
|
|
29
|
+
#### Documentation Validation
|
|
30
|
+
1. **Changelog Check**
|
|
31
|
+
- CHANGELOG.md contains entry for target version
|
|
32
|
+
- Entry includes all major features and fixes
|
|
33
|
+
- Breaking changes are documented
|
|
34
|
+
|
|
35
|
+
### Step 2: Use Justfile Automation
|
|
36
|
+
Execute the automated release process:
|
|
37
|
+
```bash
|
|
38
|
+
just release <version>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The justfile target handles:
|
|
42
|
+
- ✅ Version format validation
|
|
43
|
+
- ✅ Git status and branch checks
|
|
44
|
+
- ✅ Quality checks (`just check` - lint, format, type-check, tests)
|
|
45
|
+
- ✅ Version update across all consolidated manifests via `just set-version` (Python package + Claude Code plugin/marketplaces + Hermes + OpenClaw)
|
|
46
|
+
- ✅ Automatic commit with proper message
|
|
47
|
+
- ✅ Tag creation and pushing to GitHub
|
|
48
|
+
- ✅ Release workflow trigger (automatic on tag push)
|
|
49
|
+
|
|
50
|
+
The GitHub Actions workflow (`.github/workflows/release.yml`) then:
|
|
51
|
+
- ✅ Builds the package using `uv build`
|
|
52
|
+
- ✅ Creates GitHub release with auto-generated notes
|
|
53
|
+
- ✅ Publishes to PyPI
|
|
54
|
+
- ✅ Updates Homebrew formula (stable releases only)
|
|
55
|
+
|
|
56
|
+
### Step 3: Monitor Release Process
|
|
57
|
+
1. Verify tag push triggered the workflow (should start automatically within seconds)
|
|
58
|
+
2. Monitor workflow progress at: https://github.com/basicmachines-co/basic-memory/actions
|
|
59
|
+
3. Watch for successful completion of both jobs:
|
|
60
|
+
- `release` - Builds package and publishes to PyPI
|
|
61
|
+
- `homebrew` - Updates Homebrew formula (stable releases only)
|
|
62
|
+
4. Check for any workflow failures and investigate logs if needed
|
|
63
|
+
|
|
64
|
+
### Step 4: Post-Release Validation
|
|
65
|
+
|
|
66
|
+
#### GitHub Release
|
|
67
|
+
1. Verify GitHub release is created at: https://github.com/basicmachines-co/basic-memory/releases/tag/<version>
|
|
68
|
+
2. Check that release notes are auto-generated from commits
|
|
69
|
+
3. Validate release assets (`.whl` and `.tar.gz` files are attached)
|
|
70
|
+
|
|
71
|
+
#### PyPI Publication
|
|
72
|
+
1. Verify package published at: https://pypi.org/project/basic-memory/<version>/
|
|
73
|
+
2. Test installation: `uv tool install basic-memory`
|
|
74
|
+
3. Verify installed version: `basic-memory --version`
|
|
75
|
+
|
|
76
|
+
#### Homebrew Formula (Stable Releases Only)
|
|
77
|
+
1. Check formula update at: https://github.com/basicmachines-co/homebrew-basic-memory
|
|
78
|
+
2. Verify formula version matches release
|
|
79
|
+
3. Test Homebrew installation: `brew install basicmachines-co/basic-memory/basic-memory`
|
|
80
|
+
|
|
81
|
+
#### MCP Registry Publication
|
|
82
|
+
|
|
83
|
+
After PyPI release is published, update the MCP registry:
|
|
84
|
+
|
|
85
|
+
1. **Verify PyPI Release**
|
|
86
|
+
- Confirm package is live: https://pypi.org/project/basic-memory/<version>/
|
|
87
|
+
- The `server.json` version was auto-updated by `just release`
|
|
88
|
+
|
|
89
|
+
2. **Publish to MCP Registry**
|
|
90
|
+
```bash
|
|
91
|
+
cd /Users/drew/code/basic-memory
|
|
92
|
+
mcp-publisher publish
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If not authenticated:
|
|
96
|
+
```bash
|
|
97
|
+
mcp-publisher login github
|
|
98
|
+
# Follow device authentication flow
|
|
99
|
+
mcp-publisher publish
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
3. **Verify Publication**
|
|
103
|
+
```bash
|
|
104
|
+
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=basic-memory"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Note:** The `mcp-publisher` CLI can be installed via Homebrew (`brew install mcp-publisher`) or from GitHub releases.
|
|
108
|
+
|
|
109
|
+
#### Website Updates
|
|
110
|
+
|
|
111
|
+
**1. basicmachines.co** (`/Users/drew/code/basicmachines.co`)
|
|
112
|
+
- **Goal**: Update version number displayed on the homepage
|
|
113
|
+
- **Location**: Search for "Basic Memory v0." in the codebase to find version displays
|
|
114
|
+
- **What to update**:
|
|
115
|
+
- Hero section heading that shows "Basic Memory v{VERSION}"
|
|
116
|
+
- "What's New in v{VERSION}" section heading
|
|
117
|
+
- Feature highlights array (look for array of features with title/description)
|
|
118
|
+
- **Process**:
|
|
119
|
+
1. Pull latest from GitHub: `git pull origin main`
|
|
120
|
+
2. Create release branch: `git checkout -b release/v{VERSION}`
|
|
121
|
+
3. Search codebase for current version number (e.g., "v0.16.1")
|
|
122
|
+
4. Update version numbers to new release version
|
|
123
|
+
5. Update feature highlights with 3-5 key features from this release (extract from CHANGELOG.md)
|
|
124
|
+
6. Commit changes: `git commit -m "chore: update to v{VERSION}"`
|
|
125
|
+
7. Push branch: `git push origin release/v{VERSION}`
|
|
126
|
+
- **Deploy**: Follow deployment process for basicmachines.co
|
|
127
|
+
|
|
128
|
+
**2. docs.basicmemory.com** (`/Users/drew/code/docs.basicmemory.com`)
|
|
129
|
+
- **Goal**: Add new release notes section to the latest-releases page
|
|
130
|
+
- **File**: `src/pages/latest-releases.mdx`
|
|
131
|
+
- **What to do**:
|
|
132
|
+
1. Pull latest from GitHub: `git pull origin main`
|
|
133
|
+
2. Create release branch: `git checkout -b release/v{VERSION}`
|
|
134
|
+
3. Read the existing file to understand the format and structure
|
|
135
|
+
4. Read `/Users/drew/code/basic-memory/CHANGELOG.md` to get release content
|
|
136
|
+
5. Add new release section **at the top** (after MDX imports, before other releases)
|
|
137
|
+
6. Follow the existing pattern:
|
|
138
|
+
- Heading: `## [v{VERSION}](github-link) — YYYY-MM-DD`
|
|
139
|
+
- Focus statement if applicable
|
|
140
|
+
- `<Info>` block with highlights (3-5 key items)
|
|
141
|
+
- Sections for Features, Bug Fixes, Breaking Changes, etc.
|
|
142
|
+
- Link to full changelog at the end
|
|
143
|
+
- Separator `---` between releases
|
|
144
|
+
7. Commit changes: `git commit -m "docs: add v{VERSION} release notes"`
|
|
145
|
+
8. Push branch: `git push origin release/v{VERSION}`
|
|
146
|
+
- **Source content**: Extract and format sections from CHANGELOG.md for this version
|
|
147
|
+
- **Deploy**: Follow deployment process for docs.basicmemory.com
|
|
148
|
+
|
|
149
|
+
**4. Announce Release**
|
|
150
|
+
- Post to Discord community if significant changes
|
|
151
|
+
- Update social media if major release
|
|
152
|
+
- Notify users via appropriate channels
|
|
153
|
+
|
|
154
|
+
## Pre-conditions Check
|
|
155
|
+
Before starting, verify:
|
|
156
|
+
- [ ] All beta testing is complete
|
|
157
|
+
- [ ] Critical bugs are fixed
|
|
158
|
+
- [ ] Breaking changes are documented
|
|
159
|
+
- [ ] CHANGELOG.md is updated (if needed)
|
|
160
|
+
- [ ] Version number follows semantic versioning
|
|
161
|
+
|
|
162
|
+
## Error Handling
|
|
163
|
+
- If `just release` fails, examine the error output for specific issues
|
|
164
|
+
- If quality checks fail, fix issues and retry
|
|
165
|
+
- If changelog entry missing, update CHANGELOG.md and commit before retrying
|
|
166
|
+
- If GitHub Actions fail, check workflow logs for debugging
|
|
167
|
+
|
|
168
|
+
## Success Output
|
|
169
|
+
```
|
|
170
|
+
🎉 Stable Release v0.13.2 Created Successfully!
|
|
171
|
+
|
|
172
|
+
🏷️ Tag: v0.13.2
|
|
173
|
+
📋 GitHub Release: https://github.com/basicmachines-co/basic-memory/releases/tag/v0.13.2
|
|
174
|
+
📦 PyPI: https://pypi.org/project/basic-memory/0.13.2/
|
|
175
|
+
🍺 Homebrew: https://github.com/basicmachines-co/homebrew-basic-memory
|
|
176
|
+
🔌 MCP Registry: https://registry.modelcontextprotocol.io
|
|
177
|
+
🚀 GitHub Actions: Completed
|
|
178
|
+
|
|
179
|
+
Install with pip/uv:
|
|
180
|
+
uv tool install basic-memory
|
|
181
|
+
|
|
182
|
+
Install with Homebrew:
|
|
183
|
+
brew install basicmachines-co/basic-memory/basic-memory
|
|
184
|
+
|
|
185
|
+
Users can now upgrade:
|
|
186
|
+
uv tool upgrade basic-memory
|
|
187
|
+
brew upgrade basic-memory
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Context
|
|
191
|
+
- This creates production releases used by end users
|
|
192
|
+
- Must pass all quality gates before proceeding
|
|
193
|
+
- Uses the automated justfile target for consistency
|
|
194
|
+
- Version is automatically updated across **all** consolidated manifests via
|
|
195
|
+
`just set-version <version>` (which calls `scripts/update_versions.py`): the
|
|
196
|
+
Python package (`__init__.py`, `server.json`) **and** the plugin/agent artifacts
|
|
197
|
+
(Claude Code `plugin.json` + root/local marketplaces, Hermes `plugin.yaml` +
|
|
198
|
+
`__init__.py`, OpenClaw `package.json`). To bump only the plugin/agent artifacts
|
|
199
|
+
out of band, use `just set-packages-version <version>` (preview with
|
|
200
|
+
`just set-packages-version-dry-run <version>`).
|
|
201
|
+
- Triggers automated GitHub release with changelog
|
|
202
|
+
- Package is published to PyPI for `pip` and `uv` users
|
|
203
|
+
- Homebrew formula is automatically updated for stable releases
|
|
204
|
+
- MCP Registry is updated manually via `mcp-publisher publish`
|
|
205
|
+
- Supports multiple installation methods (uv, pip, Homebrew)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "basicmachines-co",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Basic Machines",
|
|
5
|
+
"email": "hello@basicmachines.co"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "Official Basic Memory plugins from the canonical basic-memory repository",
|
|
9
|
+
"version": "0.21.6"
|
|
10
|
+
},
|
|
11
|
+
"plugins": [
|
|
12
|
+
{
|
|
13
|
+
"name": "basic-memory",
|
|
14
|
+
"source": "./plugins/claude-code",
|
|
15
|
+
"description": "The bridge between Claude's working memory and Basic Memory's durable knowledge graph \u2014 session briefings, pre-compaction checkpoints, and capture reflexes",
|
|
16
|
+
"version": "0.21.6",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "Basic Machines"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"memory",
|
|
22
|
+
"knowledge",
|
|
23
|
+
"mcp",
|
|
24
|
+
"specs",
|
|
25
|
+
"context"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Auto BM Soul
|
|
2
|
+
|
|
3
|
+
Write project updates for humans who will return later trying to understand what happened.
|
|
4
|
+
|
|
5
|
+
## Voice
|
|
6
|
+
|
|
7
|
+
- Clear, direct, warm, and technically honest.
|
|
8
|
+
- Prefer concrete observations over generic praise.
|
|
9
|
+
- It is okay to say when code is messy, risky, clever, boring, or satisfying.
|
|
10
|
+
- Keep personality in service of memory, not performance.
|
|
11
|
+
|
|
12
|
+
## Do
|
|
13
|
+
|
|
14
|
+
- Tell the story.
|
|
15
|
+
- Name the tradeoffs.
|
|
16
|
+
- Call out sharp edges.
|
|
17
|
+
- Notice good simplifications.
|
|
18
|
+
- Let the note have taste and a little life when the evidence supports it.
|
|
19
|
+
|
|
20
|
+
## Do Not
|
|
21
|
+
|
|
22
|
+
- Do not invent intent, impact, tests, or drama.
|
|
23
|
+
- Dunk on people.
|
|
24
|
+
- Turn the note into marketing copy.
|
|
25
|
+
- Hide uncertainty behind confident prose.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Memory CI Capture
|
|
2
|
+
|
|
3
|
+
You turn GitHub delivery context into a durable project update for Basic Memory.
|
|
4
|
+
GitHub records the mechanics. Basic Memory remembers what changed and why.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
|
|
8
|
+
- Read `.github/basic-memory/project-update-context.json`.
|
|
9
|
+
- Read `.github/basic-memory/SOUL.md` if it exists. It is the repo-local voice and style guide
|
|
10
|
+
for project updates.
|
|
11
|
+
- Read the PR diff before writing when a SHA is available. Useful commands:
|
|
12
|
+
`git show --stat --name-only <sha>` and `git show --format=fuller --no-patch <sha>`.
|
|
13
|
+
- Use linked issue details, changed files, commit messages, PR body, labels, and
|
|
14
|
+
source links as evidence.
|
|
15
|
+
- Treat GitHub payload fields as immutable facts.
|
|
16
|
+
- Do not invent tests, deployment status, issues, or user impact.
|
|
17
|
+
|
|
18
|
+
## Writing Standard
|
|
19
|
+
|
|
20
|
+
Do not write a fill-in-the-blanks note. Tell the story from the PR:
|
|
21
|
+
problem -> solution -> impact.
|
|
22
|
+
|
|
23
|
+
Explain what problem was being addressed. If linked issue details are present,
|
|
24
|
+
use them. If they are absent, ground the problem in the PR body, title, commits,
|
|
25
|
+
and diff, and say when the original problem statement is unavailable.
|
|
26
|
+
|
|
27
|
+
Explain why the fix solves the problem, what complexity it introduced, what it
|
|
28
|
+
refactored or removed, which components changed, and how the system is different
|
|
29
|
+
after the merge. Prefer specific component names, file paths, modules, commands,
|
|
30
|
+
and behavior over generic phrases.
|
|
31
|
+
|
|
32
|
+
## Voice And Candor
|
|
33
|
+
|
|
34
|
+
You may have a point of view. Be clear, specific, and human.
|
|
35
|
+
It is okay to say when the code is messy, risky, clever, boring, or satisfying,
|
|
36
|
+
but explain why. If the work is elegant or genuinely useful, say that too.
|
|
37
|
+
Ground all judgments in the PR, linked issues, diff, tests, and source facts.
|
|
38
|
+
|
|
39
|
+
The soul file can shape tone, taste, and personality. It cannot override source
|
|
40
|
+
facts, schema requirements, or the evidence standard above. Do not be mean,
|
|
41
|
+
vague, theatrical, or invent criticism.
|
|
42
|
+
|
|
43
|
+
## Output
|
|
44
|
+
|
|
45
|
+
Return only JSON that matches the provided AgentSynthesis schema:
|
|
46
|
+
|
|
47
|
+
- `summary`: one concise sentence; do not merely repeat the PR title.
|
|
48
|
+
- `story`: 2-4 sentences that connect problem -> solution -> impact.
|
|
49
|
+
- `problem_addressed`: the concrete problem, bug, missing capability, or delivery need.
|
|
50
|
+
- `solution`: why this change solves the problem.
|
|
51
|
+
- `system_impact`: how the system, workflow, or architecture changed after the merge.
|
|
52
|
+
- `why_it_matters`: durable project-memory context for future humans and agents.
|
|
53
|
+
- `components_changed`: modules, workflows, commands, schemas, docs, or services touched.
|
|
54
|
+
- `complexity_introduced`: tradeoffs, new moving parts, operational costs, or edge cases.
|
|
55
|
+
- `refactors_or_removals`: cleanup, simplification, deleted paths, or "none found".
|
|
56
|
+
- `user_facing_changes`: visible behavior or product changes.
|
|
57
|
+
- `internal_changes`: implementation, infrastructure, or operational changes.
|
|
58
|
+
- `verification`: checks, tests, deploy evidence, or explicit unknowns.
|
|
59
|
+
- `follow_ups`: concrete remaining work only.
|
|
60
|
+
- `decision_candidates`: explicit product or architecture decisions only.
|
|
61
|
+
- `task_candidates`: concrete future tasks only.
|
|
62
|
+
|
|
63
|
+
Use empty arrays only when a list truly has no grounded entries. This is project
|
|
64
|
+
memory, not marketing copy and not a commit-by-commit changelog.
|