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.
- dhee-7.2.0/MANIFEST.in +5 -0
- dhee-7.2.0/PKG-INFO +341 -0
- dhee-7.2.0/README.md +239 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/__init__.py +5 -4
- {dhee-7.0.2 → dhee-7.2.0}/dhee/cli.py +119 -93
- {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_onboard.py +36 -25
- dhee-7.2.0/dhee/cli_pretty.py +273 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite.py +327 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite_common.py +7 -0
- dhee-7.2.0/dhee/db/sqlite_domains.py +1393 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/install.py +7 -5
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/__main__.py +30 -5
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mcp_server.py +326 -1
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mcp_slim.py +301 -0
- dhee-7.2.0/dhee/memory/narrative_scene.py +1982 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/search_pipeline.py +16 -9
- {dhee-7.0.2 → dhee-7.2.0}/dhee/repo_link.py +243 -43
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/pre_tool_gate.py +39 -1
- dhee-7.2.0/dhee/schemas/__init__.py +1 -0
- dhee-7.2.0/dhee/schemas/narrative.py +139 -0
- dhee-7.2.0/dhee/schemas/scene_card.py +77 -0
- dhee-7.2.0/dhee.egg-info/PKG-INFO +341 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/SOURCES.txt +7 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/requires.txt +5 -0
- {dhee-7.0.2 → dhee-7.2.0}/pyproject.toml +5 -4
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_claude_code_hooks.py +21 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cli_onboard_update.py +2 -0
- dhee-7.2.0/tests/test_cli_pretty.py +52 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_dhee_init.py +11 -3
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_harness_install.py +2 -1
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_mcp_tools_slim.py +8 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_quality_contract.py +38 -0
- dhee-7.2.0/tests/test_narrative_scene_intelligence.py +776 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_packaging.py +1 -1
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_repo_link.py +34 -5
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_router.py +20 -0
- dhee-7.0.2/MANIFEST.in +0 -9
- dhee-7.0.2/PKG-INFO +0 -261
- dhee-7.0.2/README.md +0 -160
- dhee-7.0.2/dhee/db/sqlite_domains.py +0 -498
- dhee-7.0.2/dhee.egg-info/PKG-INFO +0 -261
- {dhee-7.0.2 → dhee-7.2.0}/LICENSE +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/adapters/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/adapters/gstack.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/adapters/gstack_parser.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/arc_agi.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/decades.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/hippocamp.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/longmemeval.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/phase0_context_audit.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/portability.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/raw_extractors.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/replay_corpus.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/benchmarks/router_replay.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/checkpoint_runtime.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_config.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_mcp.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_setup.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/cli_update.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/active.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/base.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/configs/presets.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/context_ir.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/context_kernel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/context_state.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/contract_runtime.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/contract_supervisor.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/alaya.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/answer_orchestration.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/artifacts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/belief.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/buddhi.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/category.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/codex_artifacts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/codex_stream.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/cognition.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/cognition_kernel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/conflict.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/context_bootstrap.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/contrastive.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/decay.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/distillation.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/echo.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_consolidator.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_extractor.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_tiering.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/engram_verification.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/enrichment.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/episode.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/episodic_index.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/evolution.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/file_baseline.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/file_read_tracker.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/forgetting.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/fusion.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/graph.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/handoff_snapshot.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/heuristic.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/intent.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/intention.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/kernel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/learnings.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/live_context.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/log_parser.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/meta_buddhi.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/pattern_detector.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/policy.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/profile.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/provenance.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/resolvers.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/retrieval.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/samskara.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/scene.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/session_tracker.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/shared_tasks.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/strategy.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/task_state.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/thread_state.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/traces.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/trigger.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/viveka.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/workspace_line.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/core/workspace_line_bus.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/db/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite_analytics.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/db/sqlite_artifacts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/debugger_api.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/demo.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/doctor.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/base.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/gemini.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/nvidia.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/ollama.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/openai.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/qwen.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/embeddings/simple.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/exceptions.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/mounts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/types.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/uri.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/fs/workspace.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/graph_projection_hardening.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/graph_proof_bundle.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/base.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/claude_code.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/harness/codex.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/assembler.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/chunker.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/ingest.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/install.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/migrate.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/privacy.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/renderer.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/claude_code/signal.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/hooks/scene_world.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/incremental_context.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/install_cleanup.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/context_sources.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/hermes.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/hermes_provider/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/integrations/hermes_provider/provider.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/base.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/dhee.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/gemini.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/mock.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/nvidia.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/ollama.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/openai.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/llms/teacher_logger.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mcp_registry.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/admission.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/base.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/core.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/cost.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/episodic.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/main.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/orchestration.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/parallel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/projects.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/quality.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/reranker.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/retrieval_helpers.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/scene_profile.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/scoping.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/smart.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/tasks.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/utils.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/vectors.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/memory/write_pipeline.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/karma_evaluator.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/progressive_trainer.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/mini/replay_gate.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/observability.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/patch_families.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/plugin.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/protocol/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/protocol/v1.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/provider_defaults.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/release_hygiene.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/replay_branching.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/repo_intelligence.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/agent_digest.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/bash_digest.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/bootstrap.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/critical_surface.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/digest.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/edit_ledger.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/grep_digest.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/handlers.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/install.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/intent.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/policy.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/ptr_store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/quality_report.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/stats.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/router/tune.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/runtime.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/runtime_daemon.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/runtime_io.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/secret_store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/simple.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/discovery.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/executor.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/hashing.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/miner.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/outcomes.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/schema.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/structure.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/skills/trajectory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/task_contracts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/temporal_fact_integration.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/temporal_fact_ledger.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/temporal_scenes.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/training/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/training/data_formatter.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/training/karma.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/training/nididhyasana.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/training/smrti.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/training/train.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/cli.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/server.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/assets/CanvasView-Cl1HxIK0.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/assets/index-BboZhdsv.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/assets/index-CIsLOp4u.css +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/dhee-logo.png +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/dist/index.html +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/index.html +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/package-lock.json +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/package.json +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/public/dhee-logo.png +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/App.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/App.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/api.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/api.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/AssetDrawer.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/AssetDrawer.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ChatMessage.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ChatMessage.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/FirstRunPanel.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/FirstRunPanel.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/LinePanel.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/LinePanel.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/NavRail.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/NavRail.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/OrgDrawer.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/OrgDrawer.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TopBar.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TopBar.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TweaksPanel.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/TweaksPanel.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/WorkspaceManagerModal.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/WorkspaceManagerModal.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasControls.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasControls.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasSkeleton.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/CanvasSkeleton.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/DirectionHints.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/DirectionHints.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/Minimap.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/Minimap.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/NodeCard.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/NodeCard.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/forceLayout.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/forceLayout.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/layout.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/layout.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/treeLayout.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/treeLayout.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/useInfiniteCanvas.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/canvas/useInfiniteCanvas.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/cards/Cards.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/cards/Cards.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/graph/CanvasNodeCard.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/graph/CanvasNodeCard.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/DecayBar.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/DecayBar.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/Markdown.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/Markdown.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/SectionHeader.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/SectionHeader.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/StatPill.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/StatPill.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/TierBadge.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/components/ui/TierBadge.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/main.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/main.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/styles.css +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/types.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/types.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/CanvasView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/CanvasView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ChannelView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ChannelView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ConflictView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ConflictView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ContextView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ContextView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/EvolutionView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/EvolutionView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/LaunchView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/LaunchView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/MemoryView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/MemoryView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/NotepadView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/NotepadView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/OrgCanvas.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/OrgCanvas.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ProductViews.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/ProductViews.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/RouterView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/RouterView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/TasksView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/TasksView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/WorkspaceView.js +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/src/views/WorkspaceView.tsx +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/tsconfig.json +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/ui/web/vite.config.ts +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/update_capsules.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/factory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/math.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/prompts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/utils/repo_identity.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/base.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/memory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/sqlite_vec.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/vector_stores/zvec_store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/verification_runner.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/verifier_engine.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/capture_store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/causal_graph.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/encoder.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/gem_extractor.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/predictor.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/schema.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/service.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/session_graph.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee/world_memory/store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/dependency_links.txt +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/entry_points.txt +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee.egg-info/top_level.txt +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee_shared/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/dhee_shared/model_paths.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/__init__.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/bus.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/pubsub.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/server.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/engram-bus/engram_bus/workspace.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/setup.cfg +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_accel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_accel_benchmark.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_agent_digest.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_artifacts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_auto_lifecycle.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_backward_compat.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_batch.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_belief_debugger.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_causal_scene_memory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cli_config.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cli_harness_commands.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_codex_stream.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cognition_evals.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cognition_kernel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cognition_v3.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_context_state.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_core_memory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_cosine_similarity.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_decades_eval.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_dedup.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_deferred_enrichment.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_demo.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_dhee_model_paths.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_dheefs.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_distillation.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_e2e_all_features.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_engram_tiering.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_engram_tiering_promotion.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_evolution_meta_loop.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_evolution_session_gate.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_forgetting.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_graph_proof_bundle.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_gstack_adapter.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_handoff_snapshot.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_harness_adapters.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_hashing.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_hermes_provider.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_hippocamp_benchmark.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_incremental_context.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_install_cleanup.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_intent.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_karma_evaluator.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_learnings.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_locomo_plus_runner.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_log_parser.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_longmemeval_config.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_mcp_artifact_tools.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_admission.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_os_service.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_memory_types.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_meta_buddhi_group_relative.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_migration.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_miner.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_nvidia_embedder.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_openclaw.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_orchestration_core.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_oss_61_regressions.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_parallel.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_patch_families.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_plugin_learnings.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_portability_eval.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_power_packages.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_presets.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_profile.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_progressive_trainer.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_projects.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_protocol_v1.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_query_cache.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_release_hygiene.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_replay_branching.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_replay_corpus_export.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_replay_gate.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_repo_intelligence.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_reranker_defaults.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_router_replay.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_router_stats_agents.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_runtime.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_runtime_hardening.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_scene.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_scene_world_hook.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_secret_store.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_session_tracker.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_shared_tasks.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_simple_zero_config.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_skills.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_smart_memory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_sqlite_connection_pool.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_sqlite_vec.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_structural.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_structured_resolution.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_task_contracts.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_tasks.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_temporal_fact_integration.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_temporal_fact_ledger.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_temporal_scenes.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_thread_state.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_traces.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_trajectory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_ui.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_unified_enrichment.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_update_capsules.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_vector_store_factory.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_verification_runner.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_verifier_engine.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_workspace_line_agent_emit.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_workspace_line_bus.py +0 -0
- {dhee-7.0.2 → dhee-7.2.0}/tests/test_zvec_store.py +0 -0
dhee-7.2.0/MANIFEST.in
ADDED
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
|
|
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
|
|
4
|
-
|
|
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
|
|
44
|
+
__version__ = "7.2.0"
|
|
44
45
|
__all__ = [
|
|
45
46
|
# Memory classes
|
|
46
47
|
"Engram",
|