dhee 7.0.2__tar.gz → 7.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. dhee-7.2.0/MANIFEST.in +5 -0
  2. dhee-7.2.0/PKG-INFO +341 -0
  3. dhee-7.2.0/README.md +239 -0
  4. {dhee-7.0.2 → dhee-7.2.0}/dhee/__init__.py +5 -4
  5. {dhee-7.0.2 → dhee-7.2.0}/dhee/cli.py +119 -93
  6. {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_onboard.py +36 -25
  7. dhee-7.2.0/dhee/cli_pretty.py +273 -0
  8. {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite.py +327 -0
  9. {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite_common.py +7 -0
  10. dhee-7.2.0/dhee/db/sqlite_domains.py +1393 -0
  11. {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/install.py +7 -5
  12. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/__main__.py +30 -5
  13. {dhee-7.0.2 → dhee-7.2.0}/dhee/mcp_server.py +326 -1
  14. {dhee-7.0.2 → dhee-7.2.0}/dhee/mcp_slim.py +301 -0
  15. dhee-7.2.0/dhee/memory/narrative_scene.py +1982 -0
  16. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/search_pipeline.py +16 -9
  17. {dhee-7.0.2 → dhee-7.2.0}/dhee/repo_link.py +243 -43
  18. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/pre_tool_gate.py +39 -1
  19. dhee-7.2.0/dhee/schemas/__init__.py +1 -0
  20. dhee-7.2.0/dhee/schemas/narrative.py +139 -0
  21. dhee-7.2.0/dhee/schemas/scene_card.py +77 -0
  22. dhee-7.2.0/dhee.egg-info/PKG-INFO +341 -0
  23. {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/SOURCES.txt +7 -0
  24. {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/requires.txt +5 -0
  25. {dhee-7.0.2 → dhee-7.2.0}/pyproject.toml +5 -4
  26. {dhee-7.0.2 → dhee-7.2.0}/tests/test_claude_code_hooks.py +21 -0
  27. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cli_onboard_update.py +2 -0
  28. dhee-7.2.0/tests/test_cli_pretty.py +52 -0
  29. {dhee-7.0.2 → dhee-7.2.0}/tests/test_dhee_init.py +11 -3
  30. {dhee-7.0.2 → dhee-7.2.0}/tests/test_harness_install.py +2 -1
  31. {dhee-7.0.2 → dhee-7.2.0}/tests/test_mcp_tools_slim.py +8 -0
  32. {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_quality_contract.py +38 -0
  33. dhee-7.2.0/tests/test_narrative_scene_intelligence.py +776 -0
  34. {dhee-7.0.2 → dhee-7.2.0}/tests/test_packaging.py +1 -1
  35. {dhee-7.0.2 → dhee-7.2.0}/tests/test_repo_link.py +34 -5
  36. {dhee-7.0.2 → dhee-7.2.0}/tests/test_router.py +20 -0
  37. dhee-7.0.2/MANIFEST.in +0 -9
  38. dhee-7.0.2/PKG-INFO +0 -261
  39. dhee-7.0.2/README.md +0 -160
  40. dhee-7.0.2/dhee/db/sqlite_domains.py +0 -498
  41. dhee-7.0.2/dhee.egg-info/PKG-INFO +0 -261
  42. {dhee-7.0.2 → dhee-7.2.0}/LICENSE +0 -0
  43. {dhee-7.0.2 → dhee-7.2.0}/dhee/adapters/__init__.py +0 -0
  44. {dhee-7.0.2 → dhee-7.2.0}/dhee/adapters/gstack.py +0 -0
  45. {dhee-7.0.2 → dhee-7.2.0}/dhee/adapters/gstack_parser.py +0 -0
  46. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/__init__.py +0 -0
  47. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/arc_agi.py +0 -0
  48. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/decades.py +0 -0
  49. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/hippocamp.py +0 -0
  50. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/longmemeval.py +0 -0
  51. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/phase0_context_audit.py +0 -0
  52. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/portability.py +0 -0
  53. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/raw_extractors.py +0 -0
  54. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/replay_corpus.py +0 -0
  55. {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/router_replay.py +0 -0
  56. {dhee-7.0.2 → dhee-7.2.0}/dhee/checkpoint_runtime.py +0 -0
  57. {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_config.py +0 -0
  58. {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_mcp.py +0 -0
  59. {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_setup.py +0 -0
  60. {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_update.py +0 -0
  61. {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/__init__.py +0 -0
  62. {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/active.py +0 -0
  63. {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/base.py +0 -0
  64. {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/presets.py +0 -0
  65. {dhee-7.0.2 → dhee-7.2.0}/dhee/context_ir.py +0 -0
  66. {dhee-7.0.2 → dhee-7.2.0}/dhee/context_kernel.py +0 -0
  67. {dhee-7.0.2 → dhee-7.2.0}/dhee/context_state.py +0 -0
  68. {dhee-7.0.2 → dhee-7.2.0}/dhee/contract_runtime.py +0 -0
  69. {dhee-7.0.2 → dhee-7.2.0}/dhee/contract_supervisor.py +0 -0
  70. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/__init__.py +0 -0
  71. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/alaya.py +0 -0
  72. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/answer_orchestration.py +0 -0
  73. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/artifacts.py +0 -0
  74. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/belief.py +0 -0
  75. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/buddhi.py +0 -0
  76. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/category.py +0 -0
  77. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/codex_artifacts.py +0 -0
  78. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/codex_stream.py +0 -0
  79. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/cognition.py +0 -0
  80. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/cognition_kernel.py +0 -0
  81. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/conflict.py +0 -0
  82. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/context_bootstrap.py +0 -0
  83. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/contrastive.py +0 -0
  84. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/decay.py +0 -0
  85. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/distillation.py +0 -0
  86. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/echo.py +0 -0
  87. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram.py +0 -0
  88. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_consolidator.py +0 -0
  89. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_extractor.py +0 -0
  90. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_tiering.py +0 -0
  91. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_verification.py +0 -0
  92. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/enrichment.py +0 -0
  93. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/episode.py +0 -0
  94. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/episodic_index.py +0 -0
  95. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/evolution.py +0 -0
  96. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/file_baseline.py +0 -0
  97. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/file_read_tracker.py +0 -0
  98. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/forgetting.py +0 -0
  99. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/fusion.py +0 -0
  100. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/graph.py +0 -0
  101. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/handoff_snapshot.py +0 -0
  102. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/heuristic.py +0 -0
  103. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/intent.py +0 -0
  104. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/intention.py +0 -0
  105. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/kernel.py +0 -0
  106. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/learnings.py +0 -0
  107. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/live_context.py +0 -0
  108. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/log_parser.py +0 -0
  109. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/meta_buddhi.py +0 -0
  110. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/pattern_detector.py +0 -0
  111. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/policy.py +0 -0
  112. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/profile.py +0 -0
  113. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/provenance.py +0 -0
  114. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/resolvers.py +0 -0
  115. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/retrieval.py +0 -0
  116. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/samskara.py +0 -0
  117. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/scene.py +0 -0
  118. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/session_tracker.py +0 -0
  119. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/shared_tasks.py +0 -0
  120. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/strategy.py +0 -0
  121. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/task_state.py +0 -0
  122. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/thread_state.py +0 -0
  123. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/traces.py +0 -0
  124. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/trigger.py +0 -0
  125. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/viveka.py +0 -0
  126. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/workspace_line.py +0 -0
  127. {dhee-7.0.2 → dhee-7.2.0}/dhee/core/workspace_line_bus.py +0 -0
  128. {dhee-7.0.2 → dhee-7.2.0}/dhee/db/__init__.py +0 -0
  129. {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite_analytics.py +0 -0
  130. {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite_artifacts.py +0 -0
  131. {dhee-7.0.2 → dhee-7.2.0}/dhee/debugger_api.py +0 -0
  132. {dhee-7.0.2 → dhee-7.2.0}/dhee/demo.py +0 -0
  133. {dhee-7.0.2 → dhee-7.2.0}/dhee/doctor.py +0 -0
  134. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/__init__.py +0 -0
  135. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/base.py +0 -0
  136. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/gemini.py +0 -0
  137. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/nvidia.py +0 -0
  138. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/ollama.py +0 -0
  139. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/openai.py +0 -0
  140. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/qwen.py +0 -0
  141. {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/simple.py +0 -0
  142. {dhee-7.0.2 → dhee-7.2.0}/dhee/exceptions.py +0 -0
  143. {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/__init__.py +0 -0
  144. {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/mounts.py +0 -0
  145. {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/types.py +0 -0
  146. {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/uri.py +0 -0
  147. {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/workspace.py +0 -0
  148. {dhee-7.0.2 → dhee-7.2.0}/dhee/graph_projection_hardening.py +0 -0
  149. {dhee-7.0.2 → dhee-7.2.0}/dhee/graph_proof_bundle.py +0 -0
  150. {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/__init__.py +0 -0
  151. {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/base.py +0 -0
  152. {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/claude_code.py +0 -0
  153. {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/codex.py +0 -0
  154. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/__init__.py +0 -0
  155. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/__init__.py +0 -0
  156. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/assembler.py +0 -0
  157. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/chunker.py +0 -0
  158. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/ingest.py +0 -0
  159. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/install.py +0 -0
  160. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/migrate.py +0 -0
  161. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/privacy.py +0 -0
  162. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/renderer.py +0 -0
  163. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/signal.py +0 -0
  164. {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/scene_world.py +0 -0
  165. {dhee-7.0.2 → dhee-7.2.0}/dhee/incremental_context.py +0 -0
  166. {dhee-7.0.2 → dhee-7.2.0}/dhee/install_cleanup.py +0 -0
  167. {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/__init__.py +0 -0
  168. {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/context_sources.py +0 -0
  169. {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/hermes.py +0 -0
  170. {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/hermes_provider/__init__.py +0 -0
  171. {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/hermes_provider/provider.py +0 -0
  172. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/__init__.py +0 -0
  173. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/base.py +0 -0
  174. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/dhee.py +0 -0
  175. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/gemini.py +0 -0
  176. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/mock.py +0 -0
  177. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/nvidia.py +0 -0
  178. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/ollama.py +0 -0
  179. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/openai.py +0 -0
  180. {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/teacher_logger.py +0 -0
  181. {dhee-7.0.2 → dhee-7.2.0}/dhee/mcp_registry.py +0 -0
  182. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/__init__.py +0 -0
  183. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/admission.py +0 -0
  184. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/base.py +0 -0
  185. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/core.py +0 -0
  186. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/cost.py +0 -0
  187. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/episodic.py +0 -0
  188. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/main.py +0 -0
  189. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/orchestration.py +0 -0
  190. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/parallel.py +0 -0
  191. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/projects.py +0 -0
  192. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/quality.py +0 -0
  193. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/reranker.py +0 -0
  194. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/retrieval_helpers.py +0 -0
  195. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/scene_profile.py +0 -0
  196. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/scoping.py +0 -0
  197. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/smart.py +0 -0
  198. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/tasks.py +0 -0
  199. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/utils.py +0 -0
  200. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/vectors.py +0 -0
  201. {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/write_pipeline.py +0 -0
  202. {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/__init__.py +0 -0
  203. {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/karma_evaluator.py +0 -0
  204. {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/progressive_trainer.py +0 -0
  205. {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/replay_gate.py +0 -0
  206. {dhee-7.0.2 → dhee-7.2.0}/dhee/observability.py +0 -0
  207. {dhee-7.0.2 → dhee-7.2.0}/dhee/patch_families.py +0 -0
  208. {dhee-7.0.2 → dhee-7.2.0}/dhee/plugin.py +0 -0
  209. {dhee-7.0.2 → dhee-7.2.0}/dhee/protocol/__init__.py +0 -0
  210. {dhee-7.0.2 → dhee-7.2.0}/dhee/protocol/v1.py +0 -0
  211. {dhee-7.0.2 → dhee-7.2.0}/dhee/provider_defaults.py +0 -0
  212. {dhee-7.0.2 → dhee-7.2.0}/dhee/release_hygiene.py +0 -0
  213. {dhee-7.0.2 → dhee-7.2.0}/dhee/replay_branching.py +0 -0
  214. {dhee-7.0.2 → dhee-7.2.0}/dhee/repo_intelligence.py +0 -0
  215. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/__init__.py +0 -0
  216. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/agent_digest.py +0 -0
  217. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/bash_digest.py +0 -0
  218. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/bootstrap.py +0 -0
  219. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/critical_surface.py +0 -0
  220. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/digest.py +0 -0
  221. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/edit_ledger.py +0 -0
  222. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/grep_digest.py +0 -0
  223. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/handlers.py +0 -0
  224. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/install.py +0 -0
  225. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/intent.py +0 -0
  226. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/policy.py +0 -0
  227. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/ptr_store.py +0 -0
  228. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/quality_report.py +0 -0
  229. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/stats.py +0 -0
  230. {dhee-7.0.2 → dhee-7.2.0}/dhee/router/tune.py +0 -0
  231. {dhee-7.0.2 → dhee-7.2.0}/dhee/runtime.py +0 -0
  232. {dhee-7.0.2 → dhee-7.2.0}/dhee/runtime_daemon.py +0 -0
  233. {dhee-7.0.2 → dhee-7.2.0}/dhee/runtime_io.py +0 -0
  234. {dhee-7.0.2 → dhee-7.2.0}/dhee/secret_store.py +0 -0
  235. {dhee-7.0.2 → dhee-7.2.0}/dhee/simple.py +0 -0
  236. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/__init__.py +0 -0
  237. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/discovery.py +0 -0
  238. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/executor.py +0 -0
  239. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/hashing.py +0 -0
  240. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/miner.py +0 -0
  241. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/outcomes.py +0 -0
  242. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/schema.py +0 -0
  243. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/store.py +0 -0
  244. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/structure.py +0 -0
  245. {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/trajectory.py +0 -0
  246. {dhee-7.0.2 → dhee-7.2.0}/dhee/task_contracts.py +0 -0
  247. {dhee-7.0.2 → dhee-7.2.0}/dhee/temporal_fact_integration.py +0 -0
  248. {dhee-7.0.2 → dhee-7.2.0}/dhee/temporal_fact_ledger.py +0 -0
  249. {dhee-7.0.2 → dhee-7.2.0}/dhee/temporal_scenes.py +0 -0
  250. {dhee-7.0.2 → dhee-7.2.0}/dhee/training/__init__.py +0 -0
  251. {dhee-7.0.2 → dhee-7.2.0}/dhee/training/data_formatter.py +0 -0
  252. {dhee-7.0.2 → dhee-7.2.0}/dhee/training/karma.py +0 -0
  253. {dhee-7.0.2 → dhee-7.2.0}/dhee/training/nididhyasana.py +0 -0
  254. {dhee-7.0.2 → dhee-7.2.0}/dhee/training/smrti.py +0 -0
  255. {dhee-7.0.2 → dhee-7.2.0}/dhee/training/train.py +0 -0
  256. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/__init__.py +0 -0
  257. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/cli.py +0 -0
  258. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/server.py +0 -0
  259. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/assets/CanvasView-Cl1HxIK0.js +0 -0
  260. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/assets/index-BboZhdsv.js +0 -0
  261. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/assets/index-CIsLOp4u.css +0 -0
  262. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/dhee-logo.png +0 -0
  263. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/index.html +0 -0
  264. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/index.html +0 -0
  265. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/package-lock.json +0 -0
  266. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/package.json +0 -0
  267. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/public/dhee-logo.png +0 -0
  268. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/App.js +0 -0
  269. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/App.tsx +0 -0
  270. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/api.js +0 -0
  271. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/api.ts +0 -0
  272. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/AssetDrawer.js +0 -0
  273. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/AssetDrawer.tsx +0 -0
  274. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ChatMessage.js +0 -0
  275. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ChatMessage.tsx +0 -0
  276. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/FirstRunPanel.js +0 -0
  277. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/FirstRunPanel.tsx +0 -0
  278. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/LinePanel.js +0 -0
  279. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/LinePanel.tsx +0 -0
  280. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/NavRail.js +0 -0
  281. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/NavRail.tsx +0 -0
  282. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/OrgDrawer.js +0 -0
  283. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/OrgDrawer.tsx +0 -0
  284. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TopBar.js +0 -0
  285. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TopBar.tsx +0 -0
  286. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TweaksPanel.js +0 -0
  287. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TweaksPanel.tsx +0 -0
  288. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/WorkspaceManagerModal.js +0 -0
  289. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/WorkspaceManagerModal.tsx +0 -0
  290. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasControls.js +0 -0
  291. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasControls.tsx +0 -0
  292. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasSkeleton.js +0 -0
  293. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasSkeleton.tsx +0 -0
  294. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/DirectionHints.js +0 -0
  295. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/DirectionHints.tsx +0 -0
  296. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/Minimap.js +0 -0
  297. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/Minimap.tsx +0 -0
  298. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/NodeCard.js +0 -0
  299. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/NodeCard.tsx +0 -0
  300. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/forceLayout.js +0 -0
  301. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/forceLayout.ts +0 -0
  302. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/layout.js +0 -0
  303. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/layout.ts +0 -0
  304. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/treeLayout.js +0 -0
  305. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/treeLayout.ts +0 -0
  306. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/useInfiniteCanvas.js +0 -0
  307. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/useInfiniteCanvas.ts +0 -0
  308. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/cards/Cards.js +0 -0
  309. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/cards/Cards.tsx +0 -0
  310. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/graph/CanvasNodeCard.js +0 -0
  311. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/graph/CanvasNodeCard.tsx +0 -0
  312. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/DecayBar.js +0 -0
  313. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/DecayBar.tsx +0 -0
  314. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/Markdown.js +0 -0
  315. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/Markdown.tsx +0 -0
  316. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/SectionHeader.js +0 -0
  317. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/SectionHeader.tsx +0 -0
  318. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/StatPill.js +0 -0
  319. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/StatPill.tsx +0 -0
  320. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/TierBadge.js +0 -0
  321. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/TierBadge.tsx +0 -0
  322. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/main.js +0 -0
  323. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/main.tsx +0 -0
  324. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/styles.css +0 -0
  325. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/types.js +0 -0
  326. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/types.ts +0 -0
  327. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/CanvasView.js +0 -0
  328. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/CanvasView.tsx +0 -0
  329. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ChannelView.js +0 -0
  330. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ChannelView.tsx +0 -0
  331. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ConflictView.js +0 -0
  332. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ConflictView.tsx +0 -0
  333. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ContextView.js +0 -0
  334. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ContextView.tsx +0 -0
  335. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/EvolutionView.js +0 -0
  336. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/EvolutionView.tsx +0 -0
  337. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/LaunchView.js +0 -0
  338. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/LaunchView.tsx +0 -0
  339. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/MemoryView.js +0 -0
  340. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/MemoryView.tsx +0 -0
  341. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/NotepadView.js +0 -0
  342. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/NotepadView.tsx +0 -0
  343. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/OrgCanvas.js +0 -0
  344. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/OrgCanvas.tsx +0 -0
  345. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ProductViews.js +0 -0
  346. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ProductViews.tsx +0 -0
  347. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/RouterView.js +0 -0
  348. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/RouterView.tsx +0 -0
  349. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/TasksView.js +0 -0
  350. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/TasksView.tsx +0 -0
  351. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/WorkspaceView.js +0 -0
  352. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/WorkspaceView.tsx +0 -0
  353. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/tsconfig.json +0 -0
  354. {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/vite.config.ts +0 -0
  355. {dhee-7.0.2 → dhee-7.2.0}/dhee/update_capsules.py +0 -0
  356. {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/__init__.py +0 -0
  357. {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/factory.py +0 -0
  358. {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/math.py +0 -0
  359. {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/prompts.py +0 -0
  360. {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/repo_identity.py +0 -0
  361. {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/__init__.py +0 -0
  362. {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/base.py +0 -0
  363. {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/memory.py +0 -0
  364. {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/sqlite_vec.py +0 -0
  365. {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/zvec_store.py +0 -0
  366. {dhee-7.0.2 → dhee-7.2.0}/dhee/verification_runner.py +0 -0
  367. {dhee-7.0.2 → dhee-7.2.0}/dhee/verifier_engine.py +0 -0
  368. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/__init__.py +0 -0
  369. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/capture_store.py +0 -0
  370. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/causal_graph.py +0 -0
  371. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/encoder.py +0 -0
  372. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/gem_extractor.py +0 -0
  373. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/predictor.py +0 -0
  374. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/schema.py +0 -0
  375. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/service.py +0 -0
  376. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/session_graph.py +0 -0
  377. {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/store.py +0 -0
  378. {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/dependency_links.txt +0 -0
  379. {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/entry_points.txt +0 -0
  380. {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/top_level.txt +0 -0
  381. {dhee-7.0.2 → dhee-7.2.0}/dhee_shared/__init__.py +0 -0
  382. {dhee-7.0.2 → dhee-7.2.0}/dhee_shared/model_paths.py +0 -0
  383. {dhee-7.0.2 → dhee-7.2.0}/engram/__init__.py +0 -0
  384. {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/__init__.py +0 -0
  385. {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/bus.py +0 -0
  386. {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/pubsub.py +0 -0
  387. {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/server.py +0 -0
  388. {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/store.py +0 -0
  389. {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/workspace.py +0 -0
  390. {dhee-7.0.2 → dhee-7.2.0}/setup.cfg +0 -0
  391. {dhee-7.0.2 → dhee-7.2.0}/tests/test_accel.py +0 -0
  392. {dhee-7.0.2 → dhee-7.2.0}/tests/test_accel_benchmark.py +0 -0
  393. {dhee-7.0.2 → dhee-7.2.0}/tests/test_agent_digest.py +0 -0
  394. {dhee-7.0.2 → dhee-7.2.0}/tests/test_artifacts.py +0 -0
  395. {dhee-7.0.2 → dhee-7.2.0}/tests/test_auto_lifecycle.py +0 -0
  396. {dhee-7.0.2 → dhee-7.2.0}/tests/test_backward_compat.py +0 -0
  397. {dhee-7.0.2 → dhee-7.2.0}/tests/test_batch.py +0 -0
  398. {dhee-7.0.2 → dhee-7.2.0}/tests/test_belief_debugger.py +0 -0
  399. {dhee-7.0.2 → dhee-7.2.0}/tests/test_causal_scene_memory.py +0 -0
  400. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cli_config.py +0 -0
  401. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cli_harness_commands.py +0 -0
  402. {dhee-7.0.2 → dhee-7.2.0}/tests/test_codex_stream.py +0 -0
  403. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cognition_evals.py +0 -0
  404. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cognition_kernel.py +0 -0
  405. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cognition_v3.py +0 -0
  406. {dhee-7.0.2 → dhee-7.2.0}/tests/test_context_state.py +0 -0
  407. {dhee-7.0.2 → dhee-7.2.0}/tests/test_core_memory.py +0 -0
  408. {dhee-7.0.2 → dhee-7.2.0}/tests/test_cosine_similarity.py +0 -0
  409. {dhee-7.0.2 → dhee-7.2.0}/tests/test_decades_eval.py +0 -0
  410. {dhee-7.0.2 → dhee-7.2.0}/tests/test_dedup.py +0 -0
  411. {dhee-7.0.2 → dhee-7.2.0}/tests/test_deferred_enrichment.py +0 -0
  412. {dhee-7.0.2 → dhee-7.2.0}/tests/test_demo.py +0 -0
  413. {dhee-7.0.2 → dhee-7.2.0}/tests/test_dhee_model_paths.py +0 -0
  414. {dhee-7.0.2 → dhee-7.2.0}/tests/test_dheefs.py +0 -0
  415. {dhee-7.0.2 → dhee-7.2.0}/tests/test_distillation.py +0 -0
  416. {dhee-7.0.2 → dhee-7.2.0}/tests/test_e2e_all_features.py +0 -0
  417. {dhee-7.0.2 → dhee-7.2.0}/tests/test_engram_tiering.py +0 -0
  418. {dhee-7.0.2 → dhee-7.2.0}/tests/test_engram_tiering_promotion.py +0 -0
  419. {dhee-7.0.2 → dhee-7.2.0}/tests/test_evolution_meta_loop.py +0 -0
  420. {dhee-7.0.2 → dhee-7.2.0}/tests/test_evolution_session_gate.py +0 -0
  421. {dhee-7.0.2 → dhee-7.2.0}/tests/test_forgetting.py +0 -0
  422. {dhee-7.0.2 → dhee-7.2.0}/tests/test_graph_proof_bundle.py +0 -0
  423. {dhee-7.0.2 → dhee-7.2.0}/tests/test_gstack_adapter.py +0 -0
  424. {dhee-7.0.2 → dhee-7.2.0}/tests/test_handoff_snapshot.py +0 -0
  425. {dhee-7.0.2 → dhee-7.2.0}/tests/test_harness_adapters.py +0 -0
  426. {dhee-7.0.2 → dhee-7.2.0}/tests/test_hashing.py +0 -0
  427. {dhee-7.0.2 → dhee-7.2.0}/tests/test_hermes_provider.py +0 -0
  428. {dhee-7.0.2 → dhee-7.2.0}/tests/test_hippocamp_benchmark.py +0 -0
  429. {dhee-7.0.2 → dhee-7.2.0}/tests/test_incremental_context.py +0 -0
  430. {dhee-7.0.2 → dhee-7.2.0}/tests/test_install_cleanup.py +0 -0
  431. {dhee-7.0.2 → dhee-7.2.0}/tests/test_intent.py +0 -0
  432. {dhee-7.0.2 → dhee-7.2.0}/tests/test_karma_evaluator.py +0 -0
  433. {dhee-7.0.2 → dhee-7.2.0}/tests/test_learnings.py +0 -0
  434. {dhee-7.0.2 → dhee-7.2.0}/tests/test_locomo_plus_runner.py +0 -0
  435. {dhee-7.0.2 → dhee-7.2.0}/tests/test_log_parser.py +0 -0
  436. {dhee-7.0.2 → dhee-7.2.0}/tests/test_longmemeval_config.py +0 -0
  437. {dhee-7.0.2 → dhee-7.2.0}/tests/test_mcp_artifact_tools.py +0 -0
  438. {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_admission.py +0 -0
  439. {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_os_service.py +0 -0
  440. {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_types.py +0 -0
  441. {dhee-7.0.2 → dhee-7.2.0}/tests/test_meta_buddhi_group_relative.py +0 -0
  442. {dhee-7.0.2 → dhee-7.2.0}/tests/test_migration.py +0 -0
  443. {dhee-7.0.2 → dhee-7.2.0}/tests/test_miner.py +0 -0
  444. {dhee-7.0.2 → dhee-7.2.0}/tests/test_nvidia_embedder.py +0 -0
  445. {dhee-7.0.2 → dhee-7.2.0}/tests/test_openclaw.py +0 -0
  446. {dhee-7.0.2 → dhee-7.2.0}/tests/test_orchestration_core.py +0 -0
  447. {dhee-7.0.2 → dhee-7.2.0}/tests/test_oss_61_regressions.py +0 -0
  448. {dhee-7.0.2 → dhee-7.2.0}/tests/test_parallel.py +0 -0
  449. {dhee-7.0.2 → dhee-7.2.0}/tests/test_patch_families.py +0 -0
  450. {dhee-7.0.2 → dhee-7.2.0}/tests/test_plugin_learnings.py +0 -0
  451. {dhee-7.0.2 → dhee-7.2.0}/tests/test_portability_eval.py +0 -0
  452. {dhee-7.0.2 → dhee-7.2.0}/tests/test_power_packages.py +0 -0
  453. {dhee-7.0.2 → dhee-7.2.0}/tests/test_presets.py +0 -0
  454. {dhee-7.0.2 → dhee-7.2.0}/tests/test_profile.py +0 -0
  455. {dhee-7.0.2 → dhee-7.2.0}/tests/test_progressive_trainer.py +0 -0
  456. {dhee-7.0.2 → dhee-7.2.0}/tests/test_projects.py +0 -0
  457. {dhee-7.0.2 → dhee-7.2.0}/tests/test_protocol_v1.py +0 -0
  458. {dhee-7.0.2 → dhee-7.2.0}/tests/test_query_cache.py +0 -0
  459. {dhee-7.0.2 → dhee-7.2.0}/tests/test_release_hygiene.py +0 -0
  460. {dhee-7.0.2 → dhee-7.2.0}/tests/test_replay_branching.py +0 -0
  461. {dhee-7.0.2 → dhee-7.2.0}/tests/test_replay_corpus_export.py +0 -0
  462. {dhee-7.0.2 → dhee-7.2.0}/tests/test_replay_gate.py +0 -0
  463. {dhee-7.0.2 → dhee-7.2.0}/tests/test_repo_intelligence.py +0 -0
  464. {dhee-7.0.2 → dhee-7.2.0}/tests/test_reranker_defaults.py +0 -0
  465. {dhee-7.0.2 → dhee-7.2.0}/tests/test_router_replay.py +0 -0
  466. {dhee-7.0.2 → dhee-7.2.0}/tests/test_router_stats_agents.py +0 -0
  467. {dhee-7.0.2 → dhee-7.2.0}/tests/test_runtime.py +0 -0
  468. {dhee-7.0.2 → dhee-7.2.0}/tests/test_runtime_hardening.py +0 -0
  469. {dhee-7.0.2 → dhee-7.2.0}/tests/test_scene.py +0 -0
  470. {dhee-7.0.2 → dhee-7.2.0}/tests/test_scene_world_hook.py +0 -0
  471. {dhee-7.0.2 → dhee-7.2.0}/tests/test_secret_store.py +0 -0
  472. {dhee-7.0.2 → dhee-7.2.0}/tests/test_session_tracker.py +0 -0
  473. {dhee-7.0.2 → dhee-7.2.0}/tests/test_shared_tasks.py +0 -0
  474. {dhee-7.0.2 → dhee-7.2.0}/tests/test_simple_zero_config.py +0 -0
  475. {dhee-7.0.2 → dhee-7.2.0}/tests/test_skills.py +0 -0
  476. {dhee-7.0.2 → dhee-7.2.0}/tests/test_smart_memory.py +0 -0
  477. {dhee-7.0.2 → dhee-7.2.0}/tests/test_sqlite_connection_pool.py +0 -0
  478. {dhee-7.0.2 → dhee-7.2.0}/tests/test_sqlite_vec.py +0 -0
  479. {dhee-7.0.2 → dhee-7.2.0}/tests/test_structural.py +0 -0
  480. {dhee-7.0.2 → dhee-7.2.0}/tests/test_structured_resolution.py +0 -0
  481. {dhee-7.0.2 → dhee-7.2.0}/tests/test_task_contracts.py +0 -0
  482. {dhee-7.0.2 → dhee-7.2.0}/tests/test_tasks.py +0 -0
  483. {dhee-7.0.2 → dhee-7.2.0}/tests/test_temporal_fact_integration.py +0 -0
  484. {dhee-7.0.2 → dhee-7.2.0}/tests/test_temporal_fact_ledger.py +0 -0
  485. {dhee-7.0.2 → dhee-7.2.0}/tests/test_temporal_scenes.py +0 -0
  486. {dhee-7.0.2 → dhee-7.2.0}/tests/test_thread_state.py +0 -0
  487. {dhee-7.0.2 → dhee-7.2.0}/tests/test_traces.py +0 -0
  488. {dhee-7.0.2 → dhee-7.2.0}/tests/test_trajectory.py +0 -0
  489. {dhee-7.0.2 → dhee-7.2.0}/tests/test_ui.py +0 -0
  490. {dhee-7.0.2 → dhee-7.2.0}/tests/test_unified_enrichment.py +0 -0
  491. {dhee-7.0.2 → dhee-7.2.0}/tests/test_update_capsules.py +0 -0
  492. {dhee-7.0.2 → dhee-7.2.0}/tests/test_vector_store_factory.py +0 -0
  493. {dhee-7.0.2 → dhee-7.2.0}/tests/test_verification_runner.py +0 -0
  494. {dhee-7.0.2 → dhee-7.2.0}/tests/test_verifier_engine.py +0 -0
  495. {dhee-7.0.2 → dhee-7.2.0}/tests/test_workspace_line_agent_emit.py +0 -0
  496. {dhee-7.0.2 → dhee-7.2.0}/tests/test_workspace_line_bus.py +0 -0
  497. {dhee-7.0.2 → dhee-7.2.0}/tests/test_zvec_store.py +0 -0
dhee-7.2.0/MANIFEST.in ADDED
@@ -0,0 +1,5 @@
1
+ prune dhee/ui/web/node_modules
2
+
3
+ # Source distributions are driven by pyproject package discovery and explicit
4
+ # package-data globs. Keep this file quiet unless we intentionally add broad
5
+ # graft rules that need pruning.
dhee-7.2.0/PKG-INFO ADDED
@@ -0,0 +1,341 @@
1
+ Metadata-Version: 2.4
2
+ Name: dhee
3
+ Version: 7.2.0
4
+ Summary: Dhee - world memory layer and context compiler for AI agents
5
+ Author: Sankhya AI Labs
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Sankhya-AI/Dhee
8
+ Project-URL: Repository, https://github.com/Sankhya-AI/Dhee
9
+ Project-URL: Issues, https://github.com/Sankhya-AI/Dhee/issues
10
+ Project-URL: Documentation, https://github.com/Sankhya-AI/Dhee#readme
11
+ Project-URL: Changelog, https://github.com/Sankhya-AI/Dhee/blob/main/CHANGELOG.md
12
+ Keywords: world-memory,context-compiler,developer-brain,coding-agents,mcp,claude-code,codex,chotu,local-first,memory-layer,ai,agents
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Requires-Python: >=3.9
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: pydantic>=2.0
26
+ Requires-Dist: requests>=2.28.0
27
+ Requires-Dist: pyyaml>=6.0
28
+ Requires-Dist: cryptography>=42.0.0
29
+ Requires-Dist: fastapi>=0.100.0
30
+ Requires-Dist: uvicorn>=0.20.0
31
+ Requires-Dist: python-multipart>=0.0.9
32
+ Requires-Dist: kuzu>=0.11.3
33
+ Requires-Dist: tree-sitter<0.26,>=0.23.2
34
+ Requires-Dist: tree-sitter-python<0.26,>=0.23.6
35
+ Requires-Dist: tree-sitter-javascript<0.26,>=0.23.1
36
+ Requires-Dist: tree-sitter-typescript<0.26,>=0.23.2
37
+ Provides-Extra: gemini
38
+ Requires-Dist: google-genai>=1.0.0; extra == "gemini"
39
+ Provides-Extra: openai
40
+ Requires-Dist: openai>=1.0.0; extra == "openai"
41
+ Provides-Extra: ollama
42
+ Requires-Dist: ollama>=0.4.0; extra == "ollama"
43
+ Provides-Extra: nvidia
44
+ Requires-Dist: openai>=1.0.0; extra == "nvidia"
45
+ Provides-Extra: zvec
46
+ Requires-Dist: zvec>=0.4.0; python_version >= "3.11" and extra == "zvec"
47
+ Provides-Extra: sqlite-vec
48
+ Requires-Dist: sqlite-vec>=0.1.1; extra == "sqlite-vec"
49
+ Provides-Extra: graph
50
+ Requires-Dist: kuzu>=0.11.3; extra == "graph"
51
+ Provides-Extra: swe
52
+ Requires-Dist: tree-sitter<0.26,>=0.23.2; extra == "swe"
53
+ Requires-Dist: tree-sitter-python<0.26,>=0.23.6; extra == "swe"
54
+ Requires-Dist: tree-sitter-javascript<0.26,>=0.23.1; extra == "swe"
55
+ Requires-Dist: tree-sitter-typescript<0.26,>=0.23.2; extra == "swe"
56
+ Provides-Extra: local
57
+ Requires-Dist: llama-cpp-python>=0.3; extra == "local"
58
+ Requires-Dist: sentence-transformers>=3.0; extra == "local"
59
+ Provides-Extra: mcp
60
+ Requires-Dist: mcp>=1.0.0; python_version >= "3.10" and extra == "mcp"
61
+ Provides-Extra: api
62
+ Requires-Dist: fastapi>=0.100.0; extra == "api"
63
+ Requires-Dist: uvicorn>=0.20.0; extra == "api"
64
+ Requires-Dist: python-multipart>=0.0.9; extra == "api"
65
+ Requires-Dist: httpx>=0.25.0; extra == "api"
66
+ Requires-Dist: websockets>=12.0; extra == "api"
67
+ Provides-Extra: bus
68
+ Provides-Extra: benchmarks
69
+ Requires-Dist: huggingface_hub>=0.24.0; extra == "benchmarks"
70
+ Provides-Extra: edge
71
+ Requires-Dist: onnxruntime>=1.16; extra == "edge"
72
+ Provides-Extra: training
73
+ Requires-Dist: unsloth; extra == "training"
74
+ Requires-Dist: datasets>=2.0; extra == "training"
75
+ Requires-Dist: trl>=0.7; extra == "training"
76
+ Requires-Dist: peft>=0.6; extra == "training"
77
+ Provides-Extra: app
78
+ Requires-Dist: openai>=1.0.0; extra == "app"
79
+ Requires-Dist: google-genai>=1.0.0; extra == "app"
80
+ Requires-Dist: ollama>=0.4.0; extra == "app"
81
+ Provides-Extra: all
82
+ Requires-Dist: google-genai>=1.0.0; extra == "all"
83
+ Requires-Dist: openai>=1.0.0; extra == "all"
84
+ Requires-Dist: ollama>=0.4.0; extra == "all"
85
+ Requires-Dist: zvec>=0.4.0; python_version >= "3.11" and extra == "all"
86
+ Requires-Dist: mcp>=1.0.0; python_version >= "3.10" and extra == "all"
87
+ Requires-Dist: fastapi>=0.100.0; extra == "all"
88
+ Requires-Dist: uvicorn>=0.20.0; extra == "all"
89
+ Requires-Dist: python-multipart>=0.0.9; extra == "all"
90
+ Requires-Dist: kuzu>=0.11.3; extra == "all"
91
+ Requires-Dist: huggingface_hub>=0.24.0; extra == "all"
92
+ Requires-Dist: llama-cpp-python>=0.3; extra == "all"
93
+ Requires-Dist: sentence-transformers>=3.0; extra == "all"
94
+ Provides-Extra: dev
95
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
96
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
97
+ Requires-Dist: openai>=1.0.0; extra == "dev"
98
+ Requires-Dist: huggingface_hub>=0.24.0; extra == "dev"
99
+ Requires-Dist: build>=1.0.0; extra == "dev"
100
+ Requires-Dist: twine>=5.0.0; extra == "dev"
101
+ Dynamic: license-file
102
+
103
+ <p align="center">
104
+ <img src="https://raw.githubusercontent.com/Sankhya-AI/Dhee/main/docs/dhee-hero.png" alt="Dhee world memory layer for AI agents" width="100%">
105
+ </p>
106
+
107
+ <h1 align="center">Dhee</h1>
108
+
109
+ <p align="center">
110
+ <b>World memory for AI agents.</b><br>
111
+ A context compiler, repo brain, narrative scene graph, handoff bus, and proof layer for Codex, Claude Code, Cursor, Gemini CLI, Cline, Chotu, and any MCP client.
112
+ </p>
113
+
114
+ <p align="center">
115
+ <a href="https://pypi.org/project/dhee"><img src="https://img.shields.io/pypi/v/dhee?style=flat-square&color=orange" alt="PyPI"></a>
116
+ <a href="https://pypi.org/project/dhee"><img src="https://img.shields.io/badge/python-3.9%2B-blue.svg?style=flat-square" alt="Python 3.9+"></a>
117
+ <a href="https://github.com/Sankhya-AI/Dhee/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT License"></a>
118
+ <a href="benchmarks/longmemeval/"><img src="https://img.shields.io/badge/LongMemEval-R%405%2099.4%25-brightgreen.svg?style=flat-square" alt="LongMemEval R@5 99.4%"></a>
119
+ </p>
120
+
121
+ ---
122
+
123
+ Dhee gives an agent the bigger story before it takes the next action.
124
+
125
+ LLMs are powerful, but they still miss the arc. What is the user trying to become? What happened last session? Which decision was already made? Which failure should not be repeated? Which proof is required before touching code?
126
+
127
+ Dhee stores that story locally and compiles it into the smallest useful context. Not a transcript pile. Not vibes. Memory with shape.
128
+
129
+ ## Install
130
+
131
+ ```bash
132
+ pip install dhee
133
+ dhee install
134
+ ```
135
+
136
+ Or use the one-command installer:
137
+
138
+ ```bash
139
+ curl -fsSL https://raw.githubusercontent.com/Sankhya-AI/Dhee/main/install.sh | sh
140
+ ```
141
+
142
+ <p align="center">
143
+ <img src="docs/demo/install-demo.gif" alt="Dhee curl install, provider setup, dhee init, status, and shell completion demo" width="100%">
144
+ </p>
145
+
146
+ Wire a repo:
147
+
148
+ ```bash
149
+ cd /path/to/repo-or-folder
150
+ dhee init
151
+ dhee status
152
+ dhee ui
153
+ ```
154
+
155
+ `dhee init` is the opt-in switch. Run it in the current directory, pass a folder, or pass a git URL:
156
+
157
+ ```bash
158
+ dhee init /path/to/folder
159
+ dhee init https://github.com/org/repo.git
160
+ ```
161
+
162
+ Folders that have not run `dhee init` stay vanilla in Codex and Claude Code.
163
+
164
+ Shell autocomplete is built in:
165
+
166
+ ```bash
167
+ dhee completion --shell zsh
168
+ dhee completion --shell bash
169
+ dhee completion --shell fish
170
+ ```
171
+
172
+ ## What Is Dhee?
173
+
174
+ Dhee is the memory layer agents should have had from day one.
175
+
176
+ It runs beside the model and answers the questions that raw chat history cannot:
177
+
178
+ | The agent needs | Dhee gives it |
179
+ | --- | --- |
180
+ | What matters right now? | A compiled context packet with included and rejected reasons. |
181
+ | What happened before? | Durable user, project, repo, scene, and handoff memory. |
182
+ | What files are risky? | Repo brain impact analysis, likely tests, owners, routes, and symbols. |
183
+ | What should not be used? | Secret filters, privacy classes, supersession, contradiction, and proof gates. |
184
+ | What is the larger story? | Series, Seasons, Episodes, Scenes, and SceneCards. |
185
+ | Can another agent continue? | Session digests, shared task state, evidence refs, and handoff packets. |
186
+
187
+ ## Context Compiler
188
+
189
+ Most agents drown in context or starve without it. Dhee does the boring hard part in the middle.
190
+
191
+ - Reads summarize files instead of dumping them.
192
+ - Searches return compact matches with expansion pointers.
193
+ - Tool output becomes reusable evidence, not one-turn sludge.
194
+ - Task contracts define files, constraints, tests, and proof obligations.
195
+ - SceneCards become the default retrieval object.
196
+ - Raw transcripts stay out of prompts unless explicitly requested.
197
+
198
+ The model gets the part of the world it needs, in the form it can use.
199
+
200
+ ## Narrative Memory
201
+
202
+ This is the new Dhee core.
203
+
204
+ ```text
205
+ Series -> Season -> Episode -> Scene -> SceneCard -> MemoryItem
206
+ ```
207
+
208
+ In plain English:
209
+
210
+ - **Series** is the biggest purpose. Example: become a successful CTO.
211
+ - **Season** is a period of the story: learning, struggle, first success, downfall, comeback.
212
+ - **Episode** is the meaningful arc of a day.
213
+ - **Scene** is a bounded work moment with a hero, intent, action, obstacle, result, and outcome.
214
+ - **SceneCard** is the retrieval card the agent sees later: compact, evidence-backed, privacy-aware.
215
+ - **MemoryItem** is promoted only when the SceneCard is worth keeping long-term.
216
+
217
+ That story gives the model anticipation. The prior is advisory, never bossy: explicit user intent, facts, privacy, and proof gates win.
218
+
219
+ ## Retrieval That Actually Ranks
220
+
221
+ Dhee can run model-free, but the production retrieval path is built for serious agent work:
222
+
223
+ ```bash
224
+ python3.11 -m pip install "dhee[nvidia,zvec,mcp]"
225
+ dhee key set nvidia
226
+ ```
227
+
228
+ Current high-quality stack:
229
+
230
+ - Embedder: `nvidia/llama-nemotron-embed-vl-1b-v2`
231
+ - Reranker: `nvidia/llama-3.2-nv-rerankqa-1b-v2`
232
+ - Vector backend: `zvec` through `dhee-accel`
233
+ - Routine narrative rollups: `google/gemma-4-31b-it`
234
+ - Series-level strategic rollups: `moonshotai/kimi-k2.6`
235
+
236
+ Deterministic filters still go first: secrets, private scenes, contradicted cards, superseded cards, and code-mutation proof gates cannot be talked around by a high similarity score.
237
+
238
+ ## MCP Tools
239
+
240
+ Add Dhee to any MCP client:
241
+
242
+ ```json
243
+ {
244
+ "mcpServers": {
245
+ "dhee": { "command": "dhee-mcp" }
246
+ }
247
+ }
248
+ ```
249
+
250
+ Scene intelligence tools:
251
+
252
+ ```text
253
+ dhee_scene_start
254
+ dhee_scene_event
255
+ dhee_scene_end
256
+ dhee_scene_context
257
+ dhee_narrative_prior
258
+ ```
259
+
260
+ Core context tools:
261
+
262
+ ```text
263
+ dhee_context_bootstrap
264
+ dhee_read
265
+ dhee_grep
266
+ dhee_bash
267
+ dhee_context_pack
268
+ dhee_scene_search
269
+ ```
270
+
271
+ A good agent loop is simple:
272
+
273
+ ```text
274
+ bootstrap -> start scene -> gather evidence -> retrieve context -> act -> verify -> end scene -> save digest
275
+ ```
276
+
277
+ ## Repo Brain
278
+
279
+ Ask: "If I touch this file, what breaks?"
280
+
281
+ Dhee's repo brain answers with graph-backed evidence:
282
+
283
+ - impacted files and symbols
284
+ - impacted routes and React components
285
+ - likely tests to run
286
+ - owners from git history
287
+ - related failure signatures
288
+ - source windows with line numbers
289
+
290
+ The repo brain is git-SHA scoped and persisted under `.dhee/context/repo_brain/`, so the agent does not rebuild the same understanding every session.
291
+
292
+ ## Why It Feels Different
293
+
294
+ Normal memory says: "Here are some old notes."
295
+
296
+ Dhee says:
297
+
298
+ - this is the user's bigger goal
299
+ - this is the current season of work
300
+ - this is today's episode
301
+ - this scene has these constraints
302
+ - these cards are safe to use
303
+ - these cards were rejected and why
304
+ - this action needs proof before mutation
305
+
306
+ The result is an agent that feels less random because it can see the arc.
307
+
308
+ ## Benchmarks
309
+
310
+ On LongMemEval full 500-question recall:
311
+
312
+ | System | R@1 | R@3 | R@5 | R@10 |
313
+ | --- | ---: | ---: | ---: | ---: |
314
+ | Dhee | 94.8% | 99.0% | 99.4% | 99.8% |
315
+
316
+ Reproduction notes and outputs live in [`benchmarks/longmemeval/`](benchmarks/longmemeval/).
317
+
318
+ ## What Ships
319
+
320
+ The open source package includes the local memory OS, context compiler, DheeFS, MCP servers, CLI, UI, runtime daemon, handoff bus, repo brain, update capsules, narrative scene intelligence, release checks, and proof tooling.
321
+
322
+ Team governance, hosted dashboards, org policy, and managed source connectors can build on top of these local primitives. Dhee itself is useful without a hosted account.
323
+
324
+ ## Develop
325
+
326
+ ```bash
327
+ python3.11 -m pip install -e ".[dev,nvidia,zvec,mcp]"
328
+ pytest
329
+ ```
330
+
331
+ Focused release checks:
332
+
333
+ ```bash
334
+ python -m pytest tests/test_narrative_scene_intelligence.py tests/test_mcp_tools_slim.py tests/test_scene.py tests/test_temporal_scenes.py tests/test_reranker_defaults.py tests/test_nvidia_embedder.py -q
335
+ python -m build
336
+ python -m twine check dist/*
337
+ ```
338
+
339
+ ## License
340
+
341
+ MIT. Built by Sankhya AI Labs.
dhee-7.2.0/README.md ADDED
@@ -0,0 +1,239 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/Sankhya-AI/Dhee/main/docs/dhee-hero.png" alt="Dhee world memory layer for AI agents" width="100%">
3
+ </p>
4
+
5
+ <h1 align="center">Dhee</h1>
6
+
7
+ <p align="center">
8
+ <b>World memory for AI agents.</b><br>
9
+ A context compiler, repo brain, narrative scene graph, handoff bus, and proof layer for Codex, Claude Code, Cursor, Gemini CLI, Cline, Chotu, and any MCP client.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://pypi.org/project/dhee"><img src="https://img.shields.io/pypi/v/dhee?style=flat-square&color=orange" alt="PyPI"></a>
14
+ <a href="https://pypi.org/project/dhee"><img src="https://img.shields.io/badge/python-3.9%2B-blue.svg?style=flat-square" alt="Python 3.9+"></a>
15
+ <a href="https://github.com/Sankhya-AI/Dhee/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT License"></a>
16
+ <a href="benchmarks/longmemeval/"><img src="https://img.shields.io/badge/LongMemEval-R%405%2099.4%25-brightgreen.svg?style=flat-square" alt="LongMemEval R@5 99.4%"></a>
17
+ </p>
18
+
19
+ ---
20
+
21
+ Dhee gives an agent the bigger story before it takes the next action.
22
+
23
+ LLMs are powerful, but they still miss the arc. What is the user trying to become? What happened last session? Which decision was already made? Which failure should not be repeated? Which proof is required before touching code?
24
+
25
+ Dhee stores that story locally and compiles it into the smallest useful context. Not a transcript pile. Not vibes. Memory with shape.
26
+
27
+ ## Install
28
+
29
+ ```bash
30
+ pip install dhee
31
+ dhee install
32
+ ```
33
+
34
+ Or use the one-command installer:
35
+
36
+ ```bash
37
+ curl -fsSL https://raw.githubusercontent.com/Sankhya-AI/Dhee/main/install.sh | sh
38
+ ```
39
+
40
+ <p align="center">
41
+ <img src="docs/demo/install-demo.gif" alt="Dhee curl install, provider setup, dhee init, status, and shell completion demo" width="100%">
42
+ </p>
43
+
44
+ Wire a repo:
45
+
46
+ ```bash
47
+ cd /path/to/repo-or-folder
48
+ dhee init
49
+ dhee status
50
+ dhee ui
51
+ ```
52
+
53
+ `dhee init` is the opt-in switch. Run it in the current directory, pass a folder, or pass a git URL:
54
+
55
+ ```bash
56
+ dhee init /path/to/folder
57
+ dhee init https://github.com/org/repo.git
58
+ ```
59
+
60
+ Folders that have not run `dhee init` stay vanilla in Codex and Claude Code.
61
+
62
+ Shell autocomplete is built in:
63
+
64
+ ```bash
65
+ dhee completion --shell zsh
66
+ dhee completion --shell bash
67
+ dhee completion --shell fish
68
+ ```
69
+
70
+ ## What Is Dhee?
71
+
72
+ Dhee is the memory layer agents should have had from day one.
73
+
74
+ It runs beside the model and answers the questions that raw chat history cannot:
75
+
76
+ | The agent needs | Dhee gives it |
77
+ | --- | --- |
78
+ | What matters right now? | A compiled context packet with included and rejected reasons. |
79
+ | What happened before? | Durable user, project, repo, scene, and handoff memory. |
80
+ | What files are risky? | Repo brain impact analysis, likely tests, owners, routes, and symbols. |
81
+ | What should not be used? | Secret filters, privacy classes, supersession, contradiction, and proof gates. |
82
+ | What is the larger story? | Series, Seasons, Episodes, Scenes, and SceneCards. |
83
+ | Can another agent continue? | Session digests, shared task state, evidence refs, and handoff packets. |
84
+
85
+ ## Context Compiler
86
+
87
+ Most agents drown in context or starve without it. Dhee does the boring hard part in the middle.
88
+
89
+ - Reads summarize files instead of dumping them.
90
+ - Searches return compact matches with expansion pointers.
91
+ - Tool output becomes reusable evidence, not one-turn sludge.
92
+ - Task contracts define files, constraints, tests, and proof obligations.
93
+ - SceneCards become the default retrieval object.
94
+ - Raw transcripts stay out of prompts unless explicitly requested.
95
+
96
+ The model gets the part of the world it needs, in the form it can use.
97
+
98
+ ## Narrative Memory
99
+
100
+ This is the new Dhee core.
101
+
102
+ ```text
103
+ Series -> Season -> Episode -> Scene -> SceneCard -> MemoryItem
104
+ ```
105
+
106
+ In plain English:
107
+
108
+ - **Series** is the biggest purpose. Example: become a successful CTO.
109
+ - **Season** is a period of the story: learning, struggle, first success, downfall, comeback.
110
+ - **Episode** is the meaningful arc of a day.
111
+ - **Scene** is a bounded work moment with a hero, intent, action, obstacle, result, and outcome.
112
+ - **SceneCard** is the retrieval card the agent sees later: compact, evidence-backed, privacy-aware.
113
+ - **MemoryItem** is promoted only when the SceneCard is worth keeping long-term.
114
+
115
+ That story gives the model anticipation. The prior is advisory, never bossy: explicit user intent, facts, privacy, and proof gates win.
116
+
117
+ ## Retrieval That Actually Ranks
118
+
119
+ Dhee can run model-free, but the production retrieval path is built for serious agent work:
120
+
121
+ ```bash
122
+ python3.11 -m pip install "dhee[nvidia,zvec,mcp]"
123
+ dhee key set nvidia
124
+ ```
125
+
126
+ Current high-quality stack:
127
+
128
+ - Embedder: `nvidia/llama-nemotron-embed-vl-1b-v2`
129
+ - Reranker: `nvidia/llama-3.2-nv-rerankqa-1b-v2`
130
+ - Vector backend: `zvec` through `dhee-accel`
131
+ - Routine narrative rollups: `google/gemma-4-31b-it`
132
+ - Series-level strategic rollups: `moonshotai/kimi-k2.6`
133
+
134
+ Deterministic filters still go first: secrets, private scenes, contradicted cards, superseded cards, and code-mutation proof gates cannot be talked around by a high similarity score.
135
+
136
+ ## MCP Tools
137
+
138
+ Add Dhee to any MCP client:
139
+
140
+ ```json
141
+ {
142
+ "mcpServers": {
143
+ "dhee": { "command": "dhee-mcp" }
144
+ }
145
+ }
146
+ ```
147
+
148
+ Scene intelligence tools:
149
+
150
+ ```text
151
+ dhee_scene_start
152
+ dhee_scene_event
153
+ dhee_scene_end
154
+ dhee_scene_context
155
+ dhee_narrative_prior
156
+ ```
157
+
158
+ Core context tools:
159
+
160
+ ```text
161
+ dhee_context_bootstrap
162
+ dhee_read
163
+ dhee_grep
164
+ dhee_bash
165
+ dhee_context_pack
166
+ dhee_scene_search
167
+ ```
168
+
169
+ A good agent loop is simple:
170
+
171
+ ```text
172
+ bootstrap -> start scene -> gather evidence -> retrieve context -> act -> verify -> end scene -> save digest
173
+ ```
174
+
175
+ ## Repo Brain
176
+
177
+ Ask: "If I touch this file, what breaks?"
178
+
179
+ Dhee's repo brain answers with graph-backed evidence:
180
+
181
+ - impacted files and symbols
182
+ - impacted routes and React components
183
+ - likely tests to run
184
+ - owners from git history
185
+ - related failure signatures
186
+ - source windows with line numbers
187
+
188
+ The repo brain is git-SHA scoped and persisted under `.dhee/context/repo_brain/`, so the agent does not rebuild the same understanding every session.
189
+
190
+ ## Why It Feels Different
191
+
192
+ Normal memory says: "Here are some old notes."
193
+
194
+ Dhee says:
195
+
196
+ - this is the user's bigger goal
197
+ - this is the current season of work
198
+ - this is today's episode
199
+ - this scene has these constraints
200
+ - these cards are safe to use
201
+ - these cards were rejected and why
202
+ - this action needs proof before mutation
203
+
204
+ The result is an agent that feels less random because it can see the arc.
205
+
206
+ ## Benchmarks
207
+
208
+ On LongMemEval full 500-question recall:
209
+
210
+ | System | R@1 | R@3 | R@5 | R@10 |
211
+ | --- | ---: | ---: | ---: | ---: |
212
+ | Dhee | 94.8% | 99.0% | 99.4% | 99.8% |
213
+
214
+ Reproduction notes and outputs live in [`benchmarks/longmemeval/`](benchmarks/longmemeval/).
215
+
216
+ ## What Ships
217
+
218
+ The open source package includes the local memory OS, context compiler, DheeFS, MCP servers, CLI, UI, runtime daemon, handoff bus, repo brain, update capsules, narrative scene intelligence, release checks, and proof tooling.
219
+
220
+ Team governance, hosted dashboards, org policy, and managed source connectors can build on top of these local primitives. Dhee itself is useful without a hosted account.
221
+
222
+ ## Develop
223
+
224
+ ```bash
225
+ python3.11 -m pip install -e ".[dev,nvidia,zvec,mcp]"
226
+ pytest
227
+ ```
228
+
229
+ Focused release checks:
230
+
231
+ ```bash
232
+ python -m pytest tests/test_narrative_scene_intelligence.py tests/test_mcp_tools_slim.py tests/test_scene.py tests/test_temporal_scenes.py tests/test_reranker_defaults.py tests/test_nvidia_embedder.py -q
233
+ python -m build
234
+ python -m twine check dist/*
235
+ ```
236
+
237
+ ## License
238
+
239
+ MIT. Built by Sankhya AI Labs.
@@ -1,7 +1,8 @@
1
- """dhee the local developer brain for AI coding agents.
1
+ """dhee - the world memory layer and context compiler for AI agents.
2
2
 
3
- Dhee gives Codex, Claude Code, Cursor, Cline, Gemini CLI, and MCP clients a
4
- shared memory, repo-cognition, handoff, and proof layer that survives sessions.
3
+ Dhee gives Codex, Claude Code, Cursor, Cline, Gemini CLI, Chotu, and MCP
4
+ clients durable memory, repo cognition, narrative scene intelligence, handoff,
5
+ proof, and prompt-safe context that survives sessions.
5
6
 
6
7
  Quick Start:
7
8
  from dhee import Dhee
@@ -40,7 +41,7 @@ from dhee.memory.admission import (
40
41
  # Default import remains model-free for backwards compatibility.
41
42
  Memory = CoreMemory
42
43
 
43
- __version__ = "7.0.2"
44
+ __version__ = "7.2.0"
44
45
  __all__ = [
45
46
  # Memory classes
46
47
  "Engram",