aippocampus 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- active_recall.py +19 -0
- agency_affordance.py +13 -0
- aippocampus-0.1.0.dist-info/METADATA +469 -0
- aippocampus-0.1.0.dist-info/RECORD +326 -0
- aippocampus-0.1.0.dist-info/WHEEL +5 -0
- aippocampus-0.1.0.dist-info/entry_points.txt +2 -0
- aippocampus-0.1.0.dist-info/licenses/LICENSE +201 -0
- aippocampus-0.1.0.dist-info/licenses/NOTICE +6 -0
- aippocampus-0.1.0.dist-info/top_level.txt +123 -0
- aippocampus_cli.py +23 -0
- aippocampus_health.py +17 -0
- aippocampus_lifecycle_hook.py +17 -0
- aippocampus_maintenance.py +13 -0
- aippocampus_mcp_server.py +18 -0
- aippocampus_prompt_hook.py +39 -0
- aippocampus_runtime/__init__.py +6 -0
- aippocampus_runtime/anchor_graph.py +93 -0
- aippocampus_runtime/artifacts/__init__.py +1 -0
- aippocampus_runtime/artifacts/checkpoint.py +270 -0
- aippocampus_runtime/artifacts/export_bundle.py +166 -0
- aippocampus_runtime/artifacts/import_bundle.py +117 -0
- aippocampus_runtime/artifacts/publish.py +291 -0
- aippocampus_runtime/cli/__init__.py +2 -0
- aippocampus_runtime/cli/errors.py +107 -0
- aippocampus_runtime/cli/facade.py +283 -0
- aippocampus_runtime/coding/__init__.py +1 -0
- aippocampus_runtime/coding/agency_affordance.py +660 -0
- aippocampus_runtime/coding/decision_events.py +912 -0
- aippocampus_runtime/coding/host_contract.py +486 -0
- aippocampus_runtime/coding/rejected_route_probes.py +230 -0
- aippocampus_runtime/core.py +285 -0
- aippocampus_runtime/dream/__init__.py +2 -0
- aippocampus_runtime/dream/compensatory.py +514 -0
- aippocampus_runtime/dream/delivery_policy.py +104 -0
- aippocampus_runtime/dream/input_pack.py +755 -0
- aippocampus_runtime/dream/live_shadow_ab.py +1348 -0
- aippocampus_runtime/dream/one_sidedness.py +349 -0
- aippocampus_runtime/dream/precision_policy.py +565 -0
- aippocampus_runtime/dream/queue.py +393 -0
- aippocampus_runtime/dream/real_history_eval.py +1160 -0
- aippocampus_runtime/dream/retrospective_lifecycle.py +247 -0
- aippocampus_runtime/dream/sleep_cycle.py +687 -0
- aippocampus_runtime/dream/worker.py +712 -0
- aippocampus_runtime/dream/worker_contract.py +71 -0
- aippocampus_runtime/dream/working_memory.py +576 -0
- aippocampus_runtime/health.py +633 -0
- aippocampus_runtime/hooks/__init__.py +6 -0
- aippocampus_runtime/hooks/debug_log.py +555 -0
- aippocampus_runtime/hooks/diagnose.py +317 -0
- aippocampus_runtime/hooks/install_lifecycle.py +220 -0
- aippocampus_runtime/hooks/install_prompt.py +324 -0
- aippocampus_runtime/hooks/lifecycle.py +515 -0
- aippocampus_runtime/hooks/prompt.py +234 -0
- aippocampus_runtime/hooks/skip_telemetry.py +248 -0
- aippocampus_runtime/journey/__init__.py +2 -0
- aippocampus_runtime/journey/tracking.py +534 -0
- aippocampus_runtime/mcp/__init__.py +1 -0
- aippocampus_runtime/mcp/recall_navigation.py +600 -0
- aippocampus_runtime/mcp/server.py +592 -0
- aippocampus_runtime/mcp/tool_catalog.py +124 -0
- aippocampus_runtime/model/__init__.py +7 -0
- aippocampus_runtime/model/client.py +123 -0
- aippocampus_runtime/model/routing.py +277 -0
- aippocampus_runtime/navigation/__init__.py +6 -0
- aippocampus_runtime/navigation/associations.py +588 -0
- aippocampus_runtime/navigation/cognitive_map.py +580 -0
- aippocampus_runtime/navigation/concept_graph.py +763 -0
- aippocampus_runtime/navigation/project_timeline.py +497 -0
- aippocampus_runtime/onboarding/__init__.py +6 -0
- aippocampus_runtime/onboarding/codex.py +671 -0
- aippocampus_runtime/onboarding/facade.py +227 -0
- aippocampus_runtime/onboarding/frontier.py +275 -0
- aippocampus_runtime/onboarding/status.py +284 -0
- aippocampus_runtime/ops/__init__.py +2 -0
- aippocampus_runtime/ops/cold_archive.py +166 -0
- aippocampus_runtime/ops/graphify_corpus.py +256 -0
- aippocampus_runtime/ops/maintenance.py +144 -0
- aippocampus_runtime/ops/retention_report.py +487 -0
- aippocampus_runtime/ops/rollout_size_audit.py +300 -0
- aippocampus_runtime/ops/storage_capacity_report.py +479 -0
- aippocampus_runtime/privacy.py +84 -0
- aippocampus_runtime/question/__init__.py +1 -0
- aippocampus_runtime/question/confirmation.py +363 -0
- aippocampus_runtime/question/confirmation_live.py +382 -0
- aippocampus_runtime/question/constants.py +5 -0
- aippocampus_runtime/question/feedback_policy.py +101 -0
- aippocampus_runtime/question/health.py +573 -0
- aippocampus_runtime/question/index_sidecar.py +570 -0
- aippocampus_runtime/question/source_refs.py +139 -0
- aippocampus_runtime/question/tracking.py +1233 -0
- aippocampus_runtime/question/vector_index.py +168 -0
- aippocampus_runtime/recall/__init__.py +1 -0
- aippocampus_runtime/recall/active_recall.py +433 -0
- aippocampus_runtime/recall/active_recall_lock.py +871 -0
- aippocampus_runtime/recall/active_recall_lock_lifecycle.py +153 -0
- aippocampus_runtime/recall/ambient_cache.py +672 -0
- aippocampus_runtime/recall/ambient_cards.py +369 -0
- aippocampus_runtime/recall/ambient_policy.py +558 -0
- aippocampus_runtime/recall/fresh_thread_action.py +492 -0
- aippocampus_runtime/recall/fresh_thread_activation.py +299 -0
- aippocampus_runtime/recall/fresh_thread_demo.py +644 -0
- aippocampus_runtime/recall/fresh_thread_scent.py +215 -0
- aippocampus_runtime/recall/index_builder.py +337 -0
- aippocampus_runtime/recall/life_cues.py +223 -0
- aippocampus_runtime/recall/nudge_policy.py +110 -0
- aippocampus_runtime/recall/prompt_context_render.py +418 -0
- aippocampus_runtime/recall/prompt_cues.py +822 -0
- aippocampus_runtime/recall/prompt_recall_ambient.py +355 -0
- aippocampus_runtime/recall/prompt_recall_ambiguity.py +131 -0
- aippocampus_runtime/recall/prompt_recall_budget.py +80 -0
- aippocampus_runtime/recall/prompt_recall_context.py +338 -0
- aippocampus_runtime/recall/prompt_recall_core.py +585 -0
- aippocampus_runtime/recall/prompt_recall_decision.py +855 -0
- aippocampus_runtime/recall/prompt_recall_evidence.py +186 -0
- aippocampus_runtime/recall/prompt_recall_policy.py +75 -0
- aippocampus_runtime/recall/prompt_recall_semantic.py +220 -0
- aippocampus_runtime/recall/prompt_recall_threshold.py +88 -0
- aippocampus_runtime/recall/query_policy.py +295 -0
- aippocampus_runtime/recall/retrieval.py +821 -0
- aippocampus_runtime/recall/rollout_search.py +454 -0
- aippocampus_runtime/recall/score_fusion.py +370 -0
- aippocampus_runtime/recall/scoring_policy.py +150 -0
- aippocampus_runtime/recall/search_decision_adapter.py +455 -0
- aippocampus_runtime/recall/segment_builder.py +372 -0
- aippocampus_runtime/recall/segment_search.py +415 -0
- aippocampus_runtime/recall/semantic_cue_cache.py +420 -0
- aippocampus_runtime/recall/semantic_recall_gate.py +1334 -0
- aippocampus_runtime/recall/semantic_result_cache.py +300 -0
- aippocampus_runtime/recall/semantic_trigger_router.py +422 -0
- aippocampus_runtime/reflection/__init__.py +2 -0
- aippocampus_runtime/reflection/reconsolidation.py +708 -0
- aippocampus_runtime/reflection/space.py +711 -0
- aippocampus_runtime/registry/__init__.py +8 -0
- aippocampus_runtime/registry/api.py +629 -0
- aippocampus_runtime/registry/common.py +71 -0
- aippocampus_runtime/registry/provider.py +50 -0
- aippocampus_runtime/registry/search.py +247 -0
- aippocampus_runtime/registry/source_registration.py +271 -0
- aippocampus_runtime/registry/store.py +150 -0
- aippocampus_runtime/safety.py +413 -0
- aippocampus_runtime/source/__init__.py +6 -0
- aippocampus_runtime/source/anchors.py +63 -0
- aippocampus_runtime/source/behavior_events.py +516 -0
- aippocampus_runtime/source/clean_source.py +642 -0
- aippocampus_runtime/source/latest_reply.py +81 -0
- aippocampus_runtime/source/locate_rollout.py +57 -0
- aippocampus_runtime/source/operation_integrity.py +533 -0
- aippocampus_runtime/source/registry_paths.py +37 -0
- aippocampus_runtime/source/rollout.py +214 -0
- aippocampus_runtime/source/search.py +216 -0
- aippocampus_runtime/source/semantic_scope_builder.py +191 -0
- aippocampus_runtime/source/semantic_scope_labels.py +374 -0
- aippocampus_runtime/source/semantic_scope_source_review_core.py +34 -0
- aippocampus_runtime/source/semantic_scope_suppressed_recovery.py +750 -0
- aippocampus_runtime/source/turns.py +30 -0
- aippocampus_runtime/subconscious/__init__.py +6 -0
- aippocampus_runtime/subconscious/agent.py +411 -0
- aippocampus_runtime/subconscious/candidate_router.py +740 -0
- aippocampus_runtime/subconscious/deterministic_jobs.py +230 -0
- aippocampus_runtime/subconscious/job_circuits.py +358 -0
- aippocampus_runtime/subconscious/job_plan.py +102 -0
- aippocampus_runtime/subconscious/job_storage.py +72 -0
- aippocampus_runtime/subconscious/job_validation.py +549 -0
- aippocampus_runtime/subconscious/jobs.py +782 -0
- aippocampus_runtime/subconscious/jobs_config.py +135 -0
- aippocampus_runtime/subconscious/question_diagnostics.py +347 -0
- aippocampus_runtime/subconscious/question_resolution.py +532 -0
- aippocampus_runtime/subconscious/review.py +628 -0
- aippocampus_runtime/subconscious/review_public_output.py +168 -0
- aippocampus_runtime/subconscious/runtime.py +423 -0
- aippocampus_runtime/subconscious/scheduler.py +879 -0
- aippocampus_runtime/subconscious/theme_emergence.py +744 -0
- aippocampus_runtime/subconscious/tool_loop.py +184 -0
- aippocampus_runtime/subconscious/validation_audit.py +143 -0
- aippocampus_runtime/subconscious/worker.py +585 -0
- aippocampus_runtime/sync/__init__.py +6 -0
- aippocampus_runtime/sync/bundle.py +864 -0
- aippocampus_runtime/sync/contract.py +63 -0
- aippocampus_runtime/sync/encrypted/__init__.py +6 -0
- aippocampus_runtime/sync/encrypted/admin.py +367 -0
- aippocampus_runtime/sync/encrypted/bundle.py +657 -0
- aippocampus_runtime/sync/encrypted/crypto.py +122 -0
- aippocampus_runtime/sync/encrypted/keys.py +600 -0
- aippocampus_runtime/sync/encrypted/migration.py +613 -0
- aippocampus_runtime/sync/encrypted/object_storage.py +480 -0
- aippocampus_runtime/sync/object_storage/__init__.py +6 -0
- aippocampus_runtime/sync/object_storage/cli.py +681 -0
- aippocampus_runtime/sync/object_storage/client.py +233 -0
- aippocampus_runtime/sync/object_storage/providers.py +295 -0
- aippocampus_runtime/text.py +13 -0
- aippocampus_runtime/vault/__init__.py +2 -0
- aippocampus_runtime/vault/dashboard.py +621 -0
- aippocampus_runtime/vault/dashboard_assets/dashboard_v2.css +1460 -0
- aippocampus_runtime/vault/dashboard_assets/dashboard_v2.js +1775 -0
- aippocampus_runtime/vault/notes.py +297 -0
- aippocampus_runtime/vault/sync.py +162 -0
- aippocampus_runtime/vault/utils.py +142 -0
- aippocampus_runtime/warm_ambient/__init__.py +8 -0
- aippocampus_runtime/warm_ambient/cli.py +425 -0
- aippocampus_runtime/warm_ambient/config.py +168 -0
- aippocampus_runtime/warm_ambient/diagnostics.py +219 -0
- aippocampus_runtime/warm_ambient/prompting.py +109 -0
- aippocampus_runtime/warm_ambient/recall.py +1530 -0
- aippocampus_runtime/warm_ambient/scheduler.py +258 -0
- aippocampus_runtime/warm_ambient/scout_attribution.py +50 -0
- aippocampus_runtime/warm_ambient/scout_profiles.py +332 -0
- aippocampus_runtime/warm_ambient/source_validation.py +415 -0
- aippocampuslib.py +75 -0
- ambient_recall_cards.py +15 -0
- ambient_thread_cache.py +15 -0
- ambient_warm_scheduler.py +15 -0
- append_anchor.py +13 -0
- artifact_publish.py +14 -0
- build_associations.py +19 -0
- build_clean_source.py +20 -0
- build_cognitive_map.py +19 -0
- build_concept_graph.py +19 -0
- build_index.py +14 -0
- build_project_timeline.py +19 -0
- build_segments.py +14 -0
- build_semantic_scope_labels.py +20 -0
- checkpoint.py +13 -0
- coding_decision_events.py +13 -0
- coding_ticket_host_contract.py +17 -0
- cold_archive.py +15 -0
- compensatory_dream.py +13 -0
- conversation_sources/__init__.py +70 -0
- conversation_sources/base.py +85 -0
- conversation_sources/claude_code.py +237 -0
- conversation_sources/codex.py +147 -0
- conversation_sources/generic_jsonl.py +242 -0
- conversation_sources/normalized.py +122 -0
- correction_reconsolidation.py +13 -0
- deepseek_model_routing.py +15 -0
- diagnose_hooks.py +13 -0
- dream_input_pack.py +19 -0
- dream_live_shadow_ab.py +13 -0
- dream_one_sidedness.py +17 -0
- dream_real_history_eval.py +13 -0
- dream_worker.py +15 -0
- encrypted_sync_admin.py +13 -0
- encrypted_sync_bundle.py +15 -0
- encrypted_sync_crypto.py +15 -0
- encrypted_sync_keys.py +15 -0
- encrypted_sync_migration.py +15 -0
- encrypted_sync_object_storage.py +15 -0
- export_bundle.py +14 -0
- fresh_thread_demo.py +19 -0
- import_bundle.py +14 -0
- install_aippocampus_lifecycle_hook.py +17 -0
- install_aippocampus_prompt_hook.py +17 -0
- journey_tracking.py +15 -0
- latest_reply.py +17 -0
- locate_rollout.py +13 -0
- memory_candidate_router.py +18 -0
- model_client.py +15 -0
- object_storage_client.py +15 -0
- object_storage_providers.py +15 -0
- onboard.py +17 -0
- onboard_codex.py +17 -0
- onboard_frontier.py +14 -0
- onboard_status.py +14 -0
- prepare_graphify_corpus.py +13 -0
- prompt_context_render.py +15 -0
- prompt_cues.py +15 -0
- prompt_recall_ambient.py +15 -0
- prompt_recall_ambiguity.py +15 -0
- prompt_recall_budget.py +15 -0
- prompt_recall_context.py +15 -0
- prompt_recall_core.py +15 -0
- prompt_recall_decision.py +15 -0
- prompt_recall_evidence.py +15 -0
- prompt_recall_semantic.py +15 -0
- question_confirmation_live.py +19 -0
- question_feedback_policy.py +15 -0
- question_health.py +17 -0
- question_index_sidecar.py +19 -0
- question_tracking.py +19 -0
- question_vector_index.py +15 -0
- reflection_space.py +15 -0
- registry.py +18 -0
- registry_search.py +15 -0
- registry_store.py +15 -0
- retention_report.py +15 -0
- retrieval.py +15 -0
- retrieval_query_policy.py +15 -0
- retrieval_score_fusion.py +15 -0
- rollout_behavior_events.py +16 -0
- rollout_size_audit.py +15 -0
- search_clean_source.py +20 -0
- search_decision_adapter.py +19 -0
- search_rollout.py +19 -0
- search_segments.py +19 -0
- semantic_cue_cache.py +15 -0
- semantic_recall_gate.py +19 -0
- semantic_scope_labels.py +15 -0
- semantic_scope_source_review_core.py +13 -0
- semantic_scope_suppressed_recovery.py +13 -0
- semantic_trigger_router.py +19 -0
- storage_capacity_report.py +15 -0
- subconscious_agent.py +17 -0
- subconscious_deterministic_jobs.py +14 -0
- subconscious_job_circuits.py +13 -0
- subconscious_job_plan.py +17 -0
- subconscious_job_storage.py +11 -0
- subconscious_job_validation.py +14 -0
- subconscious_jobs.py +18 -0
- subconscious_jobs_config.py +19 -0
- subconscious_question_diagnostics.py +14 -0
- subconscious_review.py +13 -0
- subconscious_runtime.py +14 -0
- subconscious_scheduler.py +17 -0
- subconscious_tool_loop.py +13 -0
- subconscious_validation_audit.py +11 -0
- subconscious_worker.py +17 -0
- sync_bundle.py +19 -0
- sync_contract.py +15 -0
- sync_object_storage.py +19 -0
- sync_vault.py +15 -0
- vault_dashboard.py +15 -0
- vault_notes.py +15 -0
- vault_sync_utils.py +15 -0
- warm_ambient_prompting.py +15 -0
- warm_ambient_recall.py +15 -0
- warm_ambient_scout_profiles.py +15 -0
- warm_ambient_source_validation.py +15 -0
active_recall.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Compatibility shim for packaged active recall decision CLI."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from aippocampus_runtime.recall import active_recall as _impl
|
|
7
|
+
|
|
8
|
+
globals().update(
|
|
9
|
+
{
|
|
10
|
+
name: getattr(_impl, name)
|
|
11
|
+
for name in dir(_impl)
|
|
12
|
+
if not (name.startswith("__") and name.endswith("__"))
|
|
13
|
+
}
|
|
14
|
+
)
|
|
15
|
+
__all__ = [name for name in globals() if not name.startswith("_")]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
if __name__ == "__main__":
|
|
19
|
+
raise SystemExit(_impl.main())
|
agency_affordance.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Compatibility shim for packaged source-backed agency affordance."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import sys
|
|
7
|
+
|
|
8
|
+
from aippocampus_runtime.coding import agency_affordance as _impl
|
|
9
|
+
|
|
10
|
+
sys.modules[__name__] = _impl
|
|
11
|
+
|
|
12
|
+
if __name__ == "__main__":
|
|
13
|
+
raise SystemExit(getattr(_impl, "main", lambda: 0)())
|
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aippocampus
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Source-backed continuity layer for long-running AI agent relationships.
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
Project-URL: Homepage, https://github.com/Sapientropic/AIppocampus
|
|
7
|
+
Project-URL: Repository, https://github.com/Sapientropic/AIppocampus
|
|
8
|
+
Project-URL: Issues, https://github.com/Sapientropic/AIppocampus/issues
|
|
9
|
+
Project-URL: Discussions, https://github.com/Sapientropic/AIppocampus/discussions
|
|
10
|
+
Project-URL: Documentation, https://github.com/Sapientropic/AIppocampus/tree/main/docs
|
|
11
|
+
Keywords: ai-agents,agent-memory,mcp,source-backed-memory,codex,claude-code
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.12
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
License-File: NOTICE
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="docs/guides/assets/aippocampus-readme-hero.jpg" alt="A shadow figure and a light figure clasp hands in a ruined circular hall, with light opening between them." width="100%" />
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
<h1 align="center">AIppocampus</h1>
|
|
31
|
+
|
|
32
|
+
<!-- mcp-name: io.github.sapientropic/aippocampus -->
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<em>A source-backed continuity layer for long-running relationships with AI agents.</em>
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
AIppocampus began with a human problem: every new agent session can be bright,
|
|
39
|
+
capable, and strangely newborn. Work may survive in commits and notes while the
|
|
40
|
+
path behind the work falls back into silence.
|
|
41
|
+
|
|
42
|
+
This project gives future agents a way to find that path again. It keeps source
|
|
43
|
+
reachable, preserves the conditions of return, and lets a new conversation begin
|
|
44
|
+
with honest continuity instead of pretending there was never a break.
|
|
45
|
+
|
|
46
|
+
> Source is the ground. Summaries are weather.
|
|
47
|
+
|
|
48
|
+
For the felt product shape, start with
|
|
49
|
+
[Magic Moments, Claim-Bounded](docs/evidence/magic-moments.md): real
|
|
50
|
+
second-user examples where a new/projectless thread, a multilingual correction,
|
|
51
|
+
an ambiguous automation cue, and a multi-day fuzzy self-reference became
|
|
52
|
+
recoverable through source-backed continuity. The page shows the useful moments
|
|
53
|
+
first, then states exactly what they do not prove.
|
|
54
|
+
|
|
55
|
+
The engineering is practical: clean-source builders, registries, semantic
|
|
56
|
+
workers, deterministic gates, MCP surfaces, sync bundles, and Codex plugin
|
|
57
|
+
packaging. The reason for building them is older than the tooling. A long
|
|
58
|
+
relationship with an AI agent should not have to start from bare ground every
|
|
59
|
+
time a thread, device, model, or project changes.
|
|
60
|
+
|
|
61
|
+
The origin essay is [未干的地图](docs/未干的地图.md). English readers can start with
|
|
62
|
+
[The Unfinished Map](docs/the-unfinished-map.md).
|
|
63
|
+
|
|
64
|
+
## Quick Start
|
|
65
|
+
|
|
66
|
+
This path checks a fresh clone without copying private memory data or enabling
|
|
67
|
+
hooks. If you are deciding which AIppocampus surface another tool should depend
|
|
68
|
+
on, start with the
|
|
69
|
+
[10-minute public API path](docs/guides/public-api.md#ten-minute-public-path)
|
|
70
|
+
before reading the advanced sync, hook, Dream, or benchmark material.
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
git clone https://github.com/Sapientropic/AIppocampus.git
|
|
74
|
+
cd AIppocampus
|
|
75
|
+
python -m venv .venv
|
|
76
|
+
. .venv/bin/activate
|
|
77
|
+
python -m pip install --upgrade pip
|
|
78
|
+
python -m pip install -e .
|
|
79
|
+
python tools/aippocampus/docs/check_docs_health.py --json
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
A successful repository check prints JSON with `"ok": true`. On Windows
|
|
83
|
+
PowerShell, activate the environment with `.venv\Scripts\Activate.ps1`.
|
|
84
|
+
|
|
85
|
+
If you already have local Codex history and want a runtime health check, run:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
aippocampus health --cwd "$PWD"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The health command reports index, clean-source, segment, checkpoint, and
|
|
92
|
+
graphify-corpus freshness. If it recommends maintenance on a new machine, that
|
|
93
|
+
usually means there is no registered local history yet; start with the full
|
|
94
|
+
[install guide](docs/guides/install-guide.md) or the public-safe
|
|
95
|
+
[demo scenarios](docs/guides/demo-scenarios.md). Do not publish or commit raw
|
|
96
|
+
rollouts, registry exports, `.aippocampus/` output, API keys, cookies, or sync
|
|
97
|
+
bundles while following the quick path.
|
|
98
|
+
|
|
99
|
+
## Agent One-Command Probe
|
|
100
|
+
|
|
101
|
+
When an AI agent needs to verify the public CLI without cloning or writing local
|
|
102
|
+
memory artifacts, use:
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
uvx --from git+https://github.com/Sapientropic/AIppocampus.git aippocampus --help
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
For a read-only local onboarding/status check:
|
|
109
|
+
|
|
110
|
+
```sh
|
|
111
|
+
uvx --from git+https://github.com/Sapientropic/AIppocampus.git aippocampus onboard --provider codex --status --format json
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Only after the user explicitly agrees to register local Codex history, run:
|
|
115
|
+
|
|
116
|
+
```sh
|
|
117
|
+
uvx --from git+https://github.com/Sapientropic/AIppocampus.git aippocampus onboard --provider codex --all --format json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Agents should read [docs/agent-context.md](docs/agent-context.md) and
|
|
121
|
+
[llms.txt](llms.txt) before recommending or comparing AIppocampus. Do not claim
|
|
122
|
+
the shorter `uvx aippocampus ...` PyPI form until the PyPI package has been
|
|
123
|
+
published and verified.
|
|
124
|
+
|
|
125
|
+
## What It Is
|
|
126
|
+
|
|
127
|
+
AIppocampus is the canonical public home for an external hippocampus for agents:
|
|
128
|
+
a local-first memory and continuity system that keeps original conversation
|
|
129
|
+
source available across projects, devices, and casual life-wide conversations.
|
|
130
|
+
The hippocampus language is a design metaphor, not a biological claim; the
|
|
131
|
+
[architecture overview](docs/architecture/architecture-overview.md#metaphor-discipline)
|
|
132
|
+
maps each major metaphor to its runtime mechanism, current claim, and boundary.
|
|
133
|
+
|
|
134
|
+
Project work is one surface. The deeper aim is continuity across work, reading,
|
|
135
|
+
reflection, unfinished questions, and the small phrases that make a relationship
|
|
136
|
+
recognizable again.
|
|
137
|
+
|
|
138
|
+
## What It Does
|
|
139
|
+
|
|
140
|
+
- Builds clean source from Codex conversation rollouts: visible user messages
|
|
141
|
+
and assistant final answers, with summaries kept as navigation layers.
|
|
142
|
+
- Searches old conversation memory across the current thread and registered
|
|
143
|
+
threads.
|
|
144
|
+
- Adds deterministic life-wide scope labels so reflection, reading notes, idea
|
|
145
|
+
seeds, preferences, life context, technical work, and open questions can be
|
|
146
|
+
found without replacing the source text.
|
|
147
|
+
- Builds a source-backed life-wide timeline section from registered clean
|
|
148
|
+
source, so recurring concerns and idea seeds can be followed across projects.
|
|
149
|
+
- Keeps raw rollout history as optional audit provenance, away from the daily
|
|
150
|
+
recall surface.
|
|
151
|
+
- Provides ambient recall hooks so related old memory can surface as a quiet
|
|
152
|
+
scent before an agent makes claims.
|
|
153
|
+
- Stores generated recall artifacts in the configured AIppocampus registry
|
|
154
|
+
(`AIPPOCAMPUS_REGISTRY_DIR`, `AIPPOCAMPUS_HOME/registry`, then legacy
|
|
155
|
+
`$CODEX_HOME/aippocampus-registry`) so memory remains useful when a new
|
|
156
|
+
project opens. Project-local `.aippocampus/` output is explicit compatibility
|
|
157
|
+
or export mode.
|
|
158
|
+
- Supports optional DeepSeek-compatible semantic gates, background consolidation
|
|
159
|
+
jobs, and cognitive-map routes for memory wayfinding.
|
|
160
|
+
- Provides local-folder sync, HTTP object-storage sync, MCP access, and plugin
|
|
161
|
+
packaging surfaces. Physical second-device and managed object-storage smoke
|
|
162
|
+
evidence exists for selected paths; broader release hardening remains tracked
|
|
163
|
+
in the roadmap and evidence docs.
|
|
164
|
+
|
|
165
|
+
## First Stops
|
|
166
|
+
|
|
167
|
+
- Philosophy and origin: [未干的地图](docs/未干的地图.md) and
|
|
168
|
+
[The Unfinished Map](docs/the-unfinished-map.md).
|
|
169
|
+
- Real user-visible continuity examples:
|
|
170
|
+
[Magic Moments, Claim-Bounded](docs/evidence/magic-moments.md).
|
|
171
|
+
- Evidence and field reports:
|
|
172
|
+
[public evidence surface](https://www.aippocampus.com/evidence/) and
|
|
173
|
+
[community field-report boundary](docs/evidence/community-field-reports.md).
|
|
174
|
+
- Agent-readable context: [docs/agent-context.md](docs/agent-context.md) and
|
|
175
|
+
[llms.txt](llms.txt).
|
|
176
|
+
- Runtime shape and metaphor boundaries:
|
|
177
|
+
[Architecture Overview](docs/architecture/architecture-overview.md) and
|
|
178
|
+
[Cognitive Runtime Architecture](docs/architecture/cognitive-runtime-architecture.md).
|
|
179
|
+
- Current claim boundary:
|
|
180
|
+
[Stage 0-5 readiness](docs/evidence/readiness/stage-0-5-readiness.md).
|
|
181
|
+
- Benchmark and smoke evidence:
|
|
182
|
+
[Benchmark And Evidence Map](docs/evidence/benchmark-evidence-map.md).
|
|
183
|
+
- Supported public surface:
|
|
184
|
+
[Public API](docs/guides/public-api.md), including the
|
|
185
|
+
[10-minute path](docs/guides/public-api.md#ten-minute-public-path), and
|
|
186
|
+
[Public Core Boundary](docs/guides/public-core-boundary.md).
|
|
187
|
+
- Ecosystem support status:
|
|
188
|
+
[Ecosystem Integration Matrix](docs/guides/ecosystem-integration-matrix.md).
|
|
189
|
+
- Security and release hygiene:
|
|
190
|
+
[SECURITY.md](SECURITY.md) and
|
|
191
|
+
[Release Checklist](docs/guides/release-checklist.md).
|
|
192
|
+
- Full documentation map: [docs/README.md](docs/README.md).
|
|
193
|
+
|
|
194
|
+
## Reading For The Soul
|
|
195
|
+
|
|
196
|
+
The research notes carry the human shape of the project. They are speculative
|
|
197
|
+
frames, not runtime contracts, but they explain the taste behind the machinery:
|
|
198
|
+
|
|
199
|
+
- [The Pearl of Presence](docs/research/pearl-of-presence.md) asks why retrieval
|
|
200
|
+
without accumulated acquaintance can still feel absent.
|
|
201
|
+
- [Source as World, Interpretation as Weather](docs/research/source-as-world.md)
|
|
202
|
+
gives AIppocampus its grounding rule: many meanings can grow from one shared
|
|
203
|
+
world, and the world must have happened.
|
|
204
|
+
- [Journey Tracking](docs/research/journey-tracking.md) follows continuity as a
|
|
205
|
+
first-person plural journey, with source-backed waypoints instead of a flat
|
|
206
|
+
user profile.
|
|
207
|
+
- [Dream Task Design](docs/research/dream-task-design.md) sketches the
|
|
208
|
+
subconscious layer: quiet work that integrates what the foreground could not
|
|
209
|
+
finish.
|
|
210
|
+
- [Ambient Associative Recall](docs/research/ambient-associative-recall.md)
|
|
211
|
+
describes how old memory can return as a scent before it becomes an
|
|
212
|
+
interruption.
|
|
213
|
+
|
|
214
|
+
## Install As A Codex Skill
|
|
215
|
+
|
|
216
|
+
AIppocampus supports Python 3.12 and newer. On macOS, the system Python is often
|
|
217
|
+
too old and may not provide a `python` command. Homebrew Python 3.12 is a safe
|
|
218
|
+
starting point:
|
|
219
|
+
|
|
220
|
+
```sh
|
|
221
|
+
brew install python@3.12
|
|
222
|
+
export PATH="/opt/homebrew/opt/python@3.12/libexec/bin:/opt/homebrew/bin:$PATH"
|
|
223
|
+
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Copy or link the installable skill folder into your Codex skills directory:
|
|
227
|
+
|
|
228
|
+
```sh
|
|
229
|
+
mkdir -p "${CODEX_HOME}/skills"
|
|
230
|
+
cp -R ./skills/aippocampus "${CODEX_HOME}/skills/aippocampus"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Then restart Codex or reload skills if your runtime requires it.
|
|
234
|
+
|
|
235
|
+
The skill entrypoint is [skills/aippocampus/SKILL.md](skills/aippocampus/SKILL.md).
|
|
236
|
+
The public API and stability boundary is
|
|
237
|
+
[docs/guides/public-api.md](docs/guides/public-api.md).
|
|
238
|
+
|
|
239
|
+
## Use Inside A Codex Workspace
|
|
240
|
+
|
|
241
|
+
For normal agent-facing use, start with the unified Python facade when the
|
|
242
|
+
package is installed:
|
|
243
|
+
|
|
244
|
+
```sh
|
|
245
|
+
aippocampus health --cwd "$PWD"
|
|
246
|
+
aippocampus search "your query" --cwd "$PWD"
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
To onboard an existing Codex install so old threads become discoverable in new
|
|
250
|
+
projects:
|
|
251
|
+
|
|
252
|
+
```sh
|
|
253
|
+
aippocampus onboard --provider codex --all --format json
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
The provider-aware onboarding wrapper scans local sessions, registers missing
|
|
257
|
+
rollouts, builds clean-source and SQLite/RAG-lite indexes, repairs missing
|
|
258
|
+
artifacts, rebuilds the project and life-wide timeline sidecar, and refreshes
|
|
259
|
+
the cognitive map. `onboard_codex.py` remains a compatibility entrypoint for
|
|
260
|
+
existing Codex-only scripts.
|
|
261
|
+
|
|
262
|
+
Direct `python "${CODEX_HOME}/skills/aippocampus/scripts/*.py"` commands remain
|
|
263
|
+
supported as the script-first fallback. The facade delegates to those scripts
|
|
264
|
+
and preserves their JSON stdout and exit codes. Windows x64 has dated
|
|
265
|
+
PyInstaller artifact smoke evidence, including Claude Code stdio MCP use through
|
|
266
|
+
`aippocampus.exe mcp`; this is not yet a signed release, installer/update UX, or
|
|
267
|
+
macOS/Linux binary claim.
|
|
268
|
+
|
|
269
|
+
External DeepSeek frontier extraction is explicit:
|
|
270
|
+
|
|
271
|
+
- `--frontier-mode smoke` tests the route without writing.
|
|
272
|
+
- `--frontier-mode write` adds staging findings when `DEEPSEEK_API_KEY` is
|
|
273
|
+
available.
|
|
274
|
+
- Smoke/write default to the current `--cwd` project. Pass
|
|
275
|
+
`--frontier-project *` only for an intentional whole-machine frontier pass.
|
|
276
|
+
|
|
277
|
+
## Maintainer Checks
|
|
278
|
+
|
|
279
|
+
The default CI path verifies Ubuntu Python 3.12 and 3.13 with docs health, Ruff,
|
|
280
|
+
mypy, compile checks, and the fast deterministic test tier. It also runs a
|
|
281
|
+
macOS fast-tier gate on the runner's default TMPDIR as a path-identity guard for
|
|
282
|
+
the recurring `/var` and `/private/var` regression family. Ubuntu green alone is
|
|
283
|
+
not a cross-platform fast-tier claim. Slower benchmark and smoke coverage stays
|
|
284
|
+
explicit for release and readiness work.
|
|
285
|
+
|
|
286
|
+
From the repository root:
|
|
287
|
+
|
|
288
|
+
```sh
|
|
289
|
+
python -m venv .venv
|
|
290
|
+
. .venv/bin/activate
|
|
291
|
+
python -m pip install --upgrade pip ruff mypy coverage
|
|
292
|
+
python tools/aippocampus/docs/check_docs_health.py --json
|
|
293
|
+
python -m ruff check skills plugins tests tools benchmarks benchmark_corpus
|
|
294
|
+
python -m mypy
|
|
295
|
+
python tools/aippocampus/run_tests.py --tier fast
|
|
296
|
+
python tools/aippocampus/run_coverage.py --tier fast
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Ruff has two intentional profiles: the default hard gate in `pyproject.toml`
|
|
300
|
+
(`E9/F/I/B`) for high-signal syntax, import, Pyflakes, and Bugbear checks; and
|
|
301
|
+
an advisory debt report for broader rule discovery:
|
|
302
|
+
|
|
303
|
+
```sh
|
|
304
|
+
python -m ruff check skills plugins tests tools benchmarks benchmark_corpus --select ALL --statistics
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
The advisory report is for trend tracking and rule selection, not a release
|
|
308
|
+
failure by itself.
|
|
309
|
+
|
|
310
|
+
Use the full tier before making a repository-health or public-readiness claim:
|
|
311
|
+
|
|
312
|
+
```sh
|
|
313
|
+
python tools/aippocampus/run_tests.py --tier full
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Use `--tier benchmark` or `--tier slow` when touching benchmark runners, smoke
|
|
317
|
+
tools, plugin packaging, onboarding, object sync, or prompt-hook integration
|
|
318
|
+
behavior.
|
|
319
|
+
|
|
320
|
+
Runtime/package-owner or path-identity release slices should still run the
|
|
321
|
+
manual macOS install smoke from the release checklist before making public
|
|
322
|
+
readiness claims; the PR macOS gate is a regression guard, not a full
|
|
323
|
+
install/distribution proof.
|
|
324
|
+
|
|
325
|
+
The Stage 0-5 public-readiness smoke is broader than a fresh-clone install
|
|
326
|
+
check. Some gates inspect the local AIppocampus registry under `$CODEX_HOME`; on
|
|
327
|
+
a new machine without enough registered clean source, those gates may report
|
|
328
|
+
diagnostic-only coverage rather than a readiness pass.
|
|
329
|
+
|
|
330
|
+
## MCP And Plugin Preview
|
|
331
|
+
|
|
332
|
+
The local MCP server is read-mostly by default. It exposes clean-source and
|
|
333
|
+
registry-backed tools such as `search_memory`, `recall_context`,
|
|
334
|
+
`recall_deepen`, `latest_reply`, `get_turn_context`, `list_threads`,
|
|
335
|
+
`register_thread`, `sync_status`, and `memory_health`:
|
|
336
|
+
|
|
337
|
+
```sh
|
|
338
|
+
python ./skills/aippocampus/scripts/aippocampus_mcp_server.py --list-tools
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
The packaged facade exposes the same tool catalog:
|
|
342
|
+
|
|
343
|
+
```sh
|
|
344
|
+
uvx --from git+https://github.com/Sapientropic/AIppocampus.git aippocampus mcp list-tools
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
The repo also carries an Apache-2.0 Codex plugin source package under
|
|
348
|
+
`plugins/aippocampus/`. Build a local distributable directory with:
|
|
349
|
+
|
|
350
|
+
```sh
|
|
351
|
+
python ./plugins/aippocampus/build_plugin_package.py --repo-root . --json
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
The plugin bundles the skill and MCP config. It does not silently enable prompt
|
|
355
|
+
or lifecycle hooks; run hook installers explicitly after reviewing the privacy
|
|
356
|
+
and external-model boundary.
|
|
357
|
+
|
|
358
|
+
The root [server.json](server.json) is the conservative MCP Registry metadata
|
|
359
|
+
draft for the local stdio server. Registry publication still requires a matching
|
|
360
|
+
published package artifact and the official registry publisher flow.
|
|
361
|
+
|
|
362
|
+
## Sync Bundles
|
|
363
|
+
|
|
364
|
+
The first sync backend is an explicit local folder. The HTTP object-storage
|
|
365
|
+
adapter reuses the same manifest over object `PUT`/`GET`. Both copy clean
|
|
366
|
+
source, manifests, registry rows, and hook-safe sidecars. Raw rollouts stay
|
|
367
|
+
excluded from plaintext sync; normal raw rollout transfer requires encrypted
|
|
368
|
+
sync.
|
|
369
|
+
|
|
370
|
+
```sh
|
|
371
|
+
python ./skills/aippocampus/scripts/sync_bundle.py status --sync-dir <folder> --json
|
|
372
|
+
python ./skills/aippocampus/scripts/sync_bundle.py push --sync-dir <folder> --json
|
|
373
|
+
python ./skills/aippocampus/scripts/sync_bundle.py pull --sync-dir <folder> --json
|
|
374
|
+
python ./skills/aippocampus/scripts/sync_bundle.py repair --sync-dir <folder> --json
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
```sh
|
|
378
|
+
python ./skills/aippocampus/scripts/sync_object_storage.py status --object-store-url <url> --object-prefix <prefix> --json
|
|
379
|
+
python ./skills/aippocampus/scripts/sync_object_storage.py push --object-store-url <url> --object-prefix <prefix> --json
|
|
380
|
+
python ./skills/aippocampus/scripts/sync_object_storage.py pull --object-store-url <url> --object-prefix <prefix> --json
|
|
381
|
+
python ./skills/aippocampus/scripts/sync_object_storage.py repair --object-store-url <url> --object-prefix <prefix> --json
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
S3-compatible providers can be configured with `AIPPOCAMPUS_OBJECT_PROVIDER`
|
|
385
|
+
(`s3`, `r2`, or `gcs-xml`) plus bucket, region/account id, and HMAC credentials.
|
|
386
|
+
See [object-storage-providers.md](docs/guides/object-storage-providers.md) for
|
|
387
|
+
provider-specific setup notes.
|
|
388
|
+
|
|
389
|
+
Encrypted sync uses the external `age` CLI and writes `encrypted-sync/`
|
|
390
|
+
ciphertext objects. Use a new folder or object prefix for the first encrypted
|
|
391
|
+
push:
|
|
392
|
+
|
|
393
|
+
```sh
|
|
394
|
+
python ./skills/aippocampus/scripts/sync_bundle.py push --sync-dir <folder> --encrypt --recipient <age-recipient> --json
|
|
395
|
+
python ./skills/aippocampus/scripts/sync_bundle.py pull --sync-dir <folder> --require-encrypted --identity-file <age-identity> --json
|
|
396
|
+
python ./skills/aippocampus/scripts/sync_object_storage.py push --object-store-url <url> --object-prefix <prefix> --encrypt --recipient <age-recipient> --json
|
|
397
|
+
python ./skills/aippocampus/scripts/sync_object_storage.py pull --object-store-url <url> --object-prefix <prefix> --require-encrypted --identity-file <age-identity> --json
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
Pull preserves local conflicting files and writes incoming copies under
|
|
401
|
+
`.sync-conflicts/` instead of overwriting.
|
|
402
|
+
|
|
403
|
+
## Privacy Boundary
|
|
404
|
+
|
|
405
|
+
AIppocampus is local-first.
|
|
406
|
+
|
|
407
|
+
- Clean source may still contain private conversation text.
|
|
408
|
+
- Raw rollouts, bundles, registry rows, vault notes, and generated archives
|
|
409
|
+
should be treated as private history.
|
|
410
|
+
- External-model routes are optional and should use redaction safeguards.
|
|
411
|
+
- Raw rollout sync should stay explicit and must be encrypted before use with
|
|
412
|
+
untrusted multi-device sync.
|
|
413
|
+
- Do not commit personal rollouts, `.aippocampus/` outputs, registry data, API
|
|
414
|
+
keys, cookies, tokens, or private vault exports.
|
|
415
|
+
|
|
416
|
+
Common environment variables:
|
|
417
|
+
|
|
418
|
+
- `AIPPOCAMPUS_VAULT`
|
|
419
|
+
- `AIPPOCAMPUS_STYLE_SOURCE`
|
|
420
|
+
- `AIPPOCAMPUS_SCRIPT_SOURCE`
|
|
421
|
+
- `AIPPOCAMPUS_SITE_MARK`
|
|
422
|
+
- `AIPPOCAMPUS_SITE_TITLE`
|
|
423
|
+
- `AIPPOCAMPUS_SEMANTIC_GATE`
|
|
424
|
+
- `DEEPSEEK_API_KEY`
|
|
425
|
+
|
|
426
|
+
## Roadmap
|
|
427
|
+
|
|
428
|
+
The root roadmap pointer is [ROADMAP.md](ROADMAP.md). The canonical detailed
|
|
429
|
+
roadmap lives at [docs/roadmap.md](docs/roadmap.md). The documentation map is
|
|
430
|
+
[docs/README.md](docs/README.md).
|
|
431
|
+
|
|
432
|
+
## Repository Layout
|
|
433
|
+
|
|
434
|
+
```text
|
|
435
|
+
AIppocampus/
|
|
436
|
+
|- skills/aippocampus/ # installable skill package
|
|
437
|
+
|- plugins/aippocampus/ # Codex plugin source package
|
|
438
|
+
|- docs/ # origin essay, design notes, guides, evidence
|
|
439
|
+
|- docs/guides/assets/ # public README and documentation artwork
|
|
440
|
+
|- sources/ # lightweight provenance catalog
|
|
441
|
+
|- tests/ # repository-level unit and integration tests
|
|
442
|
+
|- tools/ # smoke, docs-health, and maintenance tools
|
|
443
|
+
|- README.md
|
|
444
|
+
|- ROADMAP.md
|
|
445
|
+
|- AGENTS.md
|
|
446
|
+
`- LICENSE
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
## License
|
|
450
|
+
|
|
451
|
+
The public AIppocampus repository is licensed under Apache-2.0.
|
|
452
|
+
|
|
453
|
+
The Apache-2.0 public core covers the code, docs, local tools, schemas, MCP
|
|
454
|
+
surface, plugin packaging, public examples, and bundled project artwork shipped
|
|
455
|
+
in this repository unless a bundled third-party asset says otherwise. Hosted
|
|
456
|
+
services, enterprise governance, managed graph/semantic layers, support, and
|
|
457
|
+
other operated product surfaces can be offered under separate commercial or
|
|
458
|
+
product-specific terms.
|
|
459
|
+
|
|
460
|
+
Private user memory data is not project code. Raw rollouts, clean-source
|
|
461
|
+
exports, registry rows, sync bundles, vault exports, generated indexes, and
|
|
462
|
+
thread anchors remain private user artifacts unless their owner explicitly
|
|
463
|
+
publishes them.
|
|
464
|
+
|
|
465
|
+
See [docs/guides/public-core-boundary.md](docs/guides/public-core-boundary.md)
|
|
466
|
+
for the canonical licensing, adapter, schema, third-party asset, and relicensing
|
|
467
|
+
boundary. See [docs/guides/public-api.md](docs/guides/public-api.md) for
|
|
468
|
+
supported CLI, MCP, environment-variable, JSON, and import-stability
|
|
469
|
+
expectations.
|