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.
Files changed (326) hide show
  1. active_recall.py +19 -0
  2. agency_affordance.py +13 -0
  3. aippocampus-0.1.0.dist-info/METADATA +469 -0
  4. aippocampus-0.1.0.dist-info/RECORD +326 -0
  5. aippocampus-0.1.0.dist-info/WHEEL +5 -0
  6. aippocampus-0.1.0.dist-info/entry_points.txt +2 -0
  7. aippocampus-0.1.0.dist-info/licenses/LICENSE +201 -0
  8. aippocampus-0.1.0.dist-info/licenses/NOTICE +6 -0
  9. aippocampus-0.1.0.dist-info/top_level.txt +123 -0
  10. aippocampus_cli.py +23 -0
  11. aippocampus_health.py +17 -0
  12. aippocampus_lifecycle_hook.py +17 -0
  13. aippocampus_maintenance.py +13 -0
  14. aippocampus_mcp_server.py +18 -0
  15. aippocampus_prompt_hook.py +39 -0
  16. aippocampus_runtime/__init__.py +6 -0
  17. aippocampus_runtime/anchor_graph.py +93 -0
  18. aippocampus_runtime/artifacts/__init__.py +1 -0
  19. aippocampus_runtime/artifacts/checkpoint.py +270 -0
  20. aippocampus_runtime/artifacts/export_bundle.py +166 -0
  21. aippocampus_runtime/artifacts/import_bundle.py +117 -0
  22. aippocampus_runtime/artifacts/publish.py +291 -0
  23. aippocampus_runtime/cli/__init__.py +2 -0
  24. aippocampus_runtime/cli/errors.py +107 -0
  25. aippocampus_runtime/cli/facade.py +283 -0
  26. aippocampus_runtime/coding/__init__.py +1 -0
  27. aippocampus_runtime/coding/agency_affordance.py +660 -0
  28. aippocampus_runtime/coding/decision_events.py +912 -0
  29. aippocampus_runtime/coding/host_contract.py +486 -0
  30. aippocampus_runtime/coding/rejected_route_probes.py +230 -0
  31. aippocampus_runtime/core.py +285 -0
  32. aippocampus_runtime/dream/__init__.py +2 -0
  33. aippocampus_runtime/dream/compensatory.py +514 -0
  34. aippocampus_runtime/dream/delivery_policy.py +104 -0
  35. aippocampus_runtime/dream/input_pack.py +755 -0
  36. aippocampus_runtime/dream/live_shadow_ab.py +1348 -0
  37. aippocampus_runtime/dream/one_sidedness.py +349 -0
  38. aippocampus_runtime/dream/precision_policy.py +565 -0
  39. aippocampus_runtime/dream/queue.py +393 -0
  40. aippocampus_runtime/dream/real_history_eval.py +1160 -0
  41. aippocampus_runtime/dream/retrospective_lifecycle.py +247 -0
  42. aippocampus_runtime/dream/sleep_cycle.py +687 -0
  43. aippocampus_runtime/dream/worker.py +712 -0
  44. aippocampus_runtime/dream/worker_contract.py +71 -0
  45. aippocampus_runtime/dream/working_memory.py +576 -0
  46. aippocampus_runtime/health.py +633 -0
  47. aippocampus_runtime/hooks/__init__.py +6 -0
  48. aippocampus_runtime/hooks/debug_log.py +555 -0
  49. aippocampus_runtime/hooks/diagnose.py +317 -0
  50. aippocampus_runtime/hooks/install_lifecycle.py +220 -0
  51. aippocampus_runtime/hooks/install_prompt.py +324 -0
  52. aippocampus_runtime/hooks/lifecycle.py +515 -0
  53. aippocampus_runtime/hooks/prompt.py +234 -0
  54. aippocampus_runtime/hooks/skip_telemetry.py +248 -0
  55. aippocampus_runtime/journey/__init__.py +2 -0
  56. aippocampus_runtime/journey/tracking.py +534 -0
  57. aippocampus_runtime/mcp/__init__.py +1 -0
  58. aippocampus_runtime/mcp/recall_navigation.py +600 -0
  59. aippocampus_runtime/mcp/server.py +592 -0
  60. aippocampus_runtime/mcp/tool_catalog.py +124 -0
  61. aippocampus_runtime/model/__init__.py +7 -0
  62. aippocampus_runtime/model/client.py +123 -0
  63. aippocampus_runtime/model/routing.py +277 -0
  64. aippocampus_runtime/navigation/__init__.py +6 -0
  65. aippocampus_runtime/navigation/associations.py +588 -0
  66. aippocampus_runtime/navigation/cognitive_map.py +580 -0
  67. aippocampus_runtime/navigation/concept_graph.py +763 -0
  68. aippocampus_runtime/navigation/project_timeline.py +497 -0
  69. aippocampus_runtime/onboarding/__init__.py +6 -0
  70. aippocampus_runtime/onboarding/codex.py +671 -0
  71. aippocampus_runtime/onboarding/facade.py +227 -0
  72. aippocampus_runtime/onboarding/frontier.py +275 -0
  73. aippocampus_runtime/onboarding/status.py +284 -0
  74. aippocampus_runtime/ops/__init__.py +2 -0
  75. aippocampus_runtime/ops/cold_archive.py +166 -0
  76. aippocampus_runtime/ops/graphify_corpus.py +256 -0
  77. aippocampus_runtime/ops/maintenance.py +144 -0
  78. aippocampus_runtime/ops/retention_report.py +487 -0
  79. aippocampus_runtime/ops/rollout_size_audit.py +300 -0
  80. aippocampus_runtime/ops/storage_capacity_report.py +479 -0
  81. aippocampus_runtime/privacy.py +84 -0
  82. aippocampus_runtime/question/__init__.py +1 -0
  83. aippocampus_runtime/question/confirmation.py +363 -0
  84. aippocampus_runtime/question/confirmation_live.py +382 -0
  85. aippocampus_runtime/question/constants.py +5 -0
  86. aippocampus_runtime/question/feedback_policy.py +101 -0
  87. aippocampus_runtime/question/health.py +573 -0
  88. aippocampus_runtime/question/index_sidecar.py +570 -0
  89. aippocampus_runtime/question/source_refs.py +139 -0
  90. aippocampus_runtime/question/tracking.py +1233 -0
  91. aippocampus_runtime/question/vector_index.py +168 -0
  92. aippocampus_runtime/recall/__init__.py +1 -0
  93. aippocampus_runtime/recall/active_recall.py +433 -0
  94. aippocampus_runtime/recall/active_recall_lock.py +871 -0
  95. aippocampus_runtime/recall/active_recall_lock_lifecycle.py +153 -0
  96. aippocampus_runtime/recall/ambient_cache.py +672 -0
  97. aippocampus_runtime/recall/ambient_cards.py +369 -0
  98. aippocampus_runtime/recall/ambient_policy.py +558 -0
  99. aippocampus_runtime/recall/fresh_thread_action.py +492 -0
  100. aippocampus_runtime/recall/fresh_thread_activation.py +299 -0
  101. aippocampus_runtime/recall/fresh_thread_demo.py +644 -0
  102. aippocampus_runtime/recall/fresh_thread_scent.py +215 -0
  103. aippocampus_runtime/recall/index_builder.py +337 -0
  104. aippocampus_runtime/recall/life_cues.py +223 -0
  105. aippocampus_runtime/recall/nudge_policy.py +110 -0
  106. aippocampus_runtime/recall/prompt_context_render.py +418 -0
  107. aippocampus_runtime/recall/prompt_cues.py +822 -0
  108. aippocampus_runtime/recall/prompt_recall_ambient.py +355 -0
  109. aippocampus_runtime/recall/prompt_recall_ambiguity.py +131 -0
  110. aippocampus_runtime/recall/prompt_recall_budget.py +80 -0
  111. aippocampus_runtime/recall/prompt_recall_context.py +338 -0
  112. aippocampus_runtime/recall/prompt_recall_core.py +585 -0
  113. aippocampus_runtime/recall/prompt_recall_decision.py +855 -0
  114. aippocampus_runtime/recall/prompt_recall_evidence.py +186 -0
  115. aippocampus_runtime/recall/prompt_recall_policy.py +75 -0
  116. aippocampus_runtime/recall/prompt_recall_semantic.py +220 -0
  117. aippocampus_runtime/recall/prompt_recall_threshold.py +88 -0
  118. aippocampus_runtime/recall/query_policy.py +295 -0
  119. aippocampus_runtime/recall/retrieval.py +821 -0
  120. aippocampus_runtime/recall/rollout_search.py +454 -0
  121. aippocampus_runtime/recall/score_fusion.py +370 -0
  122. aippocampus_runtime/recall/scoring_policy.py +150 -0
  123. aippocampus_runtime/recall/search_decision_adapter.py +455 -0
  124. aippocampus_runtime/recall/segment_builder.py +372 -0
  125. aippocampus_runtime/recall/segment_search.py +415 -0
  126. aippocampus_runtime/recall/semantic_cue_cache.py +420 -0
  127. aippocampus_runtime/recall/semantic_recall_gate.py +1334 -0
  128. aippocampus_runtime/recall/semantic_result_cache.py +300 -0
  129. aippocampus_runtime/recall/semantic_trigger_router.py +422 -0
  130. aippocampus_runtime/reflection/__init__.py +2 -0
  131. aippocampus_runtime/reflection/reconsolidation.py +708 -0
  132. aippocampus_runtime/reflection/space.py +711 -0
  133. aippocampus_runtime/registry/__init__.py +8 -0
  134. aippocampus_runtime/registry/api.py +629 -0
  135. aippocampus_runtime/registry/common.py +71 -0
  136. aippocampus_runtime/registry/provider.py +50 -0
  137. aippocampus_runtime/registry/search.py +247 -0
  138. aippocampus_runtime/registry/source_registration.py +271 -0
  139. aippocampus_runtime/registry/store.py +150 -0
  140. aippocampus_runtime/safety.py +413 -0
  141. aippocampus_runtime/source/__init__.py +6 -0
  142. aippocampus_runtime/source/anchors.py +63 -0
  143. aippocampus_runtime/source/behavior_events.py +516 -0
  144. aippocampus_runtime/source/clean_source.py +642 -0
  145. aippocampus_runtime/source/latest_reply.py +81 -0
  146. aippocampus_runtime/source/locate_rollout.py +57 -0
  147. aippocampus_runtime/source/operation_integrity.py +533 -0
  148. aippocampus_runtime/source/registry_paths.py +37 -0
  149. aippocampus_runtime/source/rollout.py +214 -0
  150. aippocampus_runtime/source/search.py +216 -0
  151. aippocampus_runtime/source/semantic_scope_builder.py +191 -0
  152. aippocampus_runtime/source/semantic_scope_labels.py +374 -0
  153. aippocampus_runtime/source/semantic_scope_source_review_core.py +34 -0
  154. aippocampus_runtime/source/semantic_scope_suppressed_recovery.py +750 -0
  155. aippocampus_runtime/source/turns.py +30 -0
  156. aippocampus_runtime/subconscious/__init__.py +6 -0
  157. aippocampus_runtime/subconscious/agent.py +411 -0
  158. aippocampus_runtime/subconscious/candidate_router.py +740 -0
  159. aippocampus_runtime/subconscious/deterministic_jobs.py +230 -0
  160. aippocampus_runtime/subconscious/job_circuits.py +358 -0
  161. aippocampus_runtime/subconscious/job_plan.py +102 -0
  162. aippocampus_runtime/subconscious/job_storage.py +72 -0
  163. aippocampus_runtime/subconscious/job_validation.py +549 -0
  164. aippocampus_runtime/subconscious/jobs.py +782 -0
  165. aippocampus_runtime/subconscious/jobs_config.py +135 -0
  166. aippocampus_runtime/subconscious/question_diagnostics.py +347 -0
  167. aippocampus_runtime/subconscious/question_resolution.py +532 -0
  168. aippocampus_runtime/subconscious/review.py +628 -0
  169. aippocampus_runtime/subconscious/review_public_output.py +168 -0
  170. aippocampus_runtime/subconscious/runtime.py +423 -0
  171. aippocampus_runtime/subconscious/scheduler.py +879 -0
  172. aippocampus_runtime/subconscious/theme_emergence.py +744 -0
  173. aippocampus_runtime/subconscious/tool_loop.py +184 -0
  174. aippocampus_runtime/subconscious/validation_audit.py +143 -0
  175. aippocampus_runtime/subconscious/worker.py +585 -0
  176. aippocampus_runtime/sync/__init__.py +6 -0
  177. aippocampus_runtime/sync/bundle.py +864 -0
  178. aippocampus_runtime/sync/contract.py +63 -0
  179. aippocampus_runtime/sync/encrypted/__init__.py +6 -0
  180. aippocampus_runtime/sync/encrypted/admin.py +367 -0
  181. aippocampus_runtime/sync/encrypted/bundle.py +657 -0
  182. aippocampus_runtime/sync/encrypted/crypto.py +122 -0
  183. aippocampus_runtime/sync/encrypted/keys.py +600 -0
  184. aippocampus_runtime/sync/encrypted/migration.py +613 -0
  185. aippocampus_runtime/sync/encrypted/object_storage.py +480 -0
  186. aippocampus_runtime/sync/object_storage/__init__.py +6 -0
  187. aippocampus_runtime/sync/object_storage/cli.py +681 -0
  188. aippocampus_runtime/sync/object_storage/client.py +233 -0
  189. aippocampus_runtime/sync/object_storage/providers.py +295 -0
  190. aippocampus_runtime/text.py +13 -0
  191. aippocampus_runtime/vault/__init__.py +2 -0
  192. aippocampus_runtime/vault/dashboard.py +621 -0
  193. aippocampus_runtime/vault/dashboard_assets/dashboard_v2.css +1460 -0
  194. aippocampus_runtime/vault/dashboard_assets/dashboard_v2.js +1775 -0
  195. aippocampus_runtime/vault/notes.py +297 -0
  196. aippocampus_runtime/vault/sync.py +162 -0
  197. aippocampus_runtime/vault/utils.py +142 -0
  198. aippocampus_runtime/warm_ambient/__init__.py +8 -0
  199. aippocampus_runtime/warm_ambient/cli.py +425 -0
  200. aippocampus_runtime/warm_ambient/config.py +168 -0
  201. aippocampus_runtime/warm_ambient/diagnostics.py +219 -0
  202. aippocampus_runtime/warm_ambient/prompting.py +109 -0
  203. aippocampus_runtime/warm_ambient/recall.py +1530 -0
  204. aippocampus_runtime/warm_ambient/scheduler.py +258 -0
  205. aippocampus_runtime/warm_ambient/scout_attribution.py +50 -0
  206. aippocampus_runtime/warm_ambient/scout_profiles.py +332 -0
  207. aippocampus_runtime/warm_ambient/source_validation.py +415 -0
  208. aippocampuslib.py +75 -0
  209. ambient_recall_cards.py +15 -0
  210. ambient_thread_cache.py +15 -0
  211. ambient_warm_scheduler.py +15 -0
  212. append_anchor.py +13 -0
  213. artifact_publish.py +14 -0
  214. build_associations.py +19 -0
  215. build_clean_source.py +20 -0
  216. build_cognitive_map.py +19 -0
  217. build_concept_graph.py +19 -0
  218. build_index.py +14 -0
  219. build_project_timeline.py +19 -0
  220. build_segments.py +14 -0
  221. build_semantic_scope_labels.py +20 -0
  222. checkpoint.py +13 -0
  223. coding_decision_events.py +13 -0
  224. coding_ticket_host_contract.py +17 -0
  225. cold_archive.py +15 -0
  226. compensatory_dream.py +13 -0
  227. conversation_sources/__init__.py +70 -0
  228. conversation_sources/base.py +85 -0
  229. conversation_sources/claude_code.py +237 -0
  230. conversation_sources/codex.py +147 -0
  231. conversation_sources/generic_jsonl.py +242 -0
  232. conversation_sources/normalized.py +122 -0
  233. correction_reconsolidation.py +13 -0
  234. deepseek_model_routing.py +15 -0
  235. diagnose_hooks.py +13 -0
  236. dream_input_pack.py +19 -0
  237. dream_live_shadow_ab.py +13 -0
  238. dream_one_sidedness.py +17 -0
  239. dream_real_history_eval.py +13 -0
  240. dream_worker.py +15 -0
  241. encrypted_sync_admin.py +13 -0
  242. encrypted_sync_bundle.py +15 -0
  243. encrypted_sync_crypto.py +15 -0
  244. encrypted_sync_keys.py +15 -0
  245. encrypted_sync_migration.py +15 -0
  246. encrypted_sync_object_storage.py +15 -0
  247. export_bundle.py +14 -0
  248. fresh_thread_demo.py +19 -0
  249. import_bundle.py +14 -0
  250. install_aippocampus_lifecycle_hook.py +17 -0
  251. install_aippocampus_prompt_hook.py +17 -0
  252. journey_tracking.py +15 -0
  253. latest_reply.py +17 -0
  254. locate_rollout.py +13 -0
  255. memory_candidate_router.py +18 -0
  256. model_client.py +15 -0
  257. object_storage_client.py +15 -0
  258. object_storage_providers.py +15 -0
  259. onboard.py +17 -0
  260. onboard_codex.py +17 -0
  261. onboard_frontier.py +14 -0
  262. onboard_status.py +14 -0
  263. prepare_graphify_corpus.py +13 -0
  264. prompt_context_render.py +15 -0
  265. prompt_cues.py +15 -0
  266. prompt_recall_ambient.py +15 -0
  267. prompt_recall_ambiguity.py +15 -0
  268. prompt_recall_budget.py +15 -0
  269. prompt_recall_context.py +15 -0
  270. prompt_recall_core.py +15 -0
  271. prompt_recall_decision.py +15 -0
  272. prompt_recall_evidence.py +15 -0
  273. prompt_recall_semantic.py +15 -0
  274. question_confirmation_live.py +19 -0
  275. question_feedback_policy.py +15 -0
  276. question_health.py +17 -0
  277. question_index_sidecar.py +19 -0
  278. question_tracking.py +19 -0
  279. question_vector_index.py +15 -0
  280. reflection_space.py +15 -0
  281. registry.py +18 -0
  282. registry_search.py +15 -0
  283. registry_store.py +15 -0
  284. retention_report.py +15 -0
  285. retrieval.py +15 -0
  286. retrieval_query_policy.py +15 -0
  287. retrieval_score_fusion.py +15 -0
  288. rollout_behavior_events.py +16 -0
  289. rollout_size_audit.py +15 -0
  290. search_clean_source.py +20 -0
  291. search_decision_adapter.py +19 -0
  292. search_rollout.py +19 -0
  293. search_segments.py +19 -0
  294. semantic_cue_cache.py +15 -0
  295. semantic_recall_gate.py +19 -0
  296. semantic_scope_labels.py +15 -0
  297. semantic_scope_source_review_core.py +13 -0
  298. semantic_scope_suppressed_recovery.py +13 -0
  299. semantic_trigger_router.py +19 -0
  300. storage_capacity_report.py +15 -0
  301. subconscious_agent.py +17 -0
  302. subconscious_deterministic_jobs.py +14 -0
  303. subconscious_job_circuits.py +13 -0
  304. subconscious_job_plan.py +17 -0
  305. subconscious_job_storage.py +11 -0
  306. subconscious_job_validation.py +14 -0
  307. subconscious_jobs.py +18 -0
  308. subconscious_jobs_config.py +19 -0
  309. subconscious_question_diagnostics.py +14 -0
  310. subconscious_review.py +13 -0
  311. subconscious_runtime.py +14 -0
  312. subconscious_scheduler.py +17 -0
  313. subconscious_tool_loop.py +13 -0
  314. subconscious_validation_audit.py +11 -0
  315. subconscious_worker.py +17 -0
  316. sync_bundle.py +19 -0
  317. sync_contract.py +15 -0
  318. sync_object_storage.py +19 -0
  319. sync_vault.py +15 -0
  320. vault_dashboard.py +15 -0
  321. vault_notes.py +15 -0
  322. vault_sync_utils.py +15 -0
  323. warm_ambient_prompting.py +15 -0
  324. warm_ambient_recall.py +15 -0
  325. warm_ambient_scout_profiles.py +15 -0
  326. 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.