basic-memory 0.21.4__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.
Files changed (940) hide show
  1. basic_memory-0.21.6/.agents/plugins/marketplace.json +20 -0
  2. basic_memory-0.21.6/.agents/skills/adversarial-review/SKILL.md +159 -0
  3. basic_memory-0.21.6/.agents/skills/adversarial-review/prompts/refute.md +22 -0
  4. basic_memory-0.21.6/.agents/skills/adversarial-review/prompts/review.md +39 -0
  5. basic_memory-0.21.6/.agents/skills/adversarial-review/schemas/findings.schema.json +52 -0
  6. basic_memory-0.21.6/.agents/skills/adversarial-review/schemas/verdicts.schema.json +38 -0
  7. basic_memory-0.21.6/.claude/commands/release/release.md +205 -0
  8. basic_memory-0.21.6/.claude-plugin/marketplace.json +29 -0
  9. basic_memory-0.21.6/.github/basic-memory/SOUL.md +25 -0
  10. basic_memory-0.21.6/.github/basic-memory/config.yml +7 -0
  11. basic_memory-0.21.6/.github/basic-memory/memory-ci-capture.md +64 -0
  12. basic_memory-0.21.6/.github/workflows/basic-memory.yml +75 -0
  13. basic_memory-0.21.6/.github/workflows/consolidated-packages.yml +110 -0
  14. basic_memory-0.21.6/.github/workflows/pr-title.yml +48 -0
  15. basic_memory-0.21.6/.github/workflows/release.yml +165 -0
  16. basic_memory-0.21.6/.gitignore +67 -0
  17. basic_memory-0.21.6/AGENTS.md +512 -0
  18. basic_memory-0.21.6/CHANGELOG.md +2895 -0
  19. basic_memory-0.21.6/PKG-INFO +690 -0
  20. basic_memory-0.21.6/README.md +637 -0
  21. basic_memory-0.21.6/integrations/hermes/.coveragerc +9 -0
  22. basic_memory-0.21.6/integrations/hermes/.github/workflows/integration.yml +48 -0
  23. basic_memory-0.21.6/integrations/hermes/.github/workflows/pr-title.yml +36 -0
  24. basic_memory-0.21.6/integrations/hermes/.github/workflows/release.yml +194 -0
  25. basic_memory-0.21.6/integrations/hermes/.github/workflows/test.yml +39 -0
  26. basic_memory-0.21.6/integrations/hermes/.gitignore +6 -0
  27. basic_memory-0.21.6/integrations/hermes/CHANGELOG.md +133 -0
  28. basic_memory-0.21.6/integrations/hermes/LICENSE +661 -0
  29. basic_memory-0.21.6/integrations/hermes/MONKEYPATCH.md +269 -0
  30. basic_memory-0.21.6/integrations/hermes/README.md +235 -0
  31. basic_memory-0.21.6/integrations/hermes/__init__.py +1874 -0
  32. basic_memory-0.21.6/integrations/hermes/justfile +22 -0
  33. basic_memory-0.21.6/integrations/hermes/plugin.yaml +11 -0
  34. basic_memory-0.21.6/integrations/hermes/pytest.ini +8 -0
  35. basic_memory-0.21.6/integrations/hermes/requirements-dev.txt +1 -0
  36. basic_memory-0.21.6/integrations/hermes/skill/SKILL.md +242 -0
  37. basic_memory-0.21.6/integrations/hermes/tests/conftest.py +167 -0
  38. basic_memory-0.21.6/integrations/hermes/tests/stubs/agent/__init__.py +1 -0
  39. basic_memory-0.21.6/integrations/hermes/tests/stubs/agent/memory_provider.py +5 -0
  40. basic_memory-0.21.6/integrations/hermes/tests/stubs/tools/__init__.py +1 -0
  41. basic_memory-0.21.6/integrations/hermes/tests/stubs/tools/registry.py +9 -0
  42. basic_memory-0.21.6/integrations/hermes/tests/test_actor.py +183 -0
  43. basic_memory-0.21.6/integrations/hermes/tests/test_capture.py +337 -0
  44. basic_memory-0.21.6/integrations/hermes/tests/test_commands.py +725 -0
  45. basic_memory-0.21.6/integrations/hermes/tests/test_helpers.py +531 -0
  46. basic_memory-0.21.6/integrations/hermes/tests/test_integration.py +423 -0
  47. basic_memory-0.21.6/integrations/hermes/tests/test_prefetch.py +296 -0
  48. basic_memory-0.21.6/integrations/hermes/tests/test_provider.py +637 -0
  49. basic_memory-0.21.6/integrations/openclaw/.githooks/pre-commit +11 -0
  50. basic_memory-0.21.6/integrations/openclaw/.github/workflows/ci.yml +37 -0
  51. basic_memory-0.21.6/integrations/openclaw/.github/workflows/release.yml +99 -0
  52. basic_memory-0.21.6/integrations/openclaw/.gitignore +146 -0
  53. basic_memory-0.21.6/integrations/openclaw/AGENTS.md +1 -0
  54. basic_memory-0.21.6/integrations/openclaw/BASIC_MEMORY.md +208 -0
  55. basic_memory-0.21.6/integrations/openclaw/CLAUDE.md +632 -0
  56. basic_memory-0.21.6/integrations/openclaw/CONTEXT_ENGINE_PLAN.md +275 -0
  57. basic_memory-0.21.6/integrations/openclaw/DEVELOPMENT.md +130 -0
  58. basic_memory-0.21.6/integrations/openclaw/LICENSE +21 -0
  59. basic_memory-0.21.6/integrations/openclaw/MEMORY_TASK_FLOW.md +156 -0
  60. basic_memory-0.21.6/integrations/openclaw/README.md +279 -0
  61. basic_memory-0.21.6/integrations/openclaw/SECURITY.md +61 -0
  62. basic_memory-0.21.6/integrations/openclaw/biome.json +97 -0
  63. basic_memory-0.21.6/integrations/openclaw/bm-client.test.ts +696 -0
  64. basic_memory-0.21.6/integrations/openclaw/bm-client.ts +915 -0
  65. basic_memory-0.21.6/integrations/openclaw/bun.lock +807 -0
  66. basic_memory-0.21.6/integrations/openclaw/commands/cli.ts +175 -0
  67. basic_memory-0.21.6/integrations/openclaw/commands/skills.test.ts +125 -0
  68. basic_memory-0.21.6/integrations/openclaw/commands/skills.ts +64 -0
  69. basic_memory-0.21.6/integrations/openclaw/commands/slash.ts +107 -0
  70. basic_memory-0.21.6/integrations/openclaw/config.test.ts +187 -0
  71. basic_memory-0.21.6/integrations/openclaw/config.ts +136 -0
  72. basic_memory-0.21.6/integrations/openclaw/context-engine/basic-memory-context-engine.test.ts +400 -0
  73. basic_memory-0.21.6/integrations/openclaw/context-engine/basic-memory-context-engine.ts +262 -0
  74. basic_memory-0.21.6/integrations/openclaw/hooks/capture.test.ts +244 -0
  75. basic_memory-0.21.6/integrations/openclaw/hooks/capture.ts +107 -0
  76. basic_memory-0.21.6/integrations/openclaw/hooks/recall.test.ts +215 -0
  77. basic_memory-0.21.6/integrations/openclaw/hooks/recall.ts +81 -0
  78. basic_memory-0.21.6/integrations/openclaw/index.test.ts +90 -0
  79. basic_memory-0.21.6/integrations/openclaw/index.ts +172 -0
  80. basic_memory-0.21.6/integrations/openclaw/integration/bm-client.integration.test.ts +225 -0
  81. basic_memory-0.21.6/integrations/openclaw/justfile +68 -0
  82. basic_memory-0.21.6/integrations/openclaw/logger.test.ts +243 -0
  83. basic_memory-0.21.6/integrations/openclaw/logger.ts +47 -0
  84. basic_memory-0.21.6/integrations/openclaw/openclaw.plugin.json +110 -0
  85. basic_memory-0.21.6/integrations/openclaw/package.json +96 -0
  86. basic_memory-0.21.6/integrations/openclaw/schema/conversation-schema.ts +33 -0
  87. basic_memory-0.21.6/integrations/openclaw/schema/task-schema.ts +34 -0
  88. basic_memory-0.21.6/integrations/openclaw/scripts/bm-local.sh +17 -0
  89. basic_memory-0.21.6/integrations/openclaw/scripts/fetch-skills.ts +108 -0
  90. basic_memory-0.21.6/integrations/openclaw/scripts/setup-bm.sh +48 -0
  91. basic_memory-0.21.6/integrations/openclaw/tools/build-context.test.ts +556 -0
  92. basic_memory-0.21.6/integrations/openclaw/tools/build-context.ts +128 -0
  93. basic_memory-0.21.6/integrations/openclaw/tools/delete-note.test.ts +72 -0
  94. basic_memory-0.21.6/integrations/openclaw/tools/delete-note.ts +71 -0
  95. basic_memory-0.21.6/integrations/openclaw/tools/edit-note.test.ts +205 -0
  96. basic_memory-0.21.6/integrations/openclaw/tools/edit-note.ts +123 -0
  97. basic_memory-0.21.6/integrations/openclaw/tools/list-memory-projects.test.ts +161 -0
  98. basic_memory-0.21.6/integrations/openclaw/tools/list-memory-projects.ts +101 -0
  99. basic_memory-0.21.6/integrations/openclaw/tools/list-workspaces.test.ts +146 -0
  100. basic_memory-0.21.6/integrations/openclaw/tools/list-workspaces.ts +80 -0
  101. basic_memory-0.21.6/integrations/openclaw/tools/memory-provider.test.ts +149 -0
  102. basic_memory-0.21.6/integrations/openclaw/tools/memory-provider.ts +335 -0
  103. basic_memory-0.21.6/integrations/openclaw/tools/move-note.test.ts +78 -0
  104. basic_memory-0.21.6/integrations/openclaw/tools/move-note.ts +79 -0
  105. basic_memory-0.21.6/integrations/openclaw/tools/read-note.test.ts +181 -0
  106. basic_memory-0.21.6/integrations/openclaw/tools/read-note.ts +84 -0
  107. basic_memory-0.21.6/integrations/openclaw/tools/schema-diff.test.ts +126 -0
  108. basic_memory-0.21.6/integrations/openclaw/tools/schema-diff.ts +109 -0
  109. basic_memory-0.21.6/integrations/openclaw/tools/schema-infer.test.ts +132 -0
  110. basic_memory-0.21.6/integrations/openclaw/tools/schema-infer.ts +108 -0
  111. basic_memory-0.21.6/integrations/openclaw/tools/schema-validate.test.ts +142 -0
  112. basic_memory-0.21.6/integrations/openclaw/tools/schema-validate.ts +106 -0
  113. basic_memory-0.21.6/integrations/openclaw/tools/search-notes.test.ts +455 -0
  114. basic_memory-0.21.6/integrations/openclaw/tools/search-notes.ts +144 -0
  115. basic_memory-0.21.6/integrations/openclaw/tools/write-note.test.ts +567 -0
  116. basic_memory-0.21.6/integrations/openclaw/tools/write-note.ts +113 -0
  117. basic_memory-0.21.6/integrations/openclaw/tsconfig.build.json +12 -0
  118. basic_memory-0.21.6/integrations/openclaw/tsconfig.json +24 -0
  119. basic_memory-0.21.6/justfile +470 -0
  120. basic_memory-0.21.6/plugins/claude-code/.claude-plugin/marketplace.json +29 -0
  121. basic_memory-0.21.6/plugins/claude-code/.claude-plugin/plugin.json +9 -0
  122. basic_memory-0.21.6/plugins/claude-code/CHANGELOG.md +273 -0
  123. basic_memory-0.21.6/plugins/claude-code/DESIGN.md +625 -0
  124. basic_memory-0.21.6/plugins/claude-code/README.md +142 -0
  125. basic_memory-0.21.6/plugins/claude-code/docs/architecture.md +166 -0
  126. basic_memory-0.21.6/plugins/claude-code/docs/getting-started.md +138 -0
  127. basic_memory-0.21.6/plugins/claude-code/docs/why-combine-memory.md +102 -0
  128. basic_memory-0.21.6/plugins/claude-code/hooks/hooks.json +29 -0
  129. basic_memory-0.21.6/plugins/claude-code/hooks/pre-compact.sh +232 -0
  130. basic_memory-0.21.6/plugins/claude-code/hooks/session-start.sh +293 -0
  131. basic_memory-0.21.6/plugins/claude-code/justfile +21 -0
  132. basic_memory-0.21.6/plugins/claude-code/output-styles/basic-memory.md +55 -0
  133. basic_memory-0.21.6/plugins/claude-code/schemas/decision.md +44 -0
  134. basic_memory-0.21.6/plugins/claude-code/schemas/session.md +48 -0
  135. basic_memory-0.21.6/plugins/claude-code/schemas/task.md +39 -0
  136. basic_memory-0.21.6/plugins/claude-code/settings.example.json +17 -0
  137. basic_memory-0.21.6/plugins/claude-code/skills/bm-remember/SKILL.md +51 -0
  138. basic_memory-0.21.6/plugins/claude-code/skills/bm-setup/SKILL.md +226 -0
  139. basic_memory-0.21.6/plugins/claude-code/skills/bm-share/SKILL.md +61 -0
  140. basic_memory-0.21.6/plugins/claude-code/skills/bm-status/SKILL.md +62 -0
  141. basic_memory-0.21.6/plugins/codex/.codex-plugin/plugin.json +46 -0
  142. basic_memory-0.21.6/plugins/codex/.mcp.json +11 -0
  143. basic_memory-0.21.6/plugins/codex/DEVELOPMENT.md +80 -0
  144. basic_memory-0.21.6/plugins/codex/README.md +93 -0
  145. basic_memory-0.21.6/plugins/codex/assets/app-icon.png +0 -0
  146. basic_memory-0.21.6/plugins/codex/assets/logo.png +0 -0
  147. basic_memory-0.21.6/plugins/codex/hooks/hooks.json +31 -0
  148. basic_memory-0.21.6/plugins/codex/hooks/pre-compact.py +232 -0
  149. basic_memory-0.21.6/plugins/codex/hooks/pre-compact.sh +15 -0
  150. basic_memory-0.21.6/plugins/codex/hooks/session-start.py +237 -0
  151. basic_memory-0.21.6/plugins/codex/hooks/session-start.sh +15 -0
  152. basic_memory-0.21.6/plugins/codex/justfile +19 -0
  153. basic_memory-0.21.6/plugins/codex/schemas/codex-session.md +47 -0
  154. basic_memory-0.21.6/plugins/codex/schemas/decision.md +30 -0
  155. basic_memory-0.21.6/plugins/codex/schemas/task.md +30 -0
  156. basic_memory-0.21.6/plugins/codex/skills/bm-checkpoint/SKILL.md +62 -0
  157. basic_memory-0.21.6/plugins/codex/skills/bm-checkpoint/agents/openai.yaml +7 -0
  158. basic_memory-0.21.6/plugins/codex/skills/bm-checkpoint/assets/icon.svg +6 -0
  159. basic_memory-0.21.6/plugins/codex/skills/bm-decide/SKILL.md +35 -0
  160. basic_memory-0.21.6/plugins/codex/skills/bm-decide/agents/openai.yaml +7 -0
  161. basic_memory-0.21.6/plugins/codex/skills/bm-decide/assets/icon.svg +4 -0
  162. basic_memory-0.21.6/plugins/codex/skills/bm-orient/SKILL.md +36 -0
  163. basic_memory-0.21.6/plugins/codex/skills/bm-orient/agents/openai.yaml +7 -0
  164. basic_memory-0.21.6/plugins/codex/skills/bm-orient/assets/icon.svg +5 -0
  165. basic_memory-0.21.6/plugins/codex/skills/bm-remember/SKILL.md +31 -0
  166. basic_memory-0.21.6/plugins/codex/skills/bm-remember/agents/openai.yaml +7 -0
  167. basic_memory-0.21.6/plugins/codex/skills/bm-remember/assets/icon.svg +5 -0
  168. basic_memory-0.21.6/plugins/codex/skills/bm-setup/SKILL.md +101 -0
  169. basic_memory-0.21.6/plugins/codex/skills/bm-setup/agents/openai.yaml +7 -0
  170. basic_memory-0.21.6/plugins/codex/skills/bm-setup/assets/icon.svg +11 -0
  171. basic_memory-0.21.6/plugins/codex/skills/bm-share/SKILL.md +38 -0
  172. basic_memory-0.21.6/plugins/codex/skills/bm-share/agents/openai.yaml +7 -0
  173. basic_memory-0.21.6/plugins/codex/skills/bm-share/assets/icon.svg +7 -0
  174. basic_memory-0.21.6/plugins/codex/skills/bm-status/SKILL.md +50 -0
  175. basic_memory-0.21.6/plugins/codex/skills/bm-status/agents/openai.yaml +7 -0
  176. basic_memory-0.21.6/plugins/codex/skills/bm-status/assets/icon.svg +4 -0
  177. basic_memory-0.21.6/scripts/update_versions.py +185 -0
  178. basic_memory-0.21.6/scripts/validate_claude_plugin.py +135 -0
  179. basic_memory-0.21.6/scripts/validate_codex_plugin.py +144 -0
  180. basic_memory-0.21.6/scripts/validate_hermes_plugin.py +60 -0
  181. basic_memory-0.21.6/scripts/validate_skills.py +72 -0
  182. basic_memory-0.21.6/server.json +31 -0
  183. basic_memory-0.21.6/skills/AGENTS.md +1 -0
  184. basic_memory-0.21.6/skills/CLAUDE.md +64 -0
  185. basic_memory-0.21.6/skills/DEVELOPMENT.md +83 -0
  186. basic_memory-0.21.6/skills/README.md +134 -0
  187. basic_memory-0.21.6/skills/justfile +14 -0
  188. basic_memory-0.21.6/skills/memory-capture/SKILL.md +275 -0
  189. basic_memory-0.21.6/skills/memory-ci-capture/SKILL.md +56 -0
  190. basic_memory-0.21.6/skills/memory-continue/SKILL.md +148 -0
  191. basic_memory-0.21.6/skills/memory-curate/SKILL.md +243 -0
  192. basic_memory-0.21.6/skills/memory-defrag/SKILL.md +86 -0
  193. basic_memory-0.21.6/skills/memory-ingest/SKILL.md +309 -0
  194. basic_memory-0.21.6/skills/memory-lifecycle/SKILL.md +182 -0
  195. basic_memory-0.21.6/skills/memory-literary-analysis/SKILL.md +511 -0
  196. basic_memory-0.21.6/skills/memory-metadata-search/SKILL.md +184 -0
  197. basic_memory-0.21.6/skills/memory-notes/SKILL.md +342 -0
  198. basic_memory-0.21.6/skills/memory-reflect/SKILL.md +73 -0
  199. basic_memory-0.21.6/skills/memory-research/SKILL.md +235 -0
  200. basic_memory-0.21.6/skills/memory-schema/SKILL.md +237 -0
  201. basic_memory-0.21.6/skills/memory-tasks/SKILL.md +166 -0
  202. basic_memory-0.21.6/skills/skills-lock.json +50 -0
  203. basic_memory-0.21.6/src/basic_memory/__init__.py +7 -0
  204. basic_memory-0.21.6/src/basic_memory/api/v2/routers/knowledge_router.py +716 -0
  205. basic_memory-0.21.6/src/basic_memory/ci/README.md +225 -0
  206. basic_memory-0.21.6/src/basic_memory/ci/__init__.py +1 -0
  207. basic_memory-0.21.6/src/basic_memory/ci/project_updates.py +984 -0
  208. basic_memory-0.21.6/src/basic_memory/cli/commands/__init__.py +30 -0
  209. basic_memory-0.21.6/src/basic_memory/cli/commands/ci.py +437 -0
  210. basic_memory-0.21.6/src/basic_memory/cli/commands/cloud/core_commands.py +316 -0
  211. basic_memory-0.21.6/src/basic_memory/cli/commands/cloud/project_sync.py +403 -0
  212. basic_memory-0.21.6/src/basic_memory/cli/commands/cloud/workspace.py +123 -0
  213. basic_memory-0.21.6/src/basic_memory/cli/commands/project.py +1518 -0
  214. basic_memory-0.21.6/src/basic_memory/cli/main.py +40 -0
  215. basic_memory-0.21.6/src/basic_memory/mcp/async_client.py +456 -0
  216. basic_memory-0.21.6/src/basic_memory/mcp/tools/project_management.py +727 -0
  217. basic_memory-0.21.6/src/basic_memory/mcp/tools/write_note.py +365 -0
  218. basic_memory-0.21.6/src/basic_memory/repository/project_repository.py +277 -0
  219. basic_memory-0.21.6/src/basic_memory/repository/sqlite_search_repository.py +1089 -0
  220. basic_memory-0.21.6/src/basic_memory/schemas/v2/entity.py +186 -0
  221. basic_memory-0.21.6/src/basic_memory/services/search_service.py +983 -0
  222. basic_memory-0.21.6/test-int/mcp/test_workspace_permalink_integration.py +509 -0
  223. basic_memory-0.21.6/tests/api/v2/test_knowledge_router.py +957 -0
  224. basic_memory-0.21.6/tests/ci/test_project_updates.py +718 -0
  225. basic_memory-0.21.6/tests/cli/cloud/test_project_sync_command.py +366 -0
  226. basic_memory-0.21.6/tests/cli/test_ci_commands.py +524 -0
  227. basic_memory-0.21.6/tests/cli/test_cloud_authentication.py +303 -0
  228. basic_memory-0.21.6/tests/cli/test_project_list_and_ls.py +1068 -0
  229. basic_memory-0.21.6/tests/cli/test_workspace_commands.py +255 -0
  230. basic_memory-0.21.6/tests/mcp/clients/__init__.py +0 -0
  231. basic_memory-0.21.6/tests/mcp/test_async_client_modes.py +620 -0
  232. basic_memory-0.21.6/tests/mcp/test_tool_project_management.py +1222 -0
  233. basic_memory-0.21.6/tests/mcp/tools/test_search_notes_multi_project.py +366 -0
  234. basic_memory-0.21.6/tests/services/test_semantic_search.py +442 -0
  235. basic_memory-0.21.6/tests/test_codex_plugin_package.py +57 -0
  236. basic_memory-0.21.6/tests/test_pr_title_workflow.py +18 -0
  237. basic_memory-0.21.6/tests/test_update_versions.py +147 -0
  238. basic_memory-0.21.4/.claude/commands/release/release.md +0 -199
  239. basic_memory-0.21.4/.github/workflows/pr-title.yml +0 -44
  240. basic_memory-0.21.4/.github/workflows/release.yml +0 -125
  241. basic_memory-0.21.4/.gitignore +0 -60
  242. basic_memory-0.21.4/AGENTS.md +0 -486
  243. basic_memory-0.21.4/CHANGELOG.md +0 -2811
  244. basic_memory-0.21.4/PKG-INFO +0 -608
  245. basic_memory-0.21.4/README.md +0 -555
  246. basic_memory-0.21.4/justfile +0 -416
  247. basic_memory-0.21.4/server.json +0 -25
  248. basic_memory-0.21.4/src/basic_memory/__init__.py +0 -7
  249. basic_memory-0.21.4/src/basic_memory/api/v2/routers/knowledge_router.py +0 -705
  250. basic_memory-0.21.4/src/basic_memory/cli/commands/__init__.py +0 -29
  251. basic_memory-0.21.4/src/basic_memory/cli/commands/cloud/core_commands.py +0 -293
  252. basic_memory-0.21.4/src/basic_memory/cli/commands/cloud/project_sync.py +0 -343
  253. basic_memory-0.21.4/src/basic_memory/cli/commands/cloud/workspace.py +0 -118
  254. basic_memory-0.21.4/src/basic_memory/cli/commands/project.py +0 -1506
  255. basic_memory-0.21.4/src/basic_memory/cli/main.py +0 -39
  256. basic_memory-0.21.4/src/basic_memory/mcp/async_client.py +0 -268
  257. basic_memory-0.21.4/src/basic_memory/mcp/tools/project_management.py +0 -629
  258. basic_memory-0.21.4/src/basic_memory/mcp/tools/write_note.py +0 -350
  259. basic_memory-0.21.4/src/basic_memory/repository/project_repository.py +0 -278
  260. basic_memory-0.21.4/src/basic_memory/repository/sqlite_search_repository.py +0 -1070
  261. basic_memory-0.21.4/src/basic_memory/schemas/v2/entity.py +0 -185
  262. basic_memory-0.21.4/src/basic_memory/services/search_service.py +0 -979
  263. basic_memory-0.21.4/test-int/mcp/test_workspace_permalink_integration.py +0 -463
  264. basic_memory-0.21.4/tests/api/v2/test_knowledge_router.py +0 -909
  265. basic_memory-0.21.4/tests/cli/cloud/test_project_sync_command.py +0 -92
  266. basic_memory-0.21.4/tests/cli/test_cloud_authentication.py +0 -266
  267. basic_memory-0.21.4/tests/cli/test_project_list_and_ls.py +0 -1054
  268. basic_memory-0.21.4/tests/cli/test_workspace_commands.py +0 -251
  269. basic_memory-0.21.4/tests/mcp/test_async_client_modes.py +0 -388
  270. basic_memory-0.21.4/tests/mcp/test_tool_project_management.py +0 -984
  271. basic_memory-0.21.4/tests/mcp/tools/test_search_notes_multi_project.py +0 -368
  272. basic_memory-0.21.4/tests/services/test_semantic_search.py +0 -348
  273. basic_memory-0.21.4/ui/tool-ui-react/.gitignore +0 -2
  274. basic_memory-0.21.4/ui/tool-ui-react/build.mjs +0 -85
  275. basic_memory-0.21.4/ui/tool-ui-react/package-lock.json +0 -2507
  276. basic_memory-0.21.4/ui/tool-ui-react/package.json +0 -25
  277. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/_adapter.tsx +0 -44
  278. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/data-table.tsx +0 -869
  279. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/error-boundary.tsx +0 -19
  280. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/formatters.tsx +0 -453
  281. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/index.tsx +0 -31
  282. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/schema.ts +0 -234
  283. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/types.ts +0 -285
  284. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/data-table/utilities.ts +0 -186
  285. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/_adapter.tsx +0 -12
  286. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/action-buttons.tsx +0 -100
  287. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/actions-config.ts +0 -48
  288. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/error-boundary.tsx +0 -51
  289. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/index.ts +0 -8
  290. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/media/aspect-ratio.ts +0 -27
  291. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/media/format-utils.ts +0 -35
  292. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/media/index.ts +0 -15
  293. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/media/overlay-gradient.ts +0 -25
  294. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/media/sanitize-href.ts +0 -18
  295. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/parse.ts +0 -37
  296. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/schema.ts +0 -122
  297. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/use-action-buttons.tsx +0 -128
  298. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/use-copy-to-clipboard.ts +0 -63
  299. basic_memory-0.21.4/ui/tool-ui-react/src/components/tool-ui/shared/utils.ts +0 -29
  300. basic_memory-0.21.4/ui/tool-ui-react/src/components/ui/accordion.tsx +0 -76
  301. basic_memory-0.21.4/ui/tool-ui-react/src/components/ui/badge.tsx +0 -48
  302. basic_memory-0.21.4/ui/tool-ui-react/src/components/ui/button.tsx +0 -63
  303. basic_memory-0.21.4/ui/tool-ui-react/src/components/ui/dropdown-menu.tsx +0 -257
  304. basic_memory-0.21.4/ui/tool-ui-react/src/components/ui/table.tsx +0 -90
  305. basic_memory-0.21.4/ui/tool-ui-react/src/components/ui/tooltip.tsx +0 -61
  306. basic_memory-0.21.4/ui/tool-ui-react/src/note-preview.tsx +0 -122
  307. basic_memory-0.21.4/ui/tool-ui-react/src/search-results.tsx +0 -175
  308. basic_memory-0.21.4/ui/tool-ui-react/src/styles.css +0 -74
  309. basic_memory-0.21.4/ui/tool-ui-react/tailwind.config.js +0 -8
  310. {basic_memory-0.21.4 → basic_memory-0.21.6}/.agents/skills/instrumentation/SKILL.md +0 -0
  311. {basic_memory-0.21.4 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/javascript/frameworks.md +0 -0
  312. {basic_memory-0.21.4 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/javascript/patterns.md +0 -0
  313. {basic_memory-0.21.4 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/python/integrations.md +0 -0
  314. {basic_memory-0.21.4 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/python/logging-patterns.md +0 -0
  315. {basic_memory-0.21.4 → basic_memory-0.21.6}/.agents/skills/instrumentation/references/rust/patterns.md +0 -0
  316. {basic_memory-0.21.4 → basic_memory-0.21.6}/.claude/commands/release/beta.md +0 -0
  317. {basic_memory-0.21.4 → basic_memory-0.21.6}/.claude/commands/release/changelog.md +0 -0
  318. {basic_memory-0.21.4 → basic_memory-0.21.6}/.claude/commands/release/release-check.md +0 -0
  319. {basic_memory-0.21.4 → basic_memory-0.21.6}/.claude/commands/spec.md +0 -0
  320. {basic_memory-0.21.4 → basic_memory-0.21.6}/.claude/commands/test-live.md +0 -0
  321. {basic_memory-0.21.4 → basic_memory-0.21.6}/.claude/settings.json +0 -0
  322. {basic_memory-0.21.4 → basic_memory-0.21.6}/.dockerignore +0 -0
  323. {basic_memory-0.21.4 → basic_memory-0.21.6}/.env.example +0 -0
  324. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  325. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  326. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  327. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  328. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/dependabot.yml +0 -0
  329. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/workflows/claude-code-review.yml +0 -0
  330. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/workflows/claude-issue-triage.yml +0 -0
  331. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/workflows/claude.yml +0 -0
  332. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/workflows/dev-release.yml +0 -0
  333. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/workflows/docker.yml +0 -0
  334. {basic_memory-0.21.4 → basic_memory-0.21.6}/.github/workflows/test.yml +0 -0
  335. {basic_memory-0.21.4 → basic_memory-0.21.6}/.python-version +0 -0
  336. {basic_memory-0.21.4 → basic_memory-0.21.6}/CITATION.cff +0 -0
  337. {basic_memory-0.21.4 → basic_memory-0.21.6}/CLA.md +0 -0
  338. {basic_memory-0.21.4 → basic_memory-0.21.6}/CLAUDE.md +0 -0
  339. {basic_memory-0.21.4 → basic_memory-0.21.6}/CODE_OF_CONDUCT.md +0 -0
  340. {basic_memory-0.21.4 → basic_memory-0.21.6}/CONTRIBUTING.md +0 -0
  341. {basic_memory-0.21.4 → basic_memory-0.21.6}/Dockerfile +0 -0
  342. {basic_memory-0.21.4 → basic_memory-0.21.6}/LICENSE +0 -0
  343. {basic_memory-0.21.4 → basic_memory-0.21.6}/NOTE-FORMAT.md +0 -0
  344. {basic_memory-0.21.4 → basic_memory-0.21.6}/SECURITY.md +0 -0
  345. {basic_memory-0.21.4 → basic_memory-0.21.6}/docker-compose-postgres.yml +0 -0
  346. {basic_memory-0.21.4 → basic_memory-0.21.6}/docker-compose.yml +0 -0
  347. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/ARCHITECTURE.md +0 -0
  348. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/Docker.md +0 -0
  349. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/NOTE-FORMAT.md +0 -0
  350. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/SPEC-PER-PROJECT-ROUTING.md +0 -0
  351. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/ai-assistant-guide-extended.md +0 -0
  352. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/character-handling.md +0 -0
  353. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/cloud-cli.md +0 -0
  354. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/cloud-semantic-search-value.md +0 -0
  355. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/logfire-instrumentation-strategy.md +0 -0
  356. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/mcp-ui-bakeoff-instructions.md +0 -0
  357. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/metadata-search.md +0 -0
  358. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/post-v0.18.0-test-plan.md +0 -0
  359. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/releases/v0.19.0.md +0 -0
  360. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/semantic-search-test-log.md +0 -0
  361. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/semantic-search.md +0 -0
  362. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/specs/SPEC-LOCAL-PLUS-PUBLISH.md +0 -0
  363. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/specs/SPEC-SCHEMA-IMPL.md +0 -0
  364. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/specs/SPEC-SCHEMA.md +0 -0
  365. {basic_memory-0.21.4 → basic_memory-0.21.6}/docs/testing-coverage.md +0 -0
  366. {basic_memory-0.21.4/test-int/semantic → basic_memory-0.21.6/integrations/hermes/tests}/__init__.py +0 -0
  367. {basic_memory-0.21.4 → basic_memory-0.21.6}/llms-install.md +0 -0
  368. {basic_memory-0.21.4 → basic_memory-0.21.6}/pyproject.toml +0 -0
  369. {basic_memory-0.21.4 → basic_memory-0.21.6}/skills-lock.json +0 -0
  370. {basic_memory-0.21.4 → basic_memory-0.21.6}/smithery.yaml +0 -0
  371. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/alembic.ini +0 -0
  372. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/env.py +0 -0
  373. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/migrations.py +0 -0
  374. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/script.py.mako +0 -0
  375. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
  376. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  377. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
  378. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
  379. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
  380. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
  381. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
  382. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
  383. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
  384. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
  385. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
  386. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/d7e8f9a0b1c2_add_structured_metadata_indexes.py +0 -0
  387. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
  388. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
  389. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
  390. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/h1b2c3d4e5f6_add_postgres_vector_search_tables.py +0 -0
  391. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/i2c3d4e5f6g7_auto_backfill_semantic_embeddings.py +0 -0
  392. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/j3d4e5f6g7h8_rename_entity_type_to_note_type.py +0 -0
  393. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/k4e5f6g7h8i9_add_created_by_and_last_updated_by_to_entity.py +0 -0
  394. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/l5g6h7i8j9k0_add_note_content_table.py +0 -0
  395. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/m6h7i8j9k0l1_add_vector_sync_fingerprints.py +0 -0
  396. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/alembic/versions/n7i8j9k0l1m2_cleanup_sqlite_search_orphans.py +0 -0
  397. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/__init__.py +0 -0
  398. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/app.py +0 -0
  399. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/container.py +0 -0
  400. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/template_loader.py +0 -0
  401. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/__init__.py +0 -0
  402. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/__init__.py +0 -0
  403. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
  404. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
  405. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
  406. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/project_router.py +0 -0
  407. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
  408. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
  409. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/schema_router.py +0 -0
  410. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/routers/search_router.py +0 -0
  411. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/api/v2/utils.py +0 -0
  412. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/__init__.py +0 -0
  413. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/analytics.py +0 -0
  414. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/app.py +0 -0
  415. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/auth.py +0 -0
  416. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/auto_update.py +0 -0
  417. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
  418. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
  419. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
  420. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
  421. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -0
  422. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
  423. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
  424. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/restore.py +0 -0
  425. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/schemas.py +0 -0
  426. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/snapshot.py +0 -0
  427. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
  428. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
  429. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/command_utils.py +0 -0
  430. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/db.py +0 -0
  431. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/doctor.py +0 -0
  432. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/format.py +0 -0
  433. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
  434. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
  435. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
  436. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
  437. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/mcp.py +0 -0
  438. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/orphans.py +0 -0
  439. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/routing.py +0 -0
  440. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/schema.py +0 -0
  441. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/status.py +0 -0
  442. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/tool.py +0 -0
  443. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/commands/update.py +0 -0
  444. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/container.py +0 -0
  445. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/cli/promo.py +0 -0
  446. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/config.py +0 -0
  447. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/db.py +0 -0
  448. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/__init__.py +0 -0
  449. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/config.py +0 -0
  450. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/db.py +0 -0
  451. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/importers.py +0 -0
  452. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/projects.py +0 -0
  453. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/repositories.py +0 -0
  454. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps/services.py +0 -0
  455. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/deps.py +0 -0
  456. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/file_utils.py +0 -0
  457. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/ignore_utils.py +0 -0
  458. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/__init__.py +0 -0
  459. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/base.py +0 -0
  460. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/chatgpt_importer.py +0 -0
  461. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
  462. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/claude_projects_importer.py +0 -0
  463. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/memory_json_importer.py +0 -0
  464. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/importers/utils.py +0 -0
  465. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/indexing/__init__.py +0 -0
  466. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/indexing/batch_indexer.py +0 -0
  467. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/indexing/batching.py +0 -0
  468. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/indexing/models.py +0 -0
  469. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/markdown/__init__.py +0 -0
  470. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/markdown/entity_parser.py +0 -0
  471. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/markdown/markdown_processor.py +0 -0
  472. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/markdown/plugins.py +0 -0
  473. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/markdown/schemas.py +0 -0
  474. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/markdown/utils.py +0 -0
  475. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/__init__.py +0 -0
  476. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/__init__.py +0 -0
  477. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/directory.py +0 -0
  478. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/knowledge.py +0 -0
  479. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/memory.py +0 -0
  480. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/project.py +0 -0
  481. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/resource.py +0 -0
  482. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/schema.py +0 -0
  483. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/clients/search.py +0 -0
  484. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/container.py +0 -0
  485. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/formatting.py +0 -0
  486. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/project_context.py +0 -0
  487. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/__init__.py +0 -0
  488. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
  489. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
  490. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
  491. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/search.py +0 -0
  492. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/prompts/utils.py +0 -0
  493. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/__init__.py +0 -0
  494. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
  495. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/cloud_info.md +0 -0
  496. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/project_info.py +0 -0
  497. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/release_notes.md +0 -0
  498. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/resources/ui.py +0 -0
  499. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/server.py +0 -0
  500. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/__init__.py +0 -0
  501. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/build_context.py +0 -0
  502. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/canvas.py +0 -0
  503. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
  504. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/cloud_info.py +0 -0
  505. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/delete_note.py +0 -0
  506. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/edit_note.py +0 -0
  507. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/list_directory.py +0 -0
  508. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/move_note.py +0 -0
  509. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/read_content.py +0 -0
  510. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/read_note.py +0 -0
  511. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
  512. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/release_notes.py +0 -0
  513. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/schema.py +0 -0
  514. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/search.py +0 -0
  515. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/ui_sdk.py +0 -0
  516. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/utils.py +0 -0
  517. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/view_note.py +0 -0
  518. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/tools/workspaces.py +0 -0
  519. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/__init__.py +0 -0
  520. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/note-preview-mcp-ui.html +0 -0
  521. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/note-preview-tool-ui.html +0 -0
  522. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/note-preview-vanilla.html +0 -0
  523. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/search-results-mcp-ui.html +0 -0
  524. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/search-results-tool-ui.html +0 -0
  525. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/html/search-results-vanilla.html +0 -0
  526. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/sdk.py +0 -0
  527. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/mcp/ui/templates.py +0 -0
  528. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/models/__init__.py +0 -0
  529. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/models/base.py +0 -0
  530. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/models/knowledge.py +0 -0
  531. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/models/project.py +0 -0
  532. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/models/search.py +0 -0
  533. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/project_resolver.py +0 -0
  534. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/__init__.py +0 -0
  535. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/embedding_provider.py +0 -0
  536. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/embedding_provider_factory.py +0 -0
  537. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/entity_repository.py +0 -0
  538. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/fastembed_provider.py +0 -0
  539. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/metadata_filters.py +0 -0
  540. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/note_content_repository.py +0 -0
  541. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/observation_repository.py +0 -0
  542. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/openai_provider.py +0 -0
  543. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/postgres_search_repository.py +0 -0
  544. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/project_info_repository.py +0 -0
  545. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/relation_repository.py +0 -0
  546. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/repository.py +0 -0
  547. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/search_index_row.py +0 -0
  548. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/search_repository.py +0 -0
  549. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/search_repository_base.py +0 -0
  550. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/repository/semantic_errors.py +0 -0
  551. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/runtime.py +0 -0
  552. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schema/__init__.py +0 -0
  553. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schema/diff.py +0 -0
  554. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schema/inference.py +0 -0
  555. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schema/parser.py +0 -0
  556. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schema/resolver.py +0 -0
  557. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schema/validator.py +0 -0
  558. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/__init__.py +0 -0
  559. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/base.py +0 -0
  560. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/cloud.py +0 -0
  561. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/delete.py +0 -0
  562. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/directory.py +0 -0
  563. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/importer.py +0 -0
  564. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/memory.py +0 -0
  565. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/project_info.py +0 -0
  566. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/prompt.py +0 -0
  567. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/request.py +0 -0
  568. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/response.py +0 -0
  569. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/schema.py +0 -0
  570. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/search.py +0 -0
  571. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/sync_report.py +0 -0
  572. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/v2/__init__.py +0 -0
  573. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/v2/graph.py +0 -0
  574. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/schemas/v2/resource.py +0 -0
  575. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/__init__.py +0 -0
  576. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/context_service.py +0 -0
  577. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/directory_service.py +0 -0
  578. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/entity_service.py +0 -0
  579. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/exceptions.py +0 -0
  580. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/file_service.py +0 -0
  581. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/initialization.py +0 -0
  582. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/link_resolver.py +0 -0
  583. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/project_service.py +0 -0
  584. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/services/service.py +0 -0
  585. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/sync/__init__.py +0 -0
  586. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/sync/background_sync.py +0 -0
  587. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/sync/coordinator.py +0 -0
  588. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/sync/sync_service.py +0 -0
  589. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/sync/watch_service.py +0 -0
  590. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/telemetry.py +0 -0
  591. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
  592. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/templates/prompts/search.hbs +0 -0
  593. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/utils.py +0 -0
  594. {basic_memory-0.21.4 → basic_memory-0.21.6}/src/basic_memory/workspace_context.py +0 -0
  595. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/BENCHMARKS.md +0 -0
  596. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_cli_tool_edit_note_integration.py +0 -0
  597. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_cli_tool_json_failure_integration.py +0 -0
  598. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_cli_tool_json_integration.py +0 -0
  599. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_project_commands_integration.py +0 -0
  600. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_routing_integration.py +0 -0
  601. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_search_notes_meta_integration.py +0 -0
  602. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/cli/test_version_integration.py +0 -0
  603. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/compare_search_benchmarks.py +0 -0
  604. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/conftest.py +0 -0
  605. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-01.md +0 -0
  606. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-02.md +0 -0
  607. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-03.md +0 -0
  608. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-04.md +0 -0
  609. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-05.md +0 -0
  610. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-06.md +0 -0
  611. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-07.md +0 -0
  612. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-08.md +0 -0
  613. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-09.md +0 -0
  614. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-10.md +0 -0
  615. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-11.md +0 -0
  616. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-12.md +0 -0
  617. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-13.md +0 -0
  618. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-14.md +0 -0
  619. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-15.md +0 -0
  620. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-16.md +0 -0
  621. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-17.md +0 -0
  622. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-18.md +0 -0
  623. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-19.md +0 -0
  624. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/people/drift-person-20.md +0 -0
  625. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/drift/schema/Person.md +0 -0
  626. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/array-single.md +0 -0
  627. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/empty-note.md +0 -0
  628. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/explicit-overrides-type.md +0 -0
  629. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/inline-and-type.md +0 -0
  630. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/no-frontmatter.md +0 -0
  631. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/relation-only.md +0 -0
  632. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/type-no-schema.md +0 -0
  633. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/edge-cases/unicode-fields.md +0 -0
  634. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/ada-lovelace.md +0 -0
  635. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/alan-turing.md +0 -0
  636. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/anders-hejlsberg.md +0 -0
  637. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/andrej-karpathy.md +0 -0
  638. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/barbara-liskov.md +0 -0
  639. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/bjarne-stroustrup.md +0 -0
  640. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/brendan-eich.md +0 -0
  641. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/claude-shannon.md +0 -0
  642. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/dennis-ritchie.md +0 -0
  643. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/dijkstra.md +0 -0
  644. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/donald-knuth.md +0 -0
  645. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/fei-fei-li.md +0 -0
  646. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/geoffrey-hinton.md +0 -0
  647. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/grace-hopper.md +0 -0
  648. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/guido-van-rossum.md +0 -0
  649. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/james-gosling.md +0 -0
  650. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/john-carmack.md +0 -0
  651. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/ken-thompson.md +0 -0
  652. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/larry-page.md +0 -0
  653. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/leslie-lamport.md +0 -0
  654. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/linus-torvalds.md +0 -0
  655. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/margaret-hamilton.md +0 -0
  656. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/rasmus-lerdorf.md +0 -0
  657. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/richard-stallman.md +0 -0
  658. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/rob-pike.md +0 -0
  659. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/satoshi-nakamoto.md +0 -0
  660. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/tim-berners-lee.md +0 -0
  661. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/vint-cerf.md +0 -0
  662. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/yann-lecun.md +0 -0
  663. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/inference/people/yukihiro-matsumoto.md +0 -0
  664. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/Book.md +0 -0
  665. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/Meeting.md +0 -0
  666. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/Person.md +0 -0
  667. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/SoftwareProject.md +0 -0
  668. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/schemas/StrictSchema.md +0 -0
  669. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/basic-memory.md +0 -0
  670. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/explicit-ref-note.md +0 -0
  671. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/no-schema-note.md +0 -0
  672. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/paul-graham.md +0 -0
  673. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/rich-hickey.md +0 -0
  674. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/valid/standup-2024-01-15.md +0 -0
  675. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/extra-observations.md +0 -0
  676. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/missing-multiple.md +0 -0
  677. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/missing-required.md +0 -0
  678. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/fixtures/schema/warnings/wrong-enum-value.md +0 -0
  679. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_build_context_underscore.py +0 -0
  680. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_build_context_validation.py +0 -0
  681. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
  682. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_default_project_mode_integration.py +0 -0
  683. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_delete_directory_integration.py +0 -0
  684. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_delete_note_integration.py +0 -0
  685. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_edit_note_integration.py +0 -0
  686. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
  687. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_list_directory_integration.py +0 -0
  688. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_long_relation_type_integration.py +0 -0
  689. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_move_directory_integration.py +0 -0
  690. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_move_note_integration.py +0 -0
  691. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_output_format_json_integration.py +0 -0
  692. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_pagination_integration.py +0 -0
  693. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_param_aliases_integration.py +0 -0
  694. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_permalink_collision_integration.py +0 -0
  695. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_project_management_integration.py +0 -0
  696. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_project_state_sync_integration.py +0 -0
  697. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_read_content_integration.py +0 -0
  698. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_read_note_integration.py +0 -0
  699. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_search_integration.py +0 -0
  700. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
  701. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_smoke_integration.py +0 -0
  702. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_string_params_integration.py +0 -0
  703. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_ui_sdk_integration.py +0 -0
  704. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/mcp/test_write_note_integration.py +0 -0
  705. {basic_memory-0.21.4/tests/markdown → basic_memory-0.21.6/test-int/semantic}/__init__.py +0 -0
  706. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/conftest.py +0 -0
  707. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/corpus.py +0 -0
  708. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/metrics.py +0 -0
  709. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/report.py +0 -0
  710. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/test_multiterm_semantic_queries.py +0 -0
  711. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/test_search_diagnostics.py +0 -0
  712. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/test_semantic_coverage.py +0 -0
  713. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/semantic/test_semantic_quality.py +0 -0
  714. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_db_wal_mode.py +0 -0
  715. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_disable_permalinks_integration.py +0 -0
  716. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/__init__.py +0 -0
  717. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/conftest.py +0 -0
  718. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/helpers.py +0 -0
  719. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/test_diff_integration.py +0 -0
  720. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/test_inference_integration.py +0 -0
  721. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/test_parser_integration.py +0 -0
  722. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_schema/test_validator_integration.py +0 -0
  723. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_search_performance_benchmark.py +0 -0
  724. {basic_memory-0.21.4 → basic_memory-0.21.6}/test-int/test_sync_batching_integration.py +0 -0
  725. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/Non-MarkdownFileSupport.pdf +0 -0
  726. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/README.md +0 -0
  727. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/Screenshot.png +0 -0
  728. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/__init__.py +0 -0
  729. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/__init__.py +0 -0
  730. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/conftest.py +0 -0
  731. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_directory_router.py +0 -0
  732. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_importer_router.py +0 -0
  733. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_knowledge_router_telemetry.py +0 -0
  734. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_memory_hydration.py +0 -0
  735. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_memory_router.py +0 -0
  736. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_orphan_router.py +0 -0
  737. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_project_router.py +0 -0
  738. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_prompt_router.py +0 -0
  739. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_resource_router.py +0 -0
  740. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_schema_router.py +0 -0
  741. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_search_hydration.py +0 -0
  742. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_search_router.py +0 -0
  743. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_search_router_telemetry.py +0 -0
  744. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_utils_telemetry.py +0 -0
  745. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/api/v2/test_workspace_permalink_headers.py +0 -0
  746. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
  747. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
  748. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/cloud/test_rclone_installer.py +0 -0
  749. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/cloud/test_upload_command_routing.py +0 -0
  750. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/cloud/test_upload_path.py +0 -0
  751. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/conftest.py +0 -0
  752. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_analytics.py +0 -0
  753. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_auth_cli_auth.py +0 -0
  754. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_auto_update.py +0 -0
  755. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_container.py +0 -0
  756. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_exit.py +0 -0
  757. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_schema.py +0 -0
  758. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_telemetry.py +0 -0
  759. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_tool_exit.py +0 -0
  760. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_tool_json_output.py +0 -0
  761. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cli_tools.py +0 -0
  762. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cloud_promo.py +0 -0
  763. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_cloud_status.py +0 -0
  764. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_db_reindex.py +0 -0
  765. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_db_reset_exit.py +0 -0
  766. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_db_reset_zombie_check.py +0 -0
  767. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_ignore_utils.py +0 -0
  768. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_import_chatgpt.py +0 -0
  769. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_import_claude_conversations.py +0 -0
  770. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_import_claude_projects.py +0 -0
  771. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_import_memory_json.py +0 -0
  772. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_json_output.py +0 -0
  773. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_orphans_command.py +0 -0
  774. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_project_add_with_local_path.py +0 -0
  775. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_project_info_cloud_status.py +0 -0
  776. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_project_info_errors.py +0 -0
  777. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_project_set_cloud_local.py +0 -0
  778. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_restore_commands.py +0 -0
  779. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_routing.py +0 -0
  780. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_snapshot_commands.py +0 -0
  781. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_update_command.py +0 -0
  782. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/cli/test_upload.py +0 -0
  783. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/conftest.py +0 -0
  784. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
  785. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/deps/test_task_failure_callback.py +0 -0
  786. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/importers/test_conversation_indexing.py +0 -0
  787. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/importers/test_importer_base.py +0 -0
  788. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/importers/test_importer_utils.py +0 -0
  789. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/indexing/test_batch_indexer.py +0 -0
  790. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/indexing/test_batching.py +0 -0
  791. {basic_memory-0.21.4/tests/mcp/clients → basic_memory-0.21.6/tests/markdown}/__init__.py +0 -0
  792. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
  793. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_entity_parser.py +0 -0
  794. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_entity_parser_error_handling.py +0 -0
  795. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_markdown_plugins.py +0 -0
  796. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_markdown_processor.py +0 -0
  797. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_markdown_utils.py +0 -0
  798. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_observation_edge_cases.py +0 -0
  799. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_parser_edge_cases.py +0 -0
  800. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_relation_edge_cases.py +0 -0
  801. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/markdown/test_task_detection.py +0 -0
  802. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/clients/test_clients.py +0 -0
  803. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/conftest.py +0 -0
  804. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_async_client_force_local.py +0 -0
  805. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_async_client_telemetry.py +0 -0
  806. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_client_schema.py +0 -0
  807. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_client_telemetry.py +0 -0
  808. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_mcp_container.py +0 -0
  809. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
  810. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
  811. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_project_context.py +0 -0
  812. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_project_context_telemetry.py +0 -0
  813. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_prompt_tool_delegation.py +0 -0
  814. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_prompts.py +0 -0
  815. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
  816. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_resources.py +0 -0
  817. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_server_lifespan_branches.py +0 -0
  818. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_server_telemetry.py +0 -0
  819. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_build_context.py +0 -0
  820. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_canvas.py +0 -0
  821. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_cloud_discovery.py +0 -0
  822. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_contracts.py +0 -0
  823. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_delete_note.py +0 -0
  824. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_edit_note.py +0 -0
  825. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_json_output_modes.py +0 -0
  826. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_list_directory.py +0 -0
  827. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_move_note.py +0 -0
  828. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_read_content.py +0 -0
  829. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_read_note.py +0 -0
  830. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_recent_activity.py +0 -0
  831. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_resource.py +0 -0
  832. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_schema.py +0 -0
  833. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_search.py +0 -0
  834. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_telemetry.py +0 -0
  835. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_utils.py +0 -0
  836. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_utils_cloud_auth.py +0 -0
  837. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_view_note.py +0 -0
  838. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_workspace_management.py +0 -0
  839. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_write_note.py +0 -0
  840. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
  841. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_tool_write_note_metadata.py +0 -0
  842. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_ui_resources.py +0 -0
  843. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_ui_sdk.py +0 -0
  844. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_ui_templates.py +0 -0
  845. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/test_workspace_permalink_resolution.py +0 -0
  846. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
  847. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_distance_to_similarity.py +0 -0
  848. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_entity_repository.py +0 -0
  849. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_entity_repository_upsert.py +0 -0
  850. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_entity_upsert_issue_187.py +0 -0
  851. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_fastembed_provider.py +0 -0
  852. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_hybrid_fusion.py +0 -0
  853. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_metadata_filters.py +0 -0
  854. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_metadata_filters_edge_cases.py +0 -0
  855. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_note_content_repository.py +0 -0
  856. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_observation_repository.py +0 -0
  857. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_openai_provider.py +0 -0
  858. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_postgres_search_repository.py +0 -0
  859. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_postgres_search_repository_unit.py +0 -0
  860. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_project_info_repository.py +0 -0
  861. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_project_repository.py +0 -0
  862. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_relation_repository.py +0 -0
  863. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_repository.py +0 -0
  864. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_search_index_row.py +0 -0
  865. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_search_repository.py +0 -0
  866. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
  867. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_search_text_with_metadata_filters.py +0 -0
  868. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_semantic_search_base.py +0 -0
  869. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_sqlite_vector_search_repository.py +0 -0
  870. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_vector_pagination.py +0 -0
  871. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/repository/test_vector_threshold.py +0 -0
  872. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schema/__init__.py +0 -0
  873. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schema/test_diff.py +0 -0
  874. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schema/test_inference.py +0 -0
  875. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schema/test_parser.py +0 -0
  876. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schema/test_resolver.py +0 -0
  877. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schema/test_validator.py +0 -0
  878. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_base_timeframe_minimum.py +0 -0
  879. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_memory_serialization.py +0 -0
  880. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_memory_url.py +0 -0
  881. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_memory_url_validation.py +0 -0
  882. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
  883. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_schemas.py +0 -0
  884. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/schemas/test_search.py +0 -0
  885. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_context_service.py +0 -0
  886. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_directory_service.py +0 -0
  887. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_entity_service.py +0 -0
  888. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_entity_service_disable_permalinks.py +0 -0
  889. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_entity_service_prepare.py +0 -0
  890. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_entity_service_telemetry.py +0 -0
  891. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_entity_service_write_result.py +0 -0
  892. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_file_service.py +0 -0
  893. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_initialization.py +0 -0
  894. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
  895. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_link_resolver.py +0 -0
  896. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_project_removal_bug.py +0 -0
  897. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_project_service.py +0 -0
  898. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_project_service_cloud_info.py +0 -0
  899. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_project_service_embedding_status.py +0 -0
  900. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_project_service_operations.py +0 -0
  901. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_search_service.py +0 -0
  902. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_search_service_telemetry.py +0 -0
  903. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_task_scheduler_semantic.py +0 -0
  904. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/services/test_upsert_entity_optimization.py +0 -0
  905. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_character_conflicts.py +0 -0
  906. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_coordinator.py +0 -0
  907. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_one_markdown_file.py +0 -0
  908. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_service.py +0 -0
  909. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_service_batching.py +0 -0
  910. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_service_incremental.py +0 -0
  911. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_service_subprocess.py +0 -0
  912. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_service_telemetry.py +0 -0
  913. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_sync_wikilink_issue.py +0 -0
  914. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_tmp_files.py +0 -0
  915. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_watch_service.py +0 -0
  916. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_watch_service_atomic_adds.py +0 -0
  917. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_watch_service_edge_cases.py +0 -0
  918. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_watch_service_reload.py +0 -0
  919. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/sync/test_watch_service_stress.py +0 -0
  920. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_alembic_env.py +0 -0
  921. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_coerce.py +0 -0
  922. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_config.py +0 -0
  923. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_deps.py +0 -0
  924. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_note_content_migration.py +0 -0
  925. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_permalink_utils.py +0 -0
  926. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_production_cascade_delete.py +0 -0
  927. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_project_resolver.py +0 -0
  928. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_rclone_commands.py +0 -0
  929. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_runtime.py +0 -0
  930. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/test_telemetry.py +0 -0
  931. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_file_utils.py +0 -0
  932. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
  933. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_parse_tags.py +0 -0
  934. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_permalink_formatting.py +0 -0
  935. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_setup_logging.py +0 -0
  936. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_timezone_utils.py +0 -0
  937. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_utf8_handling.py +0 -0
  938. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_validate_project_path.py +0 -0
  939. {basic_memory-0.21.4 → basic_memory-0.21.6}/tests/utils/test_workspace_context.py +0 -0
  940. {basic_memory-0.21.4 → 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,7 @@
1
+ project: dev
2
+ workspace: basic-memory-7020de4e925843c68c9056c60d101d9e
3
+ deploy_workflows:
4
+ - Deploy Production
5
+ production_environments:
6
+ - production
7
+ note_folder: project-updates/github/{owner}/{repo}
@@ -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.