basic-memory 0.14.4__py3-none-any.whl → 0.15.1__py3-none-any.whl

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.

Potentially problematic release.


This version of basic-memory might be problematic. Click here for more details.

Files changed (84) hide show
  1. basic_memory/__init__.py +1 -1
  2. basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +5 -9
  3. basic_memory/api/app.py +10 -4
  4. basic_memory/api/routers/directory_router.py +23 -2
  5. basic_memory/api/routers/knowledge_router.py +25 -8
  6. basic_memory/api/routers/project_router.py +100 -4
  7. basic_memory/cli/app.py +9 -28
  8. basic_memory/cli/auth.py +277 -0
  9. basic_memory/cli/commands/cloud/__init__.py +5 -0
  10. basic_memory/cli/commands/cloud/api_client.py +112 -0
  11. basic_memory/cli/commands/cloud/bisync_commands.py +818 -0
  12. basic_memory/cli/commands/cloud/core_commands.py +288 -0
  13. basic_memory/cli/commands/cloud/mount_commands.py +295 -0
  14. basic_memory/cli/commands/cloud/rclone_config.py +288 -0
  15. basic_memory/cli/commands/cloud/rclone_installer.py +198 -0
  16. basic_memory/cli/commands/command_utils.py +43 -0
  17. basic_memory/cli/commands/import_memory_json.py +0 -4
  18. basic_memory/cli/commands/mcp.py +77 -60
  19. basic_memory/cli/commands/project.py +154 -152
  20. basic_memory/cli/commands/status.py +25 -22
  21. basic_memory/cli/commands/sync.py +45 -228
  22. basic_memory/cli/commands/tool.py +87 -16
  23. basic_memory/cli/main.py +1 -0
  24. basic_memory/config.py +131 -21
  25. basic_memory/db.py +104 -3
  26. basic_memory/deps.py +27 -8
  27. basic_memory/file_utils.py +37 -13
  28. basic_memory/ignore_utils.py +295 -0
  29. basic_memory/markdown/plugins.py +9 -7
  30. basic_memory/mcp/async_client.py +124 -14
  31. basic_memory/mcp/project_context.py +141 -0
  32. basic_memory/mcp/prompts/ai_assistant_guide.py +49 -4
  33. basic_memory/mcp/prompts/continue_conversation.py +17 -16
  34. basic_memory/mcp/prompts/recent_activity.py +116 -32
  35. basic_memory/mcp/prompts/search.py +13 -12
  36. basic_memory/mcp/prompts/utils.py +11 -4
  37. basic_memory/mcp/resources/ai_assistant_guide.md +211 -341
  38. basic_memory/mcp/resources/project_info.py +27 -11
  39. basic_memory/mcp/server.py +0 -37
  40. basic_memory/mcp/tools/__init__.py +5 -6
  41. basic_memory/mcp/tools/build_context.py +67 -56
  42. basic_memory/mcp/tools/canvas.py +38 -26
  43. basic_memory/mcp/tools/chatgpt_tools.py +187 -0
  44. basic_memory/mcp/tools/delete_note.py +81 -47
  45. basic_memory/mcp/tools/edit_note.py +155 -138
  46. basic_memory/mcp/tools/list_directory.py +112 -99
  47. basic_memory/mcp/tools/move_note.py +181 -101
  48. basic_memory/mcp/tools/project_management.py +113 -277
  49. basic_memory/mcp/tools/read_content.py +91 -74
  50. basic_memory/mcp/tools/read_note.py +152 -115
  51. basic_memory/mcp/tools/recent_activity.py +471 -68
  52. basic_memory/mcp/tools/search.py +105 -92
  53. basic_memory/mcp/tools/sync_status.py +136 -130
  54. basic_memory/mcp/tools/utils.py +4 -0
  55. basic_memory/mcp/tools/view_note.py +44 -33
  56. basic_memory/mcp/tools/write_note.py +151 -90
  57. basic_memory/models/knowledge.py +12 -6
  58. basic_memory/models/project.py +6 -2
  59. basic_memory/repository/entity_repository.py +89 -82
  60. basic_memory/repository/relation_repository.py +13 -0
  61. basic_memory/repository/repository.py +18 -5
  62. basic_memory/repository/search_repository.py +46 -2
  63. basic_memory/schemas/__init__.py +6 -0
  64. basic_memory/schemas/base.py +39 -11
  65. basic_memory/schemas/cloud.py +46 -0
  66. basic_memory/schemas/memory.py +90 -21
  67. basic_memory/schemas/project_info.py +9 -10
  68. basic_memory/schemas/sync_report.py +48 -0
  69. basic_memory/services/context_service.py +25 -11
  70. basic_memory/services/directory_service.py +124 -3
  71. basic_memory/services/entity_service.py +100 -48
  72. basic_memory/services/initialization.py +30 -11
  73. basic_memory/services/project_service.py +101 -24
  74. basic_memory/services/search_service.py +16 -8
  75. basic_memory/sync/sync_service.py +173 -34
  76. basic_memory/sync/watch_service.py +101 -40
  77. basic_memory/utils.py +14 -4
  78. {basic_memory-0.14.4.dist-info → basic_memory-0.15.1.dist-info}/METADATA +57 -9
  79. basic_memory-0.15.1.dist-info/RECORD +146 -0
  80. basic_memory/mcp/project_session.py +0 -120
  81. basic_memory-0.14.4.dist-info/RECORD +0 -133
  82. {basic_memory-0.14.4.dist-info → basic_memory-0.15.1.dist-info}/WHEEL +0 -0
  83. {basic_memory-0.14.4.dist-info → basic_memory-0.15.1.dist-info}/entry_points.txt +0 -0
  84. {basic_memory-0.14.4.dist-info → basic_memory-0.15.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-memory
3
- Version: 0.14.4
3
+ Version: 0.15.1
4
4
  Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
5
5
  Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
6
6
  Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
@@ -8,12 +8,13 @@ Project-URL: Documentation, https://github.com/basicmachines-co/basic-memory#rea
8
8
  Author-email: Basic Machines <hello@basic-machines.co>
9
9
  License: AGPL-3.0-or-later
10
10
  License-File: LICENSE
11
- Requires-Python: >=3.12.1
11
+ Requires-Python: >=3.12
12
+ Requires-Dist: aiofiles>=24.1.0
12
13
  Requires-Dist: aiosqlite>=0.20.0
13
14
  Requires-Dist: alembic>=1.14.1
14
15
  Requires-Dist: dateparser>=1.2.0
15
16
  Requires-Dist: fastapi[standard]>=0.115.8
16
- Requires-Dist: fastmcp==2.10.2
17
+ Requires-Dist: fastmcp>=2.10.2
17
18
  Requires-Dist: greenlet>=3.1.1
18
19
  Requires-Dist: icecream>=2.1.3
19
20
  Requires-Dist: loguru>=0.7.3
@@ -138,6 +139,9 @@ With Basic Memory, you can:
138
139
  - Keep everything local and under your control
139
140
  - Use familiar tools like Obsidian to view and edit notes
140
141
  - Build a personal knowledge base that grows over time
142
+ - Sync your knowledge to the cloud with bidirectional synchronization
143
+ - Authenticate and manage cloud projects with subscription validation
144
+ - Mount cloud storage for direct file access
141
145
 
142
146
  ## How It Works in Practice
143
147
 
@@ -384,14 +388,57 @@ basic-memory sync
384
388
  basic-memory sync --watch
385
389
  ```
386
390
 
387
- 3. In Claude Desktop, the LLM can now use these tools:
391
+ 3. Cloud features (optional, requires subscription):
388
392
 
393
+ ```bash
394
+ # Authenticate with cloud
395
+ basic-memory cloud login
396
+
397
+ # Bidirectional sync with cloud
398
+ basic-memory cloud sync
399
+
400
+ # Verify cloud integrity
401
+ basic-memory cloud check
402
+
403
+ # Mount cloud storage
404
+ basic-memory cloud mount
405
+ ```
406
+
407
+ 4. In Claude Desktop, the LLM can now use these tools:
408
+
409
+ **Content Management:**
389
410
  ```
390
411
  write_note(title, content, folder, tags) - Create or update notes
391
412
  read_note(identifier, page, page_size) - Read notes by title or permalink
413
+ read_content(path) - Read raw file content (text, images, binaries)
414
+ view_note(identifier) - View notes as formatted artifacts
415
+ edit_note(identifier, operation, content) - Edit notes incrementally
416
+ move_note(identifier, destination_path) - Move notes with database consistency
417
+ delete_note(identifier) - Delete notes from knowledge base
418
+ ```
419
+
420
+ **Knowledge Graph Navigation:**
421
+ ```
392
422
  build_context(url, depth, timeframe) - Navigate knowledge graph via memory:// URLs
393
- search(query, page, page_size) - Search across your knowledge base
394
423
  recent_activity(type, depth, timeframe) - Find recently updated information
424
+ list_directory(dir_name, depth) - Browse directory contents with filtering
425
+ ```
426
+
427
+ **Search & Discovery:**
428
+ ```
429
+ search(query, page, page_size) - Search across your knowledge base
430
+ ```
431
+
432
+ **Project Management:**
433
+ ```
434
+ list_memory_projects() - List all available projects
435
+ create_memory_project(project_name, project_path) - Create new projects
436
+ get_current_project() - Show current project stats
437
+ sync_status() - Check synchronization status
438
+ ```
439
+
440
+ **Visualization:**
441
+ ```
395
442
  canvas(nodes, edges, title, folder) - Generate knowledge visualizations
396
443
  ```
397
444
 
@@ -409,10 +456,11 @@ canvas(nodes, edges, title, folder) - Generate knowledge visualizations
409
456
 
410
457
  See the [Documentation](https://memory.basicmachines.co/) for more info, including:
411
458
 
412
- - [Complete User Guide](https://memory.basicmachines.co/docs/user-guide)
413
- - [CLI tools](https://memory.basicmachines.co/docs/cli-reference)
414
- - [Managing multiple Projects](https://memory.basicmachines.co/docs/cli-reference#project)
415
- - [Importing data from OpenAI/Claude Projects](https://memory.basicmachines.co/docs/cli-reference#import)
459
+ - [Complete User Guide](https://docs.basicmemory.com/user-guide/)
460
+ - [CLI tools](https://docs.basicmemory.com/guides/cli-reference/)
461
+ - [Cloud CLI and Sync](https://docs.basicmemory.com/guides/cloud-cli/)
462
+ - [Managing multiple Projects](https://docs.basicmemory.com/guides/cli-reference/#project)
463
+ - [Importing data from OpenAI/Claude Projects](https://docs.basicmemory.com/guides/cli-reference/#import)
416
464
 
417
465
  ## License
418
466
 
@@ -0,0 +1,146 @@
1
+ basic_memory/__init__.py,sha256=U6DAt7BGs4nUoZawTqHojv50O6CP7oVBXoEIkaeKGcw,256
2
+ basic_memory/config.py,sha256=bHpnPTTYxPR_dtT1j9mE4y5ucmsow4hn4MplES446bI,17446
3
+ basic_memory/db.py,sha256=Gc-d639GPVzUhNkzkfvOYYuEGeIX9YFqhu6kG_5tR1A,11711
4
+ basic_memory/deps.py,sha256=VpDqUsFHt6TIE4aR4U5jiq6R9sP0bZJGFMYEluuO7ac,13051
5
+ basic_memory/file_utils.py,sha256=5YUlj4qk9SqKmEDwcBeW08XyLW5y2b7bpUHX5xARLLc,9145
6
+ basic_memory/ignore_utils.py,sha256=o7cOfXHWerY-e05ZokHqKc5oujsHp4qhNQkX96xS3TY,7561
7
+ basic_memory/utils.py,sha256=NDlLbOme6_XzvaiorhWP0Q-HCzg038jDvfyCrTOKXTI,12875
8
+ basic_memory/alembic/alembic.ini,sha256=IEZsnF8CbbZnkwBr67LzKKNobHuzTaQNUvM8Psop5xc,3733
9
+ basic_memory/alembic/env.py,sha256=4kHZh-rfzVARy9ndvsuDPTBt6Hk3dZ2BwI030EppBrA,2838
10
+ basic_memory/alembic/migrations.py,sha256=lriHPXDdBLSNXEW3QTpU0SJKuVd1V-8NrVkpN3qfsUQ,718
11
+ basic_memory/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
12
+ basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py,sha256=lTbWlAnd1es7xU99DoJgfaRe1_Kte8TL98riqeKGV80,4363
13
+ basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py,sha256=k6xYTmYPM9Ros-7CA7BwZBKYwoK_gmVdC-2n8FAjdoE,1840
14
+ basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py,sha256=2CCY9ayjzbraYMcinqSsJi9Sc0nu2e-ehkUJus-sz34,4379
15
+ basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py,sha256=YErFkIpZdicvUil4ZtE6uxSpk5BZCTXZ_TfPE-MgSfo,4210
16
+ basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py,sha256=i42eQyO08RWf4exnH1q1PKw_EJFsHAG-T4pdLTMSpiA,1818
17
+ basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py,sha256=RsGymQzfRXV1LSNKiyi0lMilTxW1NgwS9jR67ye2apI,1428
18
+ basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py,sha256=kDavR9Qqx9wSu5P3qd4SZq_waIsDG1UMTg2SmDoktMU,3679
19
+ basic_memory/api/__init__.py,sha256=wCpj-21j1D0KzKl9Ql6unLBVFY0K1uGp_FeSZRKtqpk,72
20
+ basic_memory/api/app.py,sha256=2qNUMFutFJtIU32i167br83bvCLgPkGUQD0xaf3Cx2I,3194
21
+ basic_memory/api/template_loader.py,sha256=exbTeXyJRgyLFmSjNeroxjT7X2DWFm2X5qUVa3drbYM,8607
22
+ basic_memory/api/routers/__init__.py,sha256=REO5CKQ96o5vtGWACcsIxIpWybIUSeKXc83RWbWc8BQ,398
23
+ basic_memory/api/routers/directory_router.py,sha256=eKl9P6uYZnmA4J58ZPydbLkDPtiYH_84LcVFclkL364,2832
24
+ basic_memory/api/routers/importer_router.py,sha256=xFUCorkPWo8AF0ya0UrcLmXNf8CjPZdAqddQIH8PO-o,4513
25
+ basic_memory/api/routers/knowledge_router.py,sha256=A7IYVk4_ab0NbrEs7ZWC2KBApY-VsEO1X5X8UImjG7s,10284
26
+ basic_memory/api/routers/management_router.py,sha256=zbzilNzsYUbFbE2uFXRM33cDn9IbI-73y8C1-b-19O4,2730
27
+ basic_memory/api/routers/memory_router.py,sha256=a9Cnx3XgwSkO-2ABFzI3wM3PoMGxuyfJFFp7NfFZapc,3003
28
+ basic_memory/api/routers/project_router.py,sha256=ikgH1rtzXlHQ5Y1S0lMuN45TMT6laCJhLVoCA2jE5qE,11618
29
+ basic_memory/api/routers/prompt_router.py,sha256=4wxq6-NREgVJM8N9C0YsN1AAUDD8nkTCOzWyzSqTSFw,9948
30
+ basic_memory/api/routers/resource_router.py,sha256=Uko0RLea8DTXl0hPyGjay_YNyYE5852VrBXhlWs8YGc,8097
31
+ basic_memory/api/routers/search_router.py,sha256=GD62jlCQTiL_VNsdibi-b1f6H40KCWo9SX2Cl7YH4QU,1226
32
+ basic_memory/api/routers/utils.py,sha256=nmD1faJOHcnWQjbCanojUwA9xhinf764U8SUqjNXpXw,5159
33
+ basic_memory/cli/__init__.py,sha256=arcKLAWRDhPD7x5t80MlviZeYzwHZ0GZigyy3NKVoGk,33
34
+ basic_memory/cli/app.py,sha256=dMLoiCDJId2ic32Z7F4EiDPTYjb5j8jEwXwurn755_A,1392
35
+ basic_memory/cli/auth.py,sha256=VG9VgHjcXXfMRcJJxif40XhTB1PX2ECD1xEvWqQUWMI,10595
36
+ basic_memory/cli/main.py,sha256=h3oGzJn1wEqY0_nPzb1pDKkBzTPRDgjW4YOOmxHn0hU,476
37
+ basic_memory/cli/commands/__init__.py,sha256=3oojcC-Y-4RPqff9vtwWziT_T4uvBVicL0pSHNilVkU,393
38
+ basic_memory/cli/commands/command_utils.py,sha256=e5j3mkBl75q25zpnStYFY6hfEQ8f4EPvP82VyvHING0,1480
39
+ basic_memory/cli/commands/db.py,sha256=cEoQltgKudEuJH0Cn-YiPpNaDQzu5-YVwCD0anIIKOA,1480
40
+ basic_memory/cli/commands/import_chatgpt.py,sha256=iVfMo6yrY1EzViSlGL3BnZVkh-k9ht0bbCMJ6dWFCuU,2856
41
+ basic_memory/cli/commands/import_claude_conversations.py,sha256=e8l4OHMr8A9PtKgOO6T9-86Jca6FzCrJAsOzo-EQrlc,2946
42
+ basic_memory/cli/commands/import_claude_projects.py,sha256=YyFXcHWAHJmtR6DNwTtao8nKECoFyo8GripRElqMQ7w,2891
43
+ basic_memory/cli/commands/import_memory_json.py,sha256=3ESHFGdrVQmlh93GYm-AzhKKnDx5cK375ea9EjiKWQw,2867
44
+ basic_memory/cli/commands/mcp.py,sha256=KNyeut5vjXvBjBncZs078YwJTDWb5-CjYpx0bzA4Kjs,3462
45
+ basic_memory/cli/commands/project.py,sha256=CJF-Dp69EPNNDwxZUakEiUcn-qCiEdMmHD3vNkO8pr0,13738
46
+ basic_memory/cli/commands/status.py,sha256=KHrBD6cPFckbmqoadlnFACHao524ZF_v_TzYC_yRPgQ,5872
47
+ basic_memory/cli/commands/sync.py,sha256=OckRY5JWJ2ZCi4-75DuEF-uWMSJX_1FmSRp27AkYtI4,1782
48
+ basic_memory/cli/commands/tool.py,sha256=8bsbYfaYEfAEvLfciQx1fZ0vssgbahMvrbmWzYg9188,11971
49
+ basic_memory/cli/commands/cloud/__init__.py,sha256=lxYVkUnYzg4GWByHmSm77m_a-ArOc_-4qvVvl0oPNp8,255
50
+ basic_memory/cli/commands/cloud/api_client.py,sha256=e14v_YTkkEuyUuZBzaQTSHpNmT017A3ym5dWMEly5JQ,4263
51
+ basic_memory/cli/commands/cloud/bisync_commands.py,sha256=9uTQvDcqUj8mSMOMtpI_6UzVVWFb2oVWlueTc-dX7j0,28626
52
+ basic_memory/cli/commands/cloud/core_commands.py,sha256=OVSVTC9f2_Smp3oNUUCErs3terFZdJIc-GXRvcfK68Q,9694
53
+ basic_memory/cli/commands/cloud/mount_commands.py,sha256=2CZPza3rPiECI5dOLowq3SEzmRQTFdUjopn_W_QQU9Y,10430
54
+ basic_memory/cli/commands/cloud/rclone_config.py,sha256=LpI3_PBKT5qYPG2tV3L9erl4WQQedm97g4x8PC20BP0,8155
55
+ basic_memory/cli/commands/cloud/rclone_installer.py,sha256=x62TjzwDUSwWTy7NVjdwtu9SKO7N5NVls_tfqp2_DDw,7399
56
+ basic_memory/importers/__init__.py,sha256=BTcBW97P3thcsWa5w9tQsvOu8ynHDgw2-8tPgkCZoh8,795
57
+ basic_memory/importers/base.py,sha256=awwe_U-CfzSINKoM6iro7ru4QqLlsfXzdHztDvebnxM,2531
58
+ basic_memory/importers/chatgpt_importer.py,sha256=3BJZUOVSX0cg9G6WdMTDQTscMoG6eWuf6E-c9Qhi0v4,7687
59
+ basic_memory/importers/claude_conversations_importer.py,sha256=p7yehy9Pgc5fef6d0ab9DwCm8CCiyyZkGEqX8U7rHbw,5725
60
+ basic_memory/importers/claude_projects_importer.py,sha256=pFJnX9m7GOv2TrS9f2nM1-mTtheTEBWjxKtwDWdJOGM,5389
61
+ basic_memory/importers/memory_json_importer.py,sha256=vH0EUpnxftmtXOv_exQjJQ7CihETDkegrEjTq4K96vw,4631
62
+ basic_memory/importers/utils.py,sha256=SRcDrjedYH_PeD9Pu1DenlrDcar7L751ZV3qkzJXRQ4,1818
63
+ basic_memory/markdown/__init__.py,sha256=DdzioCWtDnKaq05BHYLgL_78FawEHLpLXnp-kPSVfIc,501
64
+ basic_memory/markdown/entity_parser.py,sha256=1zpvVAtWnCV0uXB4DtmMMNzlxGSE9iulWPUpfJyYWvw,4542
65
+ basic_memory/markdown/markdown_processor.py,sha256=imSVYyyfz0rQe9CyDcZhouB4m6V1haMdq6j3EWdo_wc,4984
66
+ basic_memory/markdown/plugins.py,sha256=3z5U6yX7UuzEJAq5jzT5LmhmJ-tF3CJThwfwDwCE2q8,7452
67
+ basic_memory/markdown/schemas.py,sha256=eyxYCr1hVyWmImcle0asE5It_DD6ARkqaBZYu1KK5n4,1896
68
+ basic_memory/markdown/utils.py,sha256=cm3h3C1eFz-zklXx5xaNRE-EBv8d-S5tixbTa5WqubQ,3416
69
+ basic_memory/mcp/__init__.py,sha256=dsDOhKqjYeIbCULbHIxfcItTbqudEuEg1Np86eq0GEQ,35
70
+ basic_memory/mcp/async_client.py,sha256=oHR-cscOQAh9914Pjf_annICzauaRHfK0POd0hzEJUg,5170
71
+ basic_memory/mcp/project_context.py,sha256=29ZwMriGcLfE8E0hNyWn9GpnzOsKG7TbP8FSq8UGEDY,4930
72
+ basic_memory/mcp/server.py,sha256=vICzbGc36u59Z5P2RjXhL2OxJxOVKC8gU4OqWeCwsq8,109
73
+ basic_memory/mcp/prompts/__init__.py,sha256=-Bl9Dgj2TD9PULjzggPqXuvPEjWCRy7S9Yg03h2-U7A,615
74
+ basic_memory/mcp/prompts/ai_assistant_guide.py,sha256=NLdtkb9EahAzKLT8kT4CMQezxDgd3fUc2WB6dIixQUg,2558
75
+ basic_memory/mcp/prompts/continue_conversation.py,sha256=L-f_hKIBWnILzmYuQii948EdXyDSYh1qWVQAbJQU3l8,2097
76
+ basic_memory/mcp/prompts/recent_activity.py,sha256=h9hT7CdMNpPIqwptlY8N64trPkpCCeMTX4Wfr8C5WAE,6466
77
+ basic_memory/mcp/prompts/search.py,sha256=QCX8fOI-BBxHSzPBvvVq6jZPklPO1jHG0560LVkks98,1775
78
+ basic_memory/mcp/prompts/utils.py,sha256=k7UUwbEgtE75jZftq3DT0PpZL2Un5dwPT8L3Vxl_GIw,5733
79
+ basic_memory/mcp/resources/ai_assistant_guide.md,sha256=u3vjEgCQvVTbOqEGx6lnu-KJDBDgx22SimCy4h0KxFg,7286
80
+ basic_memory/mcp/resources/project_info.py,sha256=68Z00eE4bxBK6PB3uf4abQXaMIcBPIONuHfF3VsEtLA,2553
81
+ basic_memory/mcp/tools/__init__.py,sha256=EU905pci4cHHfSmWeTmqcyKmtXGByAnm-HW0MND1IT4,1591
82
+ basic_memory/mcp/tools/build_context.py,sha256=NapOVwaPxtqsgJKt-80A7trVonrJi7_vLcyH-uTB2T4,5641
83
+ basic_memory/mcp/tools/canvas.py,sha256=uz1ccdPlG5evntDG5o3pS3aTX2g4LKlXnGhihIMBNHo,4406
84
+ basic_memory/mcp/tools/chatgpt_tools.py,sha256=CyCpvGi5QFc1C5lccPAATBpcr6JU2LQcnIUTb3NEzvw,6903
85
+ basic_memory/mcp/tools/delete_note.py,sha256=ZrQVFDJTtU4TYe_4AipAo8-Vra6ScMSpQQ_zN_Nf2yk,9223
86
+ basic_memory/mcp/tools/edit_note.py,sha256=pOB7pLrBxp_kpBaAFeW3ibKljFDg4VCYj13Jbi1kO54,15533
87
+ basic_memory/mcp/tools/list_directory.py,sha256=1glwoRPT9C5qrgxLXarO3RIaMFNMBmOPQz1HXS3QFUk,5954
88
+ basic_memory/mcp/tools/move_note.py,sha256=Ea8W-Gs9qp7dA2l2_UhWVjjn8Yek71ZRhOebxVay7vU,21702
89
+ basic_memory/mcp/tools/project_management.py,sha256=QBG25b-wqjCKRurYIQimHiZpgWotzmStEe5nRcxrUU4,8082
90
+ basic_memory/mcp/tools/read_content.py,sha256=nT4sfRKZEFY5Sien-hTCMKoQaJlV2eTT3L9Oq1HH1hU,10012
91
+ basic_memory/mcp/tools/read_note.py,sha256=uWAeuQvQGAmoiSWorDJ7FEioOFVaiC7teYfEoy6pxOQ,9994
92
+ basic_memory/mcp/tools/recent_activity.py,sha256=4ycPEEaNQlognylT7lRNQzLrpwEnzYh2ITZeFCfRW4I,21256
93
+ basic_memory/mcp/tools/search.py,sha256=uUtCSYnhHU5jDlYNjRMQisD8DMlGcjJPWqXZRjmXJcM,16874
94
+ basic_memory/mcp/tools/sync_status.py,sha256=qGYGoK01yKRLsrZnQtqTMRZDm8R_IVLFhZm4hIE5qiQ,11190
95
+ basic_memory/mcp/tools/utils.py,sha256=S1YzuxLK3lsd6TTebxRQnuLpKY2IwTy6V-CVGZbNNEA,20896
96
+ basic_memory/mcp/tools/view_note.py,sha256=4SKwbF18wuLVvZ5g4rNhVTBjbwZ86QSNBEAlN13svqc,2442
97
+ basic_memory/mcp/tools/write_note.py,sha256=mk1VSk1BxnqoPn1tvSnaMsjQcXXiVary6RcQMohlOuQ,9130
98
+ basic_memory/models/__init__.py,sha256=j0C4dtFi-FOEaQKR8dQWEG-dJtdQ15NBTiJg4nbIXNU,333
99
+ basic_memory/models/base.py,sha256=4hAXJ8CE1RnjKhb23lPd-QM7G_FXIdTowMJ9bRixspU,225
100
+ basic_memory/models/knowledge.py,sha256=MaGpxluOWjsu7ZRZfp8HyUorpMuqejN5qzeMzf-gU1k,7727
101
+ basic_memory/models/project.py,sha256=yZ6QsX4YeISf_wetCqvJcr9ei5XpyRXPtmkxouRj0lo,2869
102
+ basic_memory/models/search.py,sha256=PhQ8w4taApSvjh1DpPhB4cH9GTt2E2po-DFZzhnoZkY,1300
103
+ basic_memory/repository/__init__.py,sha256=MWK-o8QikqzOpe5SyPbKQ2ioB5BWA0Upz65tgg-E0DU,327
104
+ basic_memory/repository/entity_repository.py,sha256=iJwunsG7o4JsBtnAXtHTwFeHkz5CtRoD-PQEaOzTe-Q,10622
105
+ basic_memory/repository/observation_repository.py,sha256=qhMvHLSjaoT3Fa_cQOKsT5jYPj66GXSytEBMwLAgygQ,2943
106
+ basic_memory/repository/project_info_repository.py,sha256=8XLVAYKkBWQ6GbKj1iqA9OK0FGPHdTlOs7ZtfeUf9t8,338
107
+ basic_memory/repository/project_repository.py,sha256=Fvo_pCylz8okFiv3FD3nv6PNQknLuC7f3S11fJNQkic,3795
108
+ basic_memory/repository/relation_repository.py,sha256=tpgyg5MTXAkdDgNpLYnHFQsYeiVSyfk3lasniw3DuRc,3718
109
+ basic_memory/repository/repository.py,sha256=GUKlgBOFvMeFBkmqh80MNyC2YKQdMdPQjlT_vAYlvwo,15638
110
+ basic_memory/repository/search_repository.py,sha256=bs9FXekHY_AYDOzA7L6ZCzf1EtHi1Q3k8HjjCbBXl8E,23989
111
+ basic_memory/schemas/__init__.py,sha256=6bZUVwc-Bvd6yKdNigUslYS3jFYgIQ9eqT-eujtEXY4,1785
112
+ basic_memory/schemas/base.py,sha256=t7F7f40EeQEQVJswMdoQJDd2Uh8LUgLHXVFIP6ugx8U,9551
113
+ basic_memory/schemas/cloud.py,sha256=Y8rqZHOM16xsW_kYVqKB3AxG5ig32KWLHHzFulAjwBc,1566
114
+ basic_memory/schemas/delete.py,sha256=UAR2JK99WMj3gP-yoGWlHD3eZEkvlTSRf8QoYIE-Wfw,1180
115
+ basic_memory/schemas/directory.py,sha256=F9_LrJqRqb_kO08GDKJzXLb2nhbYG2PdVUo5eDD_Kf4,881
116
+ basic_memory/schemas/importer.py,sha256=rDPfQjyjKyjOe26pwp1UH4eDqGwMKfeNs1Fjv5PxOc0,693
117
+ basic_memory/schemas/memory.py,sha256=LMAb4HfAAvosy9GrYzBM_lnviWHSS4Lez67zhgT9bf4,8894
118
+ basic_memory/schemas/project_info.py,sha256=1D9Q0QyWdizw44vk_eQX1UUAcBCiLjbfM-R_BYAads4,6832
119
+ basic_memory/schemas/prompt.py,sha256=SpIVfZprQT8E5uP40j3CpBc2nHKflwOo3iZD7BFPIHE,3648
120
+ basic_memory/schemas/request.py,sha256=Mv5EvrLZlFIiPr8dOjo_4QXvkseYhQI7cd_X2zDsxQM,3760
121
+ basic_memory/schemas/response.py,sha256=XupGYKKr5I2D7Qg9HCSD_c-0A-C1BPA8FNIvHK6Gars,6450
122
+ basic_memory/schemas/search.py,sha256=ywMsDGAQK2sO2TT5lc-da_k67OKW1x1TenXormHHWv4,3657
123
+ basic_memory/schemas/sync_report.py,sha256=JfxSr44Zxhp_R3cOfIc4G0Wj6hl2SPlIUwiYFLFK2sY,1600
124
+ basic_memory/services/__init__.py,sha256=XGt8WX3fX_0K9L37Msy8HF8nlMZYIG3uQ6mUX6_iJtg,259
125
+ basic_memory/services/context_service.py,sha256=73meCXDdDvW7LXlnTvQG_rU-Yp-ogAZoPgyw0WEX2Yw,15742
126
+ basic_memory/services/directory_service.py,sha256=VCVPYN8WVMIlh6o-Qsutb7eZsM7eI0-j9ABtVUjvEgo,11216
127
+ basic_memory/services/entity_service.py,sha256=j-aFJxO_PbUKhiHf7nUK1ClKE7dA5oURlgQ85Z9pH90,34750
128
+ basic_memory/services/exceptions.py,sha256=oVjQr50XQqnFq1-MNKBilI2ShtHDxypavyDk1UeyHhw,390
129
+ basic_memory/services/file_service.py,sha256=jCrmnEkTQ4t9HF7L_M6BL7tdDqjjzty9hpTo9AzwhvM,10059
130
+ basic_memory/services/initialization.py,sha256=OtdP1iCQIFvPQKtl7x0yfAkdFXH88Ro71I9dWLq0sPI,7520
131
+ basic_memory/services/link_resolver.py,sha256=1-_VFsvqdT5rVBHe8Jrq63U59XQ0hxGezxY8c24Tiow,4594
132
+ basic_memory/services/project_service.py,sha256=Hoifww_goAQZfsYZgwfLYJDRIjP0i1MBgPE0MctmGPY,33813
133
+ basic_memory/services/search_service.py,sha256=Ld0fyWKF2PZq2ni0rZimKslOsH5K_psi0qq8ty3_1Co,13159
134
+ basic_memory/services/service.py,sha256=V-d_8gOV07zGIQDpL-Ksqs3ZN9l3qf3HZOK1f_YNTag,336
135
+ basic_memory/services/sync_status_service.py,sha256=CgJdaJ6OFvFjKHIQSVIQX8kEU389Mrz_WS6x8dx2-7c,7504
136
+ basic_memory/sync/__init__.py,sha256=CVHguYH457h2u2xoM8KvOilJC71XJlZ-qUh8lHcjYj4,156
137
+ basic_memory/sync/background_sync.py,sha256=VJr2SukRKLdsbfB-9Re4LehcpK15a-RLXAFB-sAdRRM,726
138
+ basic_memory/sync/sync_service.py,sha256=WrR0iyvWtHmMyMTaViqoE1aRnYVqYIjnuWgFCTwBKBw,32564
139
+ basic_memory/sync/watch_service.py,sha256=vzVdiJh0eLbqYIkLIJp8hwRIj4z52am6Q-_OubC6mbY,19855
140
+ basic_memory/templates/prompts/continue_conversation.hbs,sha256=trrDHSXA5S0JCbInMoUJL04xvCGRB_ku1RHNQHtl6ZI,3076
141
+ basic_memory/templates/prompts/search.hbs,sha256=H1cCIsHKp4VC1GrH2KeUB8pGe5vXFPqb2VPotypmeCA,3098
142
+ basic_memory-0.15.1.dist-info/METADATA,sha256=Qg0Ljui70r0LXBf9iHJ2CQCCY6TukdOcz-DWneGlyeI,15670
143
+ basic_memory-0.15.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
144
+ basic_memory-0.15.1.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
145
+ basic_memory-0.15.1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
146
+ basic_memory-0.15.1.dist-info/RECORD,,
@@ -1,120 +0,0 @@
1
- """Project session management for Basic Memory MCP server.
2
-
3
- Provides simple in-memory project context for MCP tools, allowing users to switch
4
- between projects during a conversation without restarting the server.
5
- """
6
-
7
- from dataclasses import dataclass
8
- from typing import Optional
9
- from loguru import logger
10
-
11
- from basic_memory.config import ProjectConfig, get_project_config, ConfigManager
12
-
13
-
14
- @dataclass
15
- class ProjectSession:
16
- """Simple in-memory project context for MCP session.
17
-
18
- This class manages the current project context that tools use when no explicit
19
- project is specified. It's initialized with the default project from config
20
- and can be changed during the conversation.
21
- """
22
-
23
- current_project: Optional[str] = None
24
- default_project: Optional[str] = None
25
-
26
- def initialize(self, default_project: str) -> "ProjectSession":
27
- """Set the default project from config on startup.
28
-
29
- Args:
30
- default_project: The project name from configuration
31
- """
32
- self.default_project = default_project
33
- self.current_project = default_project
34
- logger.info(f"Initialized project session with default project: {default_project}")
35
- return self
36
-
37
- def get_current_project(self) -> str:
38
- """Get the currently active project name.
39
-
40
- Returns:
41
- The current project name, falling back to default, then 'main'
42
- """
43
- return self.current_project or self.default_project or "main"
44
-
45
- def set_current_project(self, project_name: str) -> None:
46
- """Set the current project context.
47
-
48
- Args:
49
- project_name: The project to switch to
50
- """
51
- previous = self.current_project
52
- self.current_project = project_name
53
- logger.info(f"Switched project context: {previous} -> {project_name}")
54
-
55
- def get_default_project(self) -> str:
56
- """Get the default project name from startup.
57
-
58
- Returns:
59
- The default project name, or 'main' if not set
60
- """
61
- return self.default_project or "main" # pragma: no cover
62
-
63
- def reset_to_default(self) -> None: # pragma: no cover
64
- """Reset current project back to the default project."""
65
- self.current_project = self.default_project # pragma: no cover
66
- logger.info(f"Reset project context to default: {self.default_project}") # pragma: no cover
67
-
68
- def refresh_from_config(self) -> None:
69
- """Refresh session state from current configuration.
70
-
71
- This method reloads the default project from config and reinitializes
72
- the session. This should be called when the default project is changed
73
- via CLI or API to ensure MCP session stays in sync.
74
- """
75
- # Reload config to get latest default project
76
- current_config = ConfigManager().config
77
- new_default = current_config.default_project
78
-
79
- # Reinitialize with new default
80
- self.initialize(new_default)
81
- logger.info(f"Refreshed project session from config, new default: {new_default}")
82
-
83
-
84
- # Global session instance
85
- session = ProjectSession()
86
-
87
-
88
- def get_active_project(project_override: Optional[str] = None) -> ProjectConfig:
89
- """Get the active project name for a tool call.
90
-
91
- This is the main function tools should use to determine which project
92
- to operate on.
93
-
94
- Args:
95
- project_override: Optional explicit project name from tool parameter
96
-
97
- Returns:
98
- The project name to use (override takes precedence over session context)
99
- """
100
- if project_override: # pragma: no cover
101
- project = get_project_config(project_override)
102
- session.set_current_project(project_override)
103
- return project
104
-
105
- current_project = session.get_current_project()
106
- active_project = get_project_config(current_project)
107
- return active_project
108
-
109
-
110
- def add_project_metadata(result: str, project_name: str) -> str:
111
- """Add project context as metadata footer for LLM awareness.
112
-
113
- Args:
114
- result: The tool result string
115
- project_name: The project name that was used
116
-
117
- Returns:
118
- Result with project metadata footer
119
- """
120
- return f"{result}\n\n<!-- Project: {project_name} -->" # pragma: no cover
@@ -1,133 +0,0 @@
1
- basic_memory/__init__.py,sha256=mDdoiW51bM3-d6fzochHAwurt6I9-U7K-Ar8WifQv4I,256
2
- basic_memory/config.py,sha256=boVbIb5qgHmvXQo4XlkpaxxqRmhDXWqHUtjbD-_brxE,13046
3
- basic_memory/db.py,sha256=JeBTsLP56PqCOwX8CZAB7-ijpPbg-Aco5QebpFqkBtg,7428
4
- basic_memory/deps.py,sha256=vOKM2cpUm4r84LxonMH7LcgM1bkp-FEUqmgruK6CQR0,12144
5
- basic_memory/file_utils.py,sha256=p1pjbAHNrAR4H3VuMq_Nh4yjJUKkbnwEAygtg5SrMio,8395
6
- basic_memory/utils.py,sha256=cHcvxLF48lHL2XbekcEFkY6RVJrFwZfJXu28Itepm7o,12704
7
- basic_memory/alembic/alembic.ini,sha256=IEZsnF8CbbZnkwBr67LzKKNobHuzTaQNUvM8Psop5xc,3733
8
- basic_memory/alembic/env.py,sha256=4kHZh-rfzVARy9ndvsuDPTBt6Hk3dZ2BwI030EppBrA,2838
9
- basic_memory/alembic/migrations.py,sha256=lriHPXDdBLSNXEW3QTpU0SJKuVd1V-8NrVkpN3qfsUQ,718
10
- basic_memory/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
11
- basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py,sha256=lTbWlAnd1es7xU99DoJgfaRe1_Kte8TL98riqeKGV80,4363
12
- basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py,sha256=k6xYTmYPM9Ros-7CA7BwZBKYwoK_gmVdC-2n8FAjdoE,1840
13
- basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py,sha256=2CCY9ayjzbraYMcinqSsJi9Sc0nu2e-ehkUJus-sz34,4379
14
- basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py,sha256=YErFkIpZdicvUil4ZtE6uxSpk5BZCTXZ_TfPE-MgSfo,4210
15
- basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py,sha256=ItF6VEmSMIKBRZSEse9cUHSQ3xTQpQ1TJBrwournz7g,1884
16
- basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py,sha256=RsGymQzfRXV1LSNKiyi0lMilTxW1NgwS9jR67ye2apI,1428
17
- basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py,sha256=kDavR9Qqx9wSu5P3qd4SZq_waIsDG1UMTg2SmDoktMU,3679
18
- basic_memory/api/__init__.py,sha256=wCpj-21j1D0KzKl9Ql6unLBVFY0K1uGp_FeSZRKtqpk,72
19
- basic_memory/api/app.py,sha256=rWc6wsCUEK9YMPav3_qiiwBASA2s1S_wF1C4ssBm6M8,2897
20
- basic_memory/api/template_loader.py,sha256=exbTeXyJRgyLFmSjNeroxjT7X2DWFm2X5qUVa3drbYM,8607
21
- basic_memory/api/routers/__init__.py,sha256=REO5CKQ96o5vtGWACcsIxIpWybIUSeKXc83RWbWc8BQ,398
22
- basic_memory/api/routers/directory_router.py,sha256=rBQHvuwffUOk0iKvcEs2QlWclgvr8ur24f_pH3-sVRQ,2054
23
- basic_memory/api/routers/importer_router.py,sha256=xFUCorkPWo8AF0ya0UrcLmXNf8CjPZdAqddQIH8PO-o,4513
24
- basic_memory/api/routers/knowledge_router.py,sha256=4dD_tPpcJGWCuoRKEbQXCS3hoXNWe-VbcGC7xV-8VoE,9738
25
- basic_memory/api/routers/management_router.py,sha256=zbzilNzsYUbFbE2uFXRM33cDn9IbI-73y8C1-b-19O4,2730
26
- basic_memory/api/routers/memory_router.py,sha256=a9Cnx3XgwSkO-2ABFzI3wM3PoMGxuyfJFFp7NfFZapc,3003
27
- basic_memory/api/routers/project_router.py,sha256=3qoto8Fm9pWqg6K0ukdd-VmggMENx7kK4JHvJrOhZ_I,8432
28
- basic_memory/api/routers/prompt_router.py,sha256=4wxq6-NREgVJM8N9C0YsN1AAUDD8nkTCOzWyzSqTSFw,9948
29
- basic_memory/api/routers/resource_router.py,sha256=Uko0RLea8DTXl0hPyGjay_YNyYE5852VrBXhlWs8YGc,8097
30
- basic_memory/api/routers/search_router.py,sha256=GD62jlCQTiL_VNsdibi-b1f6H40KCWo9SX2Cl7YH4QU,1226
31
- basic_memory/api/routers/utils.py,sha256=nmD1faJOHcnWQjbCanojUwA9xhinf764U8SUqjNXpXw,5159
32
- basic_memory/cli/__init__.py,sha256=arcKLAWRDhPD7x5t80MlviZeYzwHZ0GZigyy3NKVoGk,33
33
- basic_memory/cli/app.py,sha256=9xBnA4DXB8RFitiB96Jbs8XNsrz_WfE583QhJk_o8vg,2268
34
- basic_memory/cli/main.py,sha256=ekBbEr_5jjGZaFJiOK4VhZ3wNiu6WjhXVi_syke1xw0,465
35
- basic_memory/cli/commands/__init__.py,sha256=3oojcC-Y-4RPqff9vtwWziT_T4uvBVicL0pSHNilVkU,393
36
- basic_memory/cli/commands/db.py,sha256=cEoQltgKudEuJH0Cn-YiPpNaDQzu5-YVwCD0anIIKOA,1480
37
- basic_memory/cli/commands/import_chatgpt.py,sha256=iVfMo6yrY1EzViSlGL3BnZVkh-k9ht0bbCMJ6dWFCuU,2856
38
- basic_memory/cli/commands/import_claude_conversations.py,sha256=e8l4OHMr8A9PtKgOO6T9-86Jca6FzCrJAsOzo-EQrlc,2946
39
- basic_memory/cli/commands/import_claude_projects.py,sha256=YyFXcHWAHJmtR6DNwTtao8nKECoFyo8GripRElqMQ7w,2891
40
- basic_memory/cli/commands/import_memory_json.py,sha256=fqGT9nILJnIpCtFseaFDox2IodVng48Suev5EQp8Azg,3013
41
- basic_memory/cli/commands/mcp.py,sha256=Phvj0nsY70dDIEt8-KN_vCoakfwWNsRo4IzvzYWXusY,2593
42
- basic_memory/cli/commands/project.py,sha256=gKnLp4X3AXKunAIQzGib8StFRkO_nWQ6eDEE81Ahxks,13940
43
- basic_memory/cli/commands/status.py,sha256=ttDqI31xTQVPabJKIFi-unTiJKL6SoClJdYqKqLqLXA,5809
44
- basic_memory/cli/commands/sync.py,sha256=cDs-c8TDOFDCf29MB6u_XUzl3EP3Br8MQyZLu0X4shM,8213
45
- basic_memory/cli/commands/tool.py,sha256=my-kALn3khv1W2Avi736NrHsfkpbyP57mDi5LjHwqe0,9540
46
- basic_memory/importers/__init__.py,sha256=BTcBW97P3thcsWa5w9tQsvOu8ynHDgw2-8tPgkCZoh8,795
47
- basic_memory/importers/base.py,sha256=awwe_U-CfzSINKoM6iro7ru4QqLlsfXzdHztDvebnxM,2531
48
- basic_memory/importers/chatgpt_importer.py,sha256=3BJZUOVSX0cg9G6WdMTDQTscMoG6eWuf6E-c9Qhi0v4,7687
49
- basic_memory/importers/claude_conversations_importer.py,sha256=p7yehy9Pgc5fef6d0ab9DwCm8CCiyyZkGEqX8U7rHbw,5725
50
- basic_memory/importers/claude_projects_importer.py,sha256=pFJnX9m7GOv2TrS9f2nM1-mTtheTEBWjxKtwDWdJOGM,5389
51
- basic_memory/importers/memory_json_importer.py,sha256=vH0EUpnxftmtXOv_exQjJQ7CihETDkegrEjTq4K96vw,4631
52
- basic_memory/importers/utils.py,sha256=SRcDrjedYH_PeD9Pu1DenlrDcar7L751ZV3qkzJXRQ4,1818
53
- basic_memory/markdown/__init__.py,sha256=DdzioCWtDnKaq05BHYLgL_78FawEHLpLXnp-kPSVfIc,501
54
- basic_memory/markdown/entity_parser.py,sha256=1zpvVAtWnCV0uXB4DtmMMNzlxGSE9iulWPUpfJyYWvw,4542
55
- basic_memory/markdown/markdown_processor.py,sha256=imSVYyyfz0rQe9CyDcZhouB4m6V1haMdq6j3EWdo_wc,4984
56
- basic_memory/markdown/plugins.py,sha256=9wjnfl82CVHuWPMdLH3Wwhml4MC4vh3zrEiH8qY17yY,7478
57
- basic_memory/markdown/schemas.py,sha256=eyxYCr1hVyWmImcle0asE5It_DD6ARkqaBZYu1KK5n4,1896
58
- basic_memory/markdown/utils.py,sha256=cm3h3C1eFz-zklXx5xaNRE-EBv8d-S5tixbTa5WqubQ,3416
59
- basic_memory/mcp/__init__.py,sha256=dsDOhKqjYeIbCULbHIxfcItTbqudEuEg1Np86eq0GEQ,35
60
- basic_memory/mcp/async_client.py,sha256=ZTH0OH8wowoyIZf_UdbqyuSyWljGSAlZMbPRFF0dowM,925
61
- basic_memory/mcp/project_session.py,sha256=TaQD7JPeyQY-64sFJG41AXQNFizHegZ9POVLpD1pCBk,4203
62
- basic_memory/mcp/server.py,sha256=CpEMrifWHqkj6Q--LUtcfKzzsp0-FW8Lf3eHKrlzx2E,1248
63
- basic_memory/mcp/prompts/__init__.py,sha256=-Bl9Dgj2TD9PULjzggPqXuvPEjWCRy7S9Yg03h2-U7A,615
64
- basic_memory/mcp/prompts/ai_assistant_guide.py,sha256=8TI5xObiRVcwv6w9by1xQHlX0whvyE7-LGsiqDMRTFg,821
65
- basic_memory/mcp/prompts/continue_conversation.py,sha256=rsmlC2V7e7G6DAK0K825vFsPKgsRQ702HFzn6lkHaDM,1998
66
- basic_memory/mcp/prompts/recent_activity.py,sha256=0v1c3b2SdDDxXVuF8eOjNooYy04uRYel0pdJ0rnggw4,3311
67
- basic_memory/mcp/prompts/search.py,sha256=nb88MZy9tdW_MmCLUVItiukrLdb3xEHWLv0JVLUlc4o,1692
68
- basic_memory/mcp/prompts/utils.py,sha256=VacrbqwYtySpIlYIrKHo5s6jtoTMscYJqrFRH3zpC6Q,5431
69
- basic_memory/mcp/resources/ai_assistant_guide.md,sha256=qnYWDkYlb-JmKuOoZ5llmRas_t4dWDXB_i8LE277Lgs,14777
70
- basic_memory/mcp/resources/project_info.py,sha256=LcUkTx4iXBfU6Lp4TVch78OqLopbOy4ljyKnfr4VXso,1906
71
- basic_memory/mcp/tools/__init__.py,sha256=hyt3HdUuw7djZForr24Qpw8EnOMQaDCm0_BTs-CaX-Y,1619
72
- basic_memory/mcp/tools/build_context.py,sha256=41JGBL0_Ne0J4q8HXbDPmIZFRNyrwD5NT4EhWE_SlEQ,4975
73
- basic_memory/mcp/tools/canvas.py,sha256=22F9G9gfPb-l8i1B5ra4Ja_h9zYY83rPY9mDA5C5gkY,3738
74
- basic_memory/mcp/tools/delete_note.py,sha256=tSyRc_VgBmLyVeenClwX1Sk--LKcGahAMzTX2mK2XIs,7346
75
- basic_memory/mcp/tools/edit_note.py,sha256=q4x-f7-j_l-wzm17-AVFT1_WGCo0Cq4lI3seYSe21aY,13570
76
- basic_memory/mcp/tools/list_directory.py,sha256=-FxDsCru5YD02M4qkQDAurEJWyRaC7YI4YR6zg0atR8,5236
77
- basic_memory/mcp/tools/move_note.py,sha256=XvJ9m6rrwsVlb8ScR5ik5OQKcLbNnR52HbyuAhutVYw,17541
78
- basic_memory/mcp/tools/project_management.py,sha256=daaa7t9xrCLno3VLMBpda3adMw7cumIO-_R_ncBjMsc,13624
79
- basic_memory/mcp/tools/read_content.py,sha256=lqE63axQf9h0OU36Lh5e1xr164nQhywdaMrPnKw_hyQ,9125
80
- basic_memory/mcp/tools/read_note.py,sha256=_IbyJLCajJoI2ztFhyv_n9rpN-P64BPuw4QGXbR7D4w,8170
81
- basic_memory/mcp/tools/recent_activity.py,sha256=XVjNJAJnmxvzx9_Ls1A-QOd2yTR7pJlSTTuRxSivmN4,4833
82
- basic_memory/mcp/tools/search.py,sha256=hRmwBXRoxEUOtUOi9WG80NfLluHOG5XpSOArMJumt8o,15883
83
- basic_memory/mcp/tools/sync_status.py,sha256=c91zsYbq7IuC5rF-OaZ8JwgtJOBlPcTks1cSvYO4CiI,10517
84
- basic_memory/mcp/tools/utils.py,sha256=qVAEkR4naCLrqIo_7xXFubqGGxypouz-DB4_svTvARY,20892
85
- basic_memory/mcp/tools/view_note.py,sha256=ddNXxyETsdA5SYflIaQVj_Cbd7I7CLVs3atRRDMbGmg,2499
86
- basic_memory/mcp/tools/write_note.py,sha256=dxOW-0nTl_619-NjIdTSM8IsTRtTQUkSyEmVfG6W_IM,6612
87
- basic_memory/models/__init__.py,sha256=j0C4dtFi-FOEaQKR8dQWEG-dJtdQ15NBTiJg4nbIXNU,333
88
- basic_memory/models/base.py,sha256=4hAXJ8CE1RnjKhb23lPd-QM7G_FXIdTowMJ9bRixspU,225
89
- basic_memory/models/knowledge.py,sha256=t493m_jYw_80xtqYRauyJ5pDaa1RlvpMduHw7JCNWuA,7702
90
- basic_memory/models/project.py,sha256=b1ujg-mM-XqLtKw29RVUtLWMgZb9qOllfHmA5ZS1WuQ,2838
91
- basic_memory/models/search.py,sha256=PhQ8w4taApSvjh1DpPhB4cH9GTt2E2po-DFZzhnoZkY,1300
92
- basic_memory/repository/__init__.py,sha256=MWK-o8QikqzOpe5SyPbKQ2ioB5BWA0Upz65tgg-E0DU,327
93
- basic_memory/repository/entity_repository.py,sha256=QaWYJf9kx55illiLXFCAOA7-fXJX5IVf4m8FspdPzY0,10429
94
- basic_memory/repository/observation_repository.py,sha256=qhMvHLSjaoT3Fa_cQOKsT5jYPj66GXSytEBMwLAgygQ,2943
95
- basic_memory/repository/project_info_repository.py,sha256=8XLVAYKkBWQ6GbKj1iqA9OK0FGPHdTlOs7ZtfeUf9t8,338
96
- basic_memory/repository/project_repository.py,sha256=Fvo_pCylz8okFiv3FD3nv6PNQknLuC7f3S11fJNQkic,3795
97
- basic_memory/repository/relation_repository.py,sha256=z7Oo5Zz_J-Bj6RvQDpSWR73ZLk2fxG7e7jrMbeFeJvQ,3179
98
- basic_memory/repository/repository.py,sha256=MJb-cb8QZQbL-Grq_iqv4Kq75aX2yQohLIqh5T4fFxw,15224
99
- basic_memory/repository/search_repository.py,sha256=VQfxYZqYupT9-HiWz3_UvhpIRNzpjb4aDrbIdQj8x6E,22171
100
- basic_memory/schemas/__init__.py,sha256=mEgIFcdTeb-v4y0gkOh_pA5zyqGbZk-9XbXqlSi6WMs,1674
101
- basic_memory/schemas/base.py,sha256=XKrEJyGP8QpFuDOeoAicF8iOh4V-jF1XCdLIs1Byp6k,8270
102
- basic_memory/schemas/delete.py,sha256=UAR2JK99WMj3gP-yoGWlHD3eZEkvlTSRf8QoYIE-Wfw,1180
103
- basic_memory/schemas/directory.py,sha256=F9_LrJqRqb_kO08GDKJzXLb2nhbYG2PdVUo5eDD_Kf4,881
104
- basic_memory/schemas/importer.py,sha256=rDPfQjyjKyjOe26pwp1UH4eDqGwMKfeNs1Fjv5PxOc0,693
105
- basic_memory/schemas/memory.py,sha256=K9RyK4MS0nzuV9JhRINLKSsO5BpmACI8ldNzBPs4f_s,6388
106
- basic_memory/schemas/project_info.py,sha256=fcNjUpe25_5uMmKy142ib3p5qEakzs1WJPLkgol5zyw,7047
107
- basic_memory/schemas/prompt.py,sha256=SpIVfZprQT8E5uP40j3CpBc2nHKflwOo3iZD7BFPIHE,3648
108
- basic_memory/schemas/request.py,sha256=Mv5EvrLZlFIiPr8dOjo_4QXvkseYhQI7cd_X2zDsxQM,3760
109
- basic_memory/schemas/response.py,sha256=XupGYKKr5I2D7Qg9HCSD_c-0A-C1BPA8FNIvHK6Gars,6450
110
- basic_memory/schemas/search.py,sha256=ywMsDGAQK2sO2TT5lc-da_k67OKW1x1TenXormHHWv4,3657
111
- basic_memory/services/__init__.py,sha256=XGt8WX3fX_0K9L37Msy8HF8nlMZYIG3uQ6mUX6_iJtg,259
112
- basic_memory/services/context_service.py,sha256=DaxfDEC2mOFyfqmOMoKHAwa-GS6cQub8tfwJDaiHJdI,15103
113
- basic_memory/services/directory_service.py,sha256=_FGX9yunAfmeKCfGG4wKC5oN9eBj2R12v0fwH3GcNxo,6273
114
- basic_memory/services/entity_service.py,sha256=eYwJYwAG7xGzCeVU5eeLmKJP-oKDqvjPUN0d3L1VbJs,32253
115
- basic_memory/services/exceptions.py,sha256=oVjQr50XQqnFq1-MNKBilI2ShtHDxypavyDk1UeyHhw,390
116
- basic_memory/services/file_service.py,sha256=jCrmnEkTQ4t9HF7L_M6BL7tdDqjjzty9hpTo9AzwhvM,10059
117
- basic_memory/services/initialization.py,sha256=Td5Yt5nPSskGMeWZSbVbM1WpO9-Z3w2cJAjAzqZ-EMQ,6715
118
- basic_memory/services/link_resolver.py,sha256=1-_VFsvqdT5rVBHe8Jrq63U59XQ0hxGezxY8c24Tiow,4594
119
- basic_memory/services/project_service.py,sha256=M9tukO5Ph847a7ZWrimcB8b-yNcQz3LKRvhvc7aU8GI,30175
120
- basic_memory/services/search_service.py,sha256=c5Ky0ufz7YPFgHhVzNRQ4OecF_JUrt7nALzpMjobW4M,12782
121
- basic_memory/services/service.py,sha256=V-d_8gOV07zGIQDpL-Ksqs3ZN9l3qf3HZOK1f_YNTag,336
122
- basic_memory/services/sync_status_service.py,sha256=CgJdaJ6OFvFjKHIQSVIQX8kEU389Mrz_WS6x8dx2-7c,7504
123
- basic_memory/sync/__init__.py,sha256=CVHguYH457h2u2xoM8KvOilJC71XJlZ-qUh8lHcjYj4,156
124
- basic_memory/sync/background_sync.py,sha256=VJr2SukRKLdsbfB-9Re4LehcpK15a-RLXAFB-sAdRRM,726
125
- basic_memory/sync/sync_service.py,sha256=-cN3fV1VqO_LtnfcJlbsNAMSmM_tcUNVdUAMlh11XVo,26581
126
- basic_memory/sync/watch_service.py,sha256=1KsgZn7B_izo5ECe_mhwJm_ewi0hYjjVQckhU8EqhX0,16877
127
- basic_memory/templates/prompts/continue_conversation.hbs,sha256=trrDHSXA5S0JCbInMoUJL04xvCGRB_ku1RHNQHtl6ZI,3076
128
- basic_memory/templates/prompts/search.hbs,sha256=H1cCIsHKp4VC1GrH2KeUB8pGe5vXFPqb2VPotypmeCA,3098
129
- basic_memory-0.14.4.dist-info/METADATA,sha256=zoI_IydCEe0CWVkDlOQ8X_DyNhqexppXE6RIWE3lokY,14329
130
- basic_memory-0.14.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
131
- basic_memory-0.14.4.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
132
- basic_memory-0.14.4.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
133
- basic_memory-0.14.4.dist-info/RECORD,,