neotoma 0.4.3 → 0.5.0

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 (164) hide show
  1. package/README.md +17 -3
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +634 -192
  4. package/dist/actions.js.map +1 -1
  5. package/dist/cli/commands/mirror.d.ts +91 -0
  6. package/dist/cli/commands/mirror.d.ts.map +1 -0
  7. package/dist/cli/commands/mirror.js +327 -0
  8. package/dist/cli/commands/mirror.js.map +1 -0
  9. package/dist/cli/config.d.ts +8 -0
  10. package/dist/cli/config.d.ts.map +1 -1
  11. package/dist/cli/config.js +6 -0
  12. package/dist/cli/config.js.map +1 -1
  13. package/dist/cli/doctor.d.ts +96 -0
  14. package/dist/cli/doctor.d.ts.map +1 -0
  15. package/dist/cli/doctor.js +377 -0
  16. package/dist/cli/doctor.js.map +1 -0
  17. package/dist/cli/hooks.d.ts +45 -0
  18. package/dist/cli/hooks.d.ts.map +1 -0
  19. package/dist/cli/hooks.js +273 -0
  20. package/dist/cli/hooks.js.map +1 -0
  21. package/dist/cli/hooks_detect.d.ts +53 -0
  22. package/dist/cli/hooks_detect.d.ts.map +1 -0
  23. package/dist/cli/hooks_detect.js +220 -0
  24. package/dist/cli/hooks_detect.js.map +1 -0
  25. package/dist/cli/index.d.ts.map +1 -1
  26. package/dist/cli/index.js +1087 -81
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/cli/permissions.d.ts +46 -0
  29. package/dist/cli/permissions.d.ts.map +1 -0
  30. package/dist/cli/permissions.js +191 -0
  31. package/dist/cli/permissions.js.map +1 -0
  32. package/dist/cli/setup.d.ts +46 -0
  33. package/dist/cli/setup.d.ts.map +1 -0
  34. package/dist/cli/setup.js +105 -0
  35. package/dist/cli/setup.js.map +1 -0
  36. package/dist/core/operations.d.ts +145 -0
  37. package/dist/core/operations.d.ts.map +1 -0
  38. package/dist/core/operations.js +106 -0
  39. package/dist/core/operations.js.map +1 -0
  40. package/dist/mcp_server_card.d.ts +6 -0
  41. package/dist/mcp_server_card.d.ts.map +1 -0
  42. package/dist/mcp_server_card.js +91 -0
  43. package/dist/mcp_server_card.js.map +1 -0
  44. package/dist/repositories/sqlite/sqlite_client.d.ts.map +1 -1
  45. package/dist/repositories/sqlite/sqlite_client.js +10 -1
  46. package/dist/repositories/sqlite/sqlite_client.js.map +1 -1
  47. package/dist/server.d.ts +7 -0
  48. package/dist/server.d.ts.map +1 -1
  49. package/dist/server.js +294 -23
  50. package/dist/server.js.map +1 -1
  51. package/dist/services/batch_correction.d.ts +129 -0
  52. package/dist/services/batch_correction.d.ts.map +1 -0
  53. package/dist/services/batch_correction.js +231 -0
  54. package/dist/services/batch_correction.js.map +1 -0
  55. package/dist/services/canonical_markdown.d.ts +145 -0
  56. package/dist/services/canonical_markdown.d.ts.map +1 -0
  57. package/dist/services/canonical_markdown.js +425 -0
  58. package/dist/services/canonical_markdown.js.map +1 -0
  59. package/dist/services/canonical_mirror.d.ts +127 -0
  60. package/dist/services/canonical_mirror.d.ts.map +1 -0
  61. package/dist/services/canonical_mirror.js +1047 -0
  62. package/dist/services/canonical_mirror.js.map +1 -0
  63. package/dist/services/canonical_mirror_git.d.ts +71 -0
  64. package/dist/services/canonical_mirror_git.d.ts.map +1 -0
  65. package/dist/services/canonical_mirror_git.js +225 -0
  66. package/dist/services/canonical_mirror_git.js.map +1 -0
  67. package/dist/services/dashboard_stats.d.ts +13 -0
  68. package/dist/services/dashboard_stats.d.ts.map +1 -1
  69. package/dist/services/dashboard_stats.js +27 -0
  70. package/dist/services/dashboard_stats.js.map +1 -1
  71. package/dist/services/duplicate_detection.d.ts +50 -0
  72. package/dist/services/duplicate_detection.d.ts.map +1 -0
  73. package/dist/services/duplicate_detection.js +136 -0
  74. package/dist/services/duplicate_detection.js.map +1 -0
  75. package/dist/services/entity_queries.d.ts +4 -0
  76. package/dist/services/entity_queries.d.ts.map +1 -1
  77. package/dist/services/entity_queries.js +13 -1
  78. package/dist/services/entity_queries.js.map +1 -1
  79. package/dist/services/entity_resolution.d.ts +163 -7
  80. package/dist/services/entity_resolution.d.ts.map +1 -1
  81. package/dist/services/entity_resolution.js +398 -91
  82. package/dist/services/entity_resolution.js.map +1 -1
  83. package/dist/services/entity_type_equivalence.d.ts +40 -0
  84. package/dist/services/entity_type_equivalence.d.ts.map +1 -0
  85. package/dist/services/entity_type_equivalence.js +109 -0
  86. package/dist/services/entity_type_equivalence.js.map +1 -0
  87. package/dist/services/entity_type_guard.d.ts +52 -0
  88. package/dist/services/entity_type_guard.d.ts.map +1 -0
  89. package/dist/services/entity_type_guard.js +204 -0
  90. package/dist/services/entity_type_guard.js.map +1 -0
  91. package/dist/services/file_text_extraction.d.ts.map +1 -1
  92. package/dist/services/file_text_extraction.js +5 -0
  93. package/dist/services/file_text_extraction.js.map +1 -1
  94. package/dist/services/flat_packed_detection.d.ts +32 -0
  95. package/dist/services/flat_packed_detection.d.ts.map +1 -0
  96. package/dist/services/flat_packed_detection.js +96 -0
  97. package/dist/services/flat_packed_detection.js.map +1 -0
  98. package/dist/services/interpretation.d.ts.map +1 -1
  99. package/dist/services/interpretation.js +28 -6
  100. package/dist/services/interpretation.js.map +1 -1
  101. package/dist/services/memory_export.d.ts +56 -0
  102. package/dist/services/memory_export.d.ts.map +1 -0
  103. package/dist/services/memory_export.js +295 -0
  104. package/dist/services/memory_export.js.map +1 -0
  105. package/dist/services/observation_storage.d.ts +11 -0
  106. package/dist/services/observation_storage.d.ts.map +1 -1
  107. package/dist/services/observation_storage.js +6 -0
  108. package/dist/services/observation_storage.js.map +1 -1
  109. package/dist/services/raw_fragments.js +1 -1
  110. package/dist/services/raw_fragments.js.map +1 -1
  111. package/dist/services/raw_storage.d.ts +6 -0
  112. package/dist/services/raw_storage.d.ts.map +1 -1
  113. package/dist/services/raw_storage.js +26 -0
  114. package/dist/services/raw_storage.js.map +1 -1
  115. package/dist/services/recent_record_activity.d.ts +15 -0
  116. package/dist/services/recent_record_activity.d.ts.map +1 -0
  117. package/dist/services/recent_record_activity.js +135 -0
  118. package/dist/services/recent_record_activity.js.map +1 -0
  119. package/dist/services/schema_definitions.d.ts.map +1 -1
  120. package/dist/services/schema_definitions.js +265 -0
  121. package/dist/services/schema_definitions.js.map +1 -1
  122. package/dist/services/schema_reference_linking.d.ts +38 -0
  123. package/dist/services/schema_reference_linking.d.ts.map +1 -0
  124. package/dist/services/schema_reference_linking.js +130 -0
  125. package/dist/services/schema_reference_linking.js.map +1 -0
  126. package/dist/services/schema_registry.d.ts +120 -0
  127. package/dist/services/schema_registry.d.ts.map +1 -1
  128. package/dist/services/schema_registry.js +182 -2
  129. package/dist/services/schema_registry.js.map +1 -1
  130. package/dist/services/snapshot_computation.d.ts.map +1 -1
  131. package/dist/services/snapshot_computation.js +112 -0
  132. package/dist/services/snapshot_computation.js.map +1 -1
  133. package/dist/services/timeline_events.d.ts +24 -5
  134. package/dist/services/timeline_events.d.ts.map +1 -1
  135. package/dist/services/timeline_events.js +89 -13
  136. package/dist/services/timeline_events.js.map +1 -1
  137. package/dist/shared/action_handlers/entity_handlers.d.ts +2 -0
  138. package/dist/shared/action_handlers/entity_handlers.d.ts.map +1 -1
  139. package/dist/shared/action_handlers/entity_handlers.js +16 -2
  140. package/dist/shared/action_handlers/entity_handlers.js.map +1 -1
  141. package/dist/shared/action_handlers/entity_identifier_handler.d.ts +22 -0
  142. package/dist/shared/action_handlers/entity_identifier_handler.d.ts.map +1 -1
  143. package/dist/shared/action_handlers/entity_identifier_handler.js +122 -9
  144. package/dist/shared/action_handlers/entity_identifier_handler.js.map +1 -1
  145. package/dist/shared/action_schemas.d.ts +93 -14
  146. package/dist/shared/action_schemas.d.ts.map +1 -1
  147. package/dist/shared/action_schemas.js +25 -0
  148. package/dist/shared/action_schemas.js.map +1 -1
  149. package/dist/shared/contract_mappings.d.ts.map +1 -1
  150. package/dist/shared/contract_mappings.js +18 -0
  151. package/dist/shared/contract_mappings.js.map +1 -1
  152. package/dist/shared/local_transport.d.ts +13 -0
  153. package/dist/shared/local_transport.d.ts.map +1 -1
  154. package/dist/shared/local_transport.js +89 -6
  155. package/dist/shared/local_transport.js.map +1 -1
  156. package/dist/shared/openapi_types.d.ts +281 -1
  157. package/dist/shared/openapi_types.d.ts.map +1 -1
  158. package/dist/tool_definitions.d.ts +1 -1
  159. package/dist/tool_definitions.d.ts.map +1 -1
  160. package/dist/tool_definitions.js +84 -1
  161. package/dist/tool_definitions.js.map +1 -1
  162. package/openapi.yaml +319 -1
  163. package/openclaw.plugin.json +1 -1
  164. package/package.json +19 -4
package/README.md CHANGED
@@ -79,7 +79,7 @@ Most AI memory systems optimize storage or retrieval. Neotoma enforces state int
79
79
  Ask your AI agent whether Neotoma fits your workflow. Paste this into Claude, Cursor, ChatGPT, or any MCP-capable tool:
80
80
 
81
81
  ```
82
- Read https://neotoma.io/evaluate. Before you answer, inspect any broader tool, workspace, and configuration context you can access so you assess my real workflow rather than just this chat. Then tell me whether Neotoma is a real fit for my workflow, what data would be highest value to persist first, and what I should do next.
82
+ Read https://neotoma.io/evaluate. Use any tool, workspace, and chat context already available in this session to assess my real workflow. Avoid ad-hoc shell introspection just to profile me; if Neotoma is already installed, use `neotoma doctor --json` for status instead. Then tell me whether Neotoma is a real fit for my workflow, what data would be highest value to persist first, and what I should do next.
83
83
  ```
84
84
 
85
85
  The agent reads the evaluation page, checks your context, and gives you an honest assessment. If it's a fit, the agent carries you through install and activation.
@@ -89,7 +89,7 @@ The agent reads the evaluation page, checks your context, and gives you an hones
89
89
  Agents install Neotoma themselves. Paste this prompt into Claude, Cursor, ChatGPT, or Codex:
90
90
 
91
91
  ```
92
- Read https://neotoma.io/install and carry me through the install-first Neotoma flow. Install, activate it with my data, and configure my current tool for robust ongoing use.
92
+ Read https://neotoma.io/install and carry me through the install-first Neotoma flow. Use `neotoma` commands for status and setup. If Neotoma is already installed, start with `neotoma doctor --json`; otherwise install it and run `neotoma setup --tool <my_tool> --yes`. Avoid ad-hoc shell introspection or arbitrary repo scripts. Then activate Neotoma with my data and configure my current tool for robust ongoing use.
93
93
  ```
94
94
 
95
95
  The agent handles npm install, initialization, and MCP configuration. **Manual install:**
@@ -220,12 +220,26 @@ Neotoma exposes state via MCP. Local storage only in preview. Local built-in aut
220
220
 
221
221
  **Representative actions:** `store`, `retrieve_entities`, `retrieve_entity_snapshot`, `merge_entities`, `list_observations`, `create_relationship`, `list_relationships`, `list_timeline_events`, `retrieve_graph_neighborhood`. Full list: [MCP spec](docs/specs/MCP_SPEC.md).
222
222
 
223
+ ## Using with AI tools (hooks)
224
+
225
+ Neotoma also integrates into harnesses that expose lifecycle hooks. Hooks and MCP compose: hooks are the reliability floor (guaranteed capture, retrieval injection, compaction awareness, persistence safety net) and MCP remains the quality ceiling (agent-driven structured writes).
226
+
227
+ | Harness | Package | Guide |
228
+ | --- | --- | --- |
229
+ | Claude Code | [`packages/claude-code-plugin`](packages/claude-code-plugin) | [docs/integrations/hooks/claude_code.md](docs/integrations/hooks/claude_code.md) |
230
+ | Cursor | [`packages/cursor-hooks`](packages/cursor-hooks) | [docs/integrations/hooks/cursor.md](docs/integrations/hooks/cursor.md) |
231
+ | OpenCode | [`packages/opencode-plugin`](packages/opencode-plugin) | [docs/integrations/hooks/opencode.md](docs/integrations/hooks/opencode.md) |
232
+ | Codex CLI | [`packages/codex-hooks`](packages/codex-hooks) | [docs/integrations/hooks/codex_cli.md](docs/integrations/hooks/codex_cli.md) |
233
+ | Claude Agent SDK | [`packages/claude-agent-sdk-adapter`](packages/claude-agent-sdk-adapter) | [docs/integrations/hooks/claude_agent_sdk.md](docs/integrations/hooks/claude_agent_sdk.md) |
234
+
235
+ Shared client libraries: [`@neotoma/client`](packages/client) (TypeScript), [`neotoma-client`](packages/client-python) (Python).
236
+
223
237
  ### OpenClaw native plugin
224
238
 
225
239
  Neotoma ships as a native OpenClaw plugin with `kind: "memory"`, so it can fill the dedicated memory slot. All 30+ MCP tools are registered as agent tools.
226
240
 
227
241
  ```bash
228
- openclaw plugins install neotoma
242
+ openclaw plugins install clawhub:neotoma
229
243
  ```
230
244
 
231
245
  Then assign it to the memory slot in your OpenClaw config:
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AA8E9B,eAAO,MAAM,GAAG,6CAAY,CAAC;AAwL7B,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAK5D;AAw7ID,wBAAsB,eAAe;;;eAgCpC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAsF9B,eAAO,MAAM,GAAG,6CAAY,CAAC;AA2M7B,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAK5D;AA2gKD,wBAAsB,eAAe;;;eAgCpC"}