shellbrain 0.1.52__tar.gz → 0.1.54__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. shellbrain-0.1.54/PKG-INFO +137 -0
  2. shellbrain-0.1.54/README.md +123 -0
  3. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/build_context/execute.py +1 -1
  4. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/parser/builder.py +0 -19
  5. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/runner.py +0 -9
  6. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/runtime.py +0 -1
  7. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/inner_agents/prompt.py +9 -4
  8. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/internal-agents/defaults.yaml +1 -1
  9. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/cli.py +0 -2
  10. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/cli_runtime.py +0 -1
  11. {shellbrain-0.1.52 → shellbrain-0.1.54}/pyproject.toml +1 -1
  12. shellbrain-0.1.54/shellbrain.egg-info/PKG-INFO +137 -0
  13. {shellbrain-0.1.52 → shellbrain-0.1.54}/shellbrain.egg-info/SOURCES.txt +0 -15
  14. shellbrain-0.1.52/PKG-INFO +0 -141
  15. shellbrain-0.1.52/README.md +0 -127
  16. shellbrain-0.1.52/app/core/ports/reporting/__init__.py +0 -1
  17. shellbrain-0.1.52/app/core/ports/reporting/metrics.py +0 -32
  18. shellbrain-0.1.52/app/core/use_cases/metrics/build_snapshot.py +0 -496
  19. shellbrain-0.1.52/app/core/use_cases/metrics/generate_dashboard.py +0 -82
  20. shellbrain-0.1.52/app/entrypoints/cli/handlers/human/metrics.py +0 -38
  21. shellbrain-0.1.52/app/entrypoints/cli/presenters/metrics.py +0 -26
  22. shellbrain-0.1.52/app/infrastructure/db/runtime/queries/metrics.py +0 -219
  23. shellbrain-0.1.52/app/infrastructure/db/runtime/queries/metrics_adapter.py +0 -54
  24. shellbrain-0.1.52/app/infrastructure/reporting/__init__.py +0 -1
  25. shellbrain-0.1.52/app/infrastructure/reporting/metrics/__init__.py +0 -1
  26. shellbrain-0.1.52/app/infrastructure/reporting/metrics/artifacts.py +0 -65
  27. shellbrain-0.1.52/app/infrastructure/reporting/metrics/browser.py +0 -12
  28. shellbrain-0.1.52/app/infrastructure/reporting/metrics/pager.py +0 -274
  29. shellbrain-0.1.52/app/infrastructure/reporting/metrics/render_html.py +0 -782
  30. shellbrain-0.1.52/app/startup/metrics.py +0 -64
  31. shellbrain-0.1.52/shellbrain.egg-info/PKG-INFO +0 -141
  32. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/__init__.py +0 -0
  33. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/__main__.py +0 -0
  34. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/__init__.py +0 -0
  35. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/__init__.py +0 -0
  36. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/admin_errors.py +0 -0
  37. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/associations.py +0 -0
  38. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/backups.py +0 -0
  39. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/concepts.py +0 -0
  40. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/episodes.py +0 -0
  41. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/evidence.py +0 -0
  42. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/guidance.py +0 -0
  43. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/identity.py +0 -0
  44. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/ids.py +0 -0
  45. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/inner_agents.py +0 -0
  46. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/knowledge_builder.py +0 -0
  47. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/machine_config.py +0 -0
  48. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/memories.py +0 -0
  49. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/runtime_context.py +0 -0
  50. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/scenarios.py +0 -0
  51. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/session_state.py +0 -0
  52. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/settings.py +0 -0
  53. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/snapshots.py +0 -0
  54. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/structural_memory_relations.py +0 -0
  55. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/entities/utility.py +0 -0
  56. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/errors.py +0 -0
  57. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/__init__.py +0 -0
  58. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/concepts/__init__.py +0 -0
  59. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/concepts/relation_rules.py +0 -0
  60. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/concepts/search_text.py +0 -0
  61. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/episodes/__init__.py +0 -0
  62. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/episodes/event_content.py +0 -0
  63. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/episodes/knowledge_building.py +0 -0
  64. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/memories/__init__.py +0 -0
  65. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/memories/add_plan.py +0 -0
  66. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/memories/link_rules.py +0 -0
  67. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/memories/update_plan.py +0 -0
  68. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/__init__.py +0 -0
  69. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/bm25.py +0 -0
  70. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/context_pack.py +0 -0
  71. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/expansion.py +0 -0
  72. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/fusion_rrf.py +0 -0
  73. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/lexical_query.py +0 -0
  74. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/ontology_semantics.py +0 -0
  75. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/policies/retrieval/scoring.py +0 -0
  76. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/__init__.py +0 -0
  77. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/__init__.py +0 -0
  78. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/concept_repositories.py +0 -0
  79. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/episode_repositories.py +0 -0
  80. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/guidance.py +0 -0
  81. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/knowledge_builder.py +0 -0
  82. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/memory_repositories.py +0 -0
  83. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/problem_runs.py +0 -0
  84. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/retrieval_repositories.py +0 -0
  85. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/snapshots.py +0 -0
  86. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/db/unit_of_work.py +0 -0
  87. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/embeddings/__init__.py +0 -0
  88. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/embeddings/provider.py +0 -0
  89. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/embeddings/retrieval.py +0 -0
  90. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/host_apps/__init__.py +0 -0
  91. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/host_apps/inner_agents.py +0 -0
  92. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/local_state/__init__.py +0 -0
  93. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/local_state/session_state_store.py +0 -0
  94. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/local_state/shadow_git.py +0 -0
  95. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/system/__init__.py +0 -0
  96. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/system/clock.py +0 -0
  97. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/ports/system/idgen.py +0 -0
  98. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/__init__.py +0 -0
  99. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/__init__.py +0 -0
  100. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/analytics_diagnostics.py +0 -0
  101. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/backfill_model_usage/__init__.py +0 -0
  102. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/backfill_model_usage/backfill_model_usage.py +0 -0
  103. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/backfill_model_usage/request.py +0 -0
  104. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/backfill_model_usage/result.py +0 -0
  105. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/create_backup.py +0 -0
  106. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/diagnose_runtime.py +0 -0
  107. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/generate_analytics_report.py +0 -0
  108. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/initialize_runtime.py +0 -0
  109. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/restore_backup.py +0 -0
  110. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/admin/verify_backup.py +0 -0
  111. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/build_guidance.py +0 -0
  112. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/__init__.py +0 -0
  113. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/add/__init__.py +0 -0
  114. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/add/execute.py +0 -0
  115. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/add/request.py +0 -0
  116. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/add/result.py +0 -0
  117. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/containment_checks.py +0 -0
  118. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/embeddings.py +0 -0
  119. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/reference_checks.py +0 -0
  120. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/show/__init__.py +0 -0
  121. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/show/execute.py +0 -0
  122. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/show/request.py +0 -0
  123. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/show/result.py +0 -0
  124. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/update/__init__.py +0 -0
  125. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/update/execute.py +0 -0
  126. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/update/request.py +0 -0
  127. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/update/result.py +0 -0
  128. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/concepts/views.py +0 -0
  129. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/__init__.py +0 -0
  130. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/events/__init__.py +0 -0
  131. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/events/request.py +0 -0
  132. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/sync_discovered_host_session.py +0 -0
  133. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/sync_episode/__init__.py +0 -0
  134. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/sync_episode/request.py +0 -0
  135. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/sync_episode/result.py +0 -0
  136. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/episodes/sync_episode/sync_episode.py +0 -0
  137. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/__init__.py +0 -0
  138. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/build_knowledge/__init__.py +0 -0
  139. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/build_knowledge/execute.py +0 -0
  140. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/build_knowledge/request.py +0 -0
  141. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/build_knowledge/result.py +0 -0
  142. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/teach_knowledge/__init__.py +0 -0
  143. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/teach_knowledge/execute.py +0 -0
  144. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/teach_knowledge/request.py +0 -0
  145. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/knowledge_builder/teach_knowledge/result.py +0 -0
  146. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/__init__.py +0 -0
  147. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/add/__init__.py +0 -0
  148. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/add/execute.py +0 -0
  149. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/add/request.py +0 -0
  150. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/add/result.py +0 -0
  151. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/effect_plan.py +0 -0
  152. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/reference_checks.py +0 -0
  153. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/update/__init__.py +0 -0
  154. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/update/execute.py +0 -0
  155. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/update/request.py +0 -0
  156. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/memories/update/result.py +0 -0
  157. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/metrics/__init__.py +0 -0
  158. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/metrics/analyze_agent_behavior.py +0 -0
  159. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/plan_execution.py +0 -0
  160. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/__init__.py +0 -0
  161. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/build_context/__init__.py +0 -0
  162. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/concept_seed_retrieval.py +0 -0
  163. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/context_pack_pipeline.py +0 -0
  164. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/deterministic_graph_recall.py +0 -0
  165. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/expansion.py +0 -0
  166. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/read/__init__.py +0 -0
  167. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/read/execute.py +0 -0
  168. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/read/request.py +0 -0
  169. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/read/result.py +0 -0
  170. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/read_concepts.py +0 -0
  171. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/recall/__init__.py +0 -0
  172. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/recall/execute.py +0 -0
  173. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/recall/request.py +0 -0
  174. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/recall/result.py +0 -0
  175. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/retrieval/seed_retrieval.py +0 -0
  176. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/scenarios/__init__.py +0 -0
  177. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/scenarios/record/__init__.py +0 -0
  178. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/scenarios/record/execute.py +0 -0
  179. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/scenarios/record/request.py +0 -0
  180. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/scenarios/record/result.py +0 -0
  181. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/__init__.py +0 -0
  182. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/capture_snapshot/__init__.py +0 -0
  183. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/capture_snapshot/execute.py +0 -0
  184. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/capture_snapshot/request.py +0 -0
  185. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/capture_snapshot/result.py +0 -0
  186. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/code_delta_context/__init__.py +0 -0
  187. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/code_delta_context/execute.py +0 -0
  188. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/core/use_cases/snapshots/code_delta_context/request.py +0 -0
  189. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/__init__.py +0 -0
  190. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/__init__.py +0 -0
  191. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/error_responses.py +0 -0
  192. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/__init__.py +0 -0
  193. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/cli_operation.py +0 -0
  194. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/dependencies.py +0 -0
  195. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/human/__init__.py +0 -0
  196. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/human/admin.py +0 -0
  197. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/human/admin_dependencies.py +0 -0
  198. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/human/init.py +0 -0
  199. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/human/upgrade.py +0 -0
  200. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/__init__.py +0 -0
  201. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py +0 -0
  202. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/concepts/add.py +0 -0
  203. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/concepts/show.py +0 -0
  204. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/concepts/update.py +0 -0
  205. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/episodes/__init__.py +0 -0
  206. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/episodes/events.py +0 -0
  207. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/episodes/selection.py +0 -0
  208. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/episodes/serialization.py +0 -0
  209. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/memories/__init__.py +0 -0
  210. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/memories/add.py +0 -0
  211. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/memories/update.py +0 -0
  212. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/memories/utility_vote_evidence.py +0 -0
  213. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/retrieval/__init__.py +0 -0
  214. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/retrieval/execution.py +0 -0
  215. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/retrieval/read.py +0 -0
  216. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/scenarios/__init__.py +0 -0
  217. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/internal_agent/scenarios/record.py +0 -0
  218. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/result_envelopes.py +0 -0
  219. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/session_state.py +0 -0
  220. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/working_agent/__init__.py +0 -0
  221. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/working_agent/recall.py +0 -0
  222. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/working_agent/snapshot.py +0 -0
  223. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/handlers/working_agent/teach.py +0 -0
  224. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/main.py +0 -0
  225. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/operation_command.py +0 -0
  226. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/parser/__init__.py +0 -0
  227. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/presenters/__init__.py +0 -0
  228. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/presenters/init.py +0 -0
  229. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/presenters/json.py +0 -0
  230. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/__init__.py +0 -0
  231. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/concepts.py +0 -0
  232. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/episodes.py +0 -0
  233. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/hydration.py +0 -0
  234. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/memories.py +0 -0
  235. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/payload_validation.py +0 -0
  236. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/prepared.py +0 -0
  237. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/retrieval.py +0 -0
  238. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/scenarios.py +0 -0
  239. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/cli/request_parsing/teach.py +0 -0
  240. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/host_hooks/__init__.py +0 -0
  241. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/host_hooks/claude_session_start.py +0 -0
  242. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/host_hooks/cursor_statusline.py +0 -0
  243. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/jobs/__init__.py +0 -0
  244. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/entrypoints/jobs/episode_sync.py +0 -0
  245. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/__init__.py +0 -0
  246. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/__init__.py +0 -0
  247. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/__init__.py +0 -0
  248. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/app_role_safety.py +0 -0
  249. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/backups/__init__.py +0 -0
  250. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/backups/destructive_guard.py +0 -0
  251. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/backups/logical_backup.py +0 -0
  252. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/backups/manifest_store.py +0 -0
  253. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/backups/restore.py +0 -0
  254. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/connection.py +0 -0
  255. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/instance_guard.py +0 -0
  256. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/migrations.py +0 -0
  257. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/privileges.py +0 -0
  258. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/provisioning/__init__.py +0 -0
  259. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/provisioning/docker_prerequisites.py +0 -0
  260. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/provisioning/external_postgres.py +0 -0
  261. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/provisioning/init_effects.py +0 -0
  262. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/provisioning/managed_local.py +0 -0
  263. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/admin/storage_setup.py +0 -0
  264. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/__init__.py +0 -0
  265. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/engine.py +0 -0
  266. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/__init__.py +0 -0
  267. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/associations.py +0 -0
  268. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/concepts.py +0 -0
  269. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/episodes.py +0 -0
  270. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/evidence.py +0 -0
  271. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/experiences.py +0 -0
  272. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/instance_metadata.py +0 -0
  273. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/knowledge_builder.py +0 -0
  274. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/memories.py +0 -0
  275. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/metadata.py +0 -0
  276. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/problem_runs.py +0 -0
  277. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/registry.py +0 -0
  278. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/snapshots.py +0 -0
  279. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/telemetry.py +0 -0
  280. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/utility.py +0 -0
  281. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/models/views.py +0 -0
  282. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/queries/__init__.py +0 -0
  283. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/queries/agent_behavior.py +0 -0
  284. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/queries/analytics.py +0 -0
  285. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/queries/model_usage_backfill.py +0 -0
  286. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/__init__.py +0 -0
  287. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/__init__.py +0 -0
  288. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/associations_repo.py +0 -0
  289. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/concepts_repo.py +0 -0
  290. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/episodes_repo.py +0 -0
  291. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/evidence_repo.py +0 -0
  292. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/experiences_repo.py +0 -0
  293. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/knowledge_builder_repo.py +0 -0
  294. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/memories_repo.py +0 -0
  295. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/problem_runs_repo.py +0 -0
  296. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/read_policy_repo.py +0 -0
  297. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/snapshots_repo.py +0 -0
  298. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/telemetry_repo.py +0 -0
  299. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/relational/utility_repo.py +0 -0
  300. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/semantic/__init__.py +0 -0
  301. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/semantic/concept_retrieval_repo.py +0 -0
  302. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/semantic/keyword_retrieval_repo.py +0 -0
  303. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/repos/semantic/semantic_retrieval_repo.py +0 -0
  304. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/session.py +0 -0
  305. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/db/runtime/uow.py +0 -0
  306. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/embeddings/__init__.py +0 -0
  307. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/embeddings/local_provider.py +0 -0
  308. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/embeddings/prewarm.py +0 -0
  309. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/embeddings/query_vector_search.py +0 -0
  310. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/__init__.py +0 -0
  311. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/__init__.py +0 -0
  312. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/claude.py +0 -0
  313. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/codex.py +0 -0
  314. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/cursor.py +0 -0
  315. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/cursor_statusline_config.py +0 -0
  316. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/inspection.py +0 -0
  317. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/managed_markdown.py +0 -0
  318. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/managed_tree.py +0 -0
  319. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/packaged_assets.py +0 -0
  320. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/paths.py +0 -0
  321. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/service.py +0 -0
  322. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/assets/types.py +0 -0
  323. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/__init__.py +0 -0
  324. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/claude_hook_install.py +0 -0
  325. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/claude_runtime.py +0 -0
  326. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/codex_runtime.py +0 -0
  327. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/compatibility.py +0 -0
  328. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/cursor_statusline.py +0 -0
  329. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/identity/resolver.py +0 -0
  330. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/inner_agents/__init__.py +0 -0
  331. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/inner_agents/claude_cli.py +0 -0
  332. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/inner_agents/codex_cli.py +0 -0
  333. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/inner_agents/output_parser.py +0 -0
  334. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/__init__.py +0 -0
  335. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/claude_code.py +0 -0
  336. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/codex.py +0 -0
  337. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/cursor.py +0 -0
  338. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/model_usage.py +0 -0
  339. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/normalization.py +0 -0
  340. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/session_selection.py +0 -0
  341. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/source_discovery.py +0 -0
  342. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/host_apps/transcripts/tool_filter.py +0 -0
  343. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/__init__.py +0 -0
  344. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/init_lock.py +0 -0
  345. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/machine_config_store.py +0 -0
  346. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/operation_registration.py +0 -0
  347. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/paths.py +0 -0
  348. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/recall_mode_store.py +0 -0
  349. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/repo_registration_store.py +0 -0
  350. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/session_state_file_store.py +0 -0
  351. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/local_state/shadow_git_store.py +0 -0
  352. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/__init__.py +0 -0
  353. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/episode_sync/__init__.py +0 -0
  354. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/episode_sync/autostart.py +0 -0
  355. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/episode_sync/launcher.py +0 -0
  356. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/episode_sync/lock_file.py +0 -0
  357. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/episode_sync/poller.py +0 -0
  358. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/process/episode_sync/status_store.py +0 -0
  359. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/system/__init__.py +0 -0
  360. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/system/clock.py +0 -0
  361. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/system/id_generator.py +0 -0
  362. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/system/package_upgrade.py +0 -0
  363. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/__init__.py +0 -0
  364. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/inner_agent_records.py +0 -0
  365. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/operation_invocations.py +0 -0
  366. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/operation_polling.py +0 -0
  367. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/read_records.py +0 -0
  368. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/recall_records.py +0 -0
  369. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/recorder.py +0 -0
  370. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/records.py +0 -0
  371. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/sink.py +0 -0
  372. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/storage_protocols.py +0 -0
  373. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/sync_records.py +0 -0
  374. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/infrastructure/telemetry/write_records.py +0 -0
  375. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/__init__.py +0 -0
  376. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/defaults/create_policy.yaml +0 -0
  377. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/defaults/read_policy.yaml +0 -0
  378. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/defaults/runtime.yaml +0 -0
  379. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/defaults/thresholds.yaml +0 -0
  380. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/settings/defaults/update_policy.yaml +0 -0
  381. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/__init__.py +0 -0
  382. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/admin.py +0 -0
  383. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/admin_db.py +0 -0
  384. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/admin_dependencies.py +0 -0
  385. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/admin_diagnose.py +0 -0
  386. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/analytics.py +0 -0
  387. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/backup.py +0 -0
  388. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/config.py +0 -0
  389. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/create_policy.py +0 -0
  390. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/db.py +0 -0
  391. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/dsn_resolution.py +0 -0
  392. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/embeddings.py +0 -0
  393. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/episode_poller.py +0 -0
  394. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/episode_sync_launcher.py +0 -0
  395. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/host_hooks.py +0 -0
  396. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/internal_agent_config.py +0 -0
  397. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/internal_agents.py +0 -0
  398. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/knowledge_builder.py +0 -0
  399. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/migrations.py +0 -0
  400. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/model_usage_backfill.py +0 -0
  401. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/operation_dependencies.py +0 -0
  402. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/read_policy.py +0 -0
  403. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/repo_context.py +0 -0
  404. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/repos.py +0 -0
  405. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/retrieval.py +0 -0
  406. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/runtime_admin.py +0 -0
  407. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/runtime_context.py +0 -0
  408. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/settings.py +0 -0
  409. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/snapshot_baseline.py +0 -0
  410. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/thresholds.py +0 -0
  411. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/update_policy.py +0 -0
  412. {shellbrain-0.1.52 → shellbrain-0.1.54}/app/startup/use_cases.py +0 -0
  413. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/__init__.py +0 -0
  414. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/_legacy_usage_views.py +0 -0
  415. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/_usage_view_sql.py +0 -0
  416. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/env.py +0 -0
  417. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260226_0001_initial_schema.py +0 -0
  418. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
  419. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
  420. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
  421. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
  422. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
  423. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
  424. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
  425. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260410_0009_frontier_memory_family.py +0 -0
  426. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260414_0010_model_usage_telemetry.py +0 -0
  427. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260414_0011_usage_problem_tokens_multi_solution_metrics.py +0 -0
  428. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260415_0012_read_pack_cost_and_read_roi.py +0 -0
  429. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260421_0013_concept_context_graph.py +0 -0
  430. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260422_0014_concept_read_telemetry.py +0 -0
  431. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260422_0015_problem_runs.py +0 -0
  432. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260508_0016_recall_telemetry.py +0 -0
  433. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260511_0017_inner_agent_invocations.py +0 -0
  434. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260513_0018_knowledge_build_runs.py +0 -0
  435. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260515_0019_scenario_records.py +0 -0
  436. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260516_0020_knowledge_build_observability.py +0 -0
  437. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0021_knowledge_build_watermark_stable.py +0 -0
  438. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0022_update_evidence_links.py +0 -0
  439. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0023_explicit_teach_trigger.py +0 -0
  440. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0024_read_retrieval_latency_indexes.py +0 -0
  441. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py +0 -0
  442. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py +0 -0
  443. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260519_0027_concept_embeddings.py +0 -0
  444. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260520_0028_knowledge_build_lifecycle.py +0 -0
  445. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0029_remove_frontier_and_memory_anchors.py +0 -0
  446. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0030_concept_lifecycle_events.py +0 -0
  447. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0031_unified_evidence_storage.py +0 -0
  448. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0032_memory_lifecycle_events.py +0 -0
  449. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0033_concept_memory_role_cleanup.py +0 -0
  450. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0034_structural_memory_relations.py +0 -0
  451. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260522_0035_retire_legacy_compatibility_tables.py +0 -0
  452. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260526_0036_shadow_snapshots.py +0 -0
  453. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260606_0037_wiki_summaries.py +0 -0
  454. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/20260815_0038_drop_wiki_summaries.py +0 -0
  455. {shellbrain-0.1.52 → shellbrain-0.1.54}/migrations/versions/__init__.py +0 -0
  456. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/__init__.py +0 -0
  457. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/claude/CLAUDE.md +0 -0
  458. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/claude/skills/shellbrain/SKILL.md +0 -0
  459. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
  460. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/AGENTS.md +0 -0
  461. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/clean-architecture/SKILL.md +0 -0
  462. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/clean-code/SKILL.md +0 -0
  463. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain/SKILL.md +0 -0
  464. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain/agents/openai.yaml +0 -0
  465. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain/assets/shellbrain-large.svg +0 -0
  466. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain/assets/shellbrain-small.svg +0 -0
  467. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain/assets/shellbrain_logo.png +0 -0
  468. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain/references/session-workflow.md +0 -0
  469. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
  470. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
  471. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
  472. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
  473. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/cursor/skills/shellbrain/SKILL.md +0 -0
  474. {shellbrain-0.1.52 → shellbrain-0.1.54}/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
  475. {shellbrain-0.1.52 → shellbrain-0.1.54}/setup.cfg +0 -0
  476. {shellbrain-0.1.52 → shellbrain-0.1.54}/shellbrain.egg-info/dependency_links.txt +0 -0
  477. {shellbrain-0.1.52 → shellbrain-0.1.54}/shellbrain.egg-info/entry_points.txt +0 -0
  478. {shellbrain-0.1.52 → shellbrain-0.1.54}/shellbrain.egg-info/requires.txt +0 -0
  479. {shellbrain-0.1.52 → shellbrain-0.1.54}/shellbrain.egg-info/top_level.txt +0 -0
@@ -0,0 +1,137 @@
1
+ Metadata-Version: 2.4
2
+ Name: shellbrain
3
+ Version: 0.1.54
4
+ Summary: Repo-scoped Shellbrain CLI with explicit evidence-backed writes.
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: SQLAlchemy<3.0,>=2.0
8
+ Requires-Dist: alembic<2.0,>=1.13
9
+ Requires-Dist: pydantic<3.0,>=2.7
10
+ Requires-Dist: PyYAML<7.0,>=6.0
11
+ Requires-Dist: psycopg[binary]<4.0,>=3.1
12
+ Requires-Dist: pgvector<1.0,>=0.3
13
+ Requires-Dist: sentence-transformers<4.0,>=3.0
14
+
15
+ <p align="center">
16
+ <img src="https://raw.githubusercontent.com/cucupac/shellbrain/main/docs/assets/shellbrain_logo_badge.png" alt="ShellBrain logo" height="88">
17
+ </p>
18
+
19
+ <h3 align="center">ShellBrain</h3>
20
+
21
+ <p align="center">Long-term Memory for AI Agents.</p>
22
+
23
+ ShellBrain gives AI agents memory, so they can store and reuse what they learn over time.
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ curl -L shellbrain.ai/install | bash
29
+ ```
30
+
31
+ **Works for Codex, Claude Code, and Cursor.** The installer runs `shellbrain init` for you. Repos register themselves on first use.
32
+
33
+ Requirements.
34
+ - macOS or Linux, Python 3.11+, Docker for the managed local Postgres+pgvector runtime.
35
+
36
+ ### Upgrade for latest capabilities
37
+
38
+ ```bash
39
+ shellbrain upgrade
40
+ ```
41
+
42
+ You can also run `curl -L shellbrain.ai/upgrade | bash`. Manual alternative: `pipx upgrade shellbrain && shellbrain init`.
43
+
44
+ ---
45
+
46
+ ## Recall in one command
47
+
48
+ <p align="center">
49
+ <img src="docs/assets/shellbrain-recall-context-diagram.png" alt="ShellBrain recall uses vector search and BM25 to search your memories. An inner recall agent summarizes the search results." width="720">
50
+ </p>
51
+
52
+ ---
53
+
54
+ ## Architecture
55
+
56
+ ShellBrain builds memory in three grounded layers:
57
+
58
+ - **Episodic knowledge records evidence.** It stores prompts, agent steps, tool calls, and outputs from each session.
59
+ - **Empirical knowledge extracts concrete memories.** It organizes problems, solutions, failed tactics, facts, preferences, and changes in a semantic graph for **case-based reasoning**.
60
+ - **Conceptual knowledge abstracts reusable ideas.** Its concept graph connects claims, relations, and implementations to empirical knowledge.
61
+
62
+ Each higher layer links to evidence in the layer below it. Agents receive a compact orientation first, then request more detail when needed.
63
+
64
+ ---
65
+
66
+ ## How Agents Use ShellBrain
67
+
68
+ ### Recall
69
+
70
+ Working agents run `shellbrain recall` to get one compact brief for the current task.
71
+
72
+ Recall receives only the quoted query. Include the relevant task, failure, subsystem, or decision in the question.
73
+
74
+ ```bash
75
+ shellbrain recall "What is ShellBrain, and how does it help a working coding agent?"
76
+ ```
77
+
78
+ **Response format:**
79
+
80
+ ```json
81
+ {
82
+ "status": "ok",
83
+ "data": {
84
+ "brief": {
85
+ "summary": "...",
86
+ "constraints": ["..."],
87
+ "known_traps": ["..."],
88
+ "prior_cases": ["..."],
89
+ "concept_orientation": ["..."],
90
+ "anchors": ["`README.md`"],
91
+ "conflicts": ["..."],
92
+ "gaps": ["..."],
93
+ "next_checks": ["..."]
94
+ },
95
+ "fallback_reason": null
96
+ },
97
+ "errors": []
98
+ }
99
+ ```
100
+
101
+ The brief lets the working agent focus on the current task.
102
+
103
+ ### Teach
104
+
105
+ Run `shellbrain teach` only when you explicitly want ShellBrain to remember something important.
106
+
107
+ ---
108
+
109
+ ## Memory Discipline
110
+
111
+ ShellBrain keeps memory grounded in evidence and narrow in scope. Agents request memory when they need it.
112
+
113
+ **Memory that cannot justify itself should not persist.**
114
+
115
+ ---
116
+
117
+ ## Use ShellBrain
118
+
119
+ Use Shellbrain with your preferred agent. Then work as usual.
120
+
121
+ - **Claude Code:** Use `/shellbrain` to recall context at task boundaries.
122
+ - **Codex:** Use $shellbrain to recall context at task boundaries.
123
+ - **Cursor:** Use `/shellbrain` to recall context at task boundaries.
124
+
125
+ ---
126
+
127
+ ## Repair
128
+
129
+ Run `shellbrain admin doctor` to inspect the installation. If it reports a problem, run `shellbrain init`. Do not run init every session.
130
+
131
+ ---
132
+
133
+ ## Docs
134
+
135
+ - [For Humans](https://shellbrain.ai/humans/): installation, upgrades, and first steps
136
+ - [For Agents](https://shellbrain.ai/agents/): agent workflow and memory rules
137
+ - [Technical Docs](https://deepwiki.com/cucupac/shellbrain): detailed documentation and code map
@@ -0,0 +1,123 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/cucupac/shellbrain/main/docs/assets/shellbrain_logo_badge.png" alt="ShellBrain logo" height="88">
3
+ </p>
4
+
5
+ <h3 align="center">ShellBrain</h3>
6
+
7
+ <p align="center">Long-term Memory for AI Agents.</p>
8
+
9
+ ShellBrain gives AI agents memory, so they can store and reuse what they learn over time.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ curl -L shellbrain.ai/install | bash
15
+ ```
16
+
17
+ **Works for Codex, Claude Code, and Cursor.** The installer runs `shellbrain init` for you. Repos register themselves on first use.
18
+
19
+ Requirements.
20
+ - macOS or Linux, Python 3.11+, Docker for the managed local Postgres+pgvector runtime.
21
+
22
+ ### Upgrade for latest capabilities
23
+
24
+ ```bash
25
+ shellbrain upgrade
26
+ ```
27
+
28
+ You can also run `curl -L shellbrain.ai/upgrade | bash`. Manual alternative: `pipx upgrade shellbrain && shellbrain init`.
29
+
30
+ ---
31
+
32
+ ## Recall in one command
33
+
34
+ <p align="center">
35
+ <img src="docs/assets/shellbrain-recall-context-diagram.png" alt="ShellBrain recall uses vector search and BM25 to search your memories. An inner recall agent summarizes the search results." width="720">
36
+ </p>
37
+
38
+ ---
39
+
40
+ ## Architecture
41
+
42
+ ShellBrain builds memory in three grounded layers:
43
+
44
+ - **Episodic knowledge records evidence.** It stores prompts, agent steps, tool calls, and outputs from each session.
45
+ - **Empirical knowledge extracts concrete memories.** It organizes problems, solutions, failed tactics, facts, preferences, and changes in a semantic graph for **case-based reasoning**.
46
+ - **Conceptual knowledge abstracts reusable ideas.** Its concept graph connects claims, relations, and implementations to empirical knowledge.
47
+
48
+ Each higher layer links to evidence in the layer below it. Agents receive a compact orientation first, then request more detail when needed.
49
+
50
+ ---
51
+
52
+ ## How Agents Use ShellBrain
53
+
54
+ ### Recall
55
+
56
+ Working agents run `shellbrain recall` to get one compact brief for the current task.
57
+
58
+ Recall receives only the quoted query. Include the relevant task, failure, subsystem, or decision in the question.
59
+
60
+ ```bash
61
+ shellbrain recall "What is ShellBrain, and how does it help a working coding agent?"
62
+ ```
63
+
64
+ **Response format:**
65
+
66
+ ```json
67
+ {
68
+ "status": "ok",
69
+ "data": {
70
+ "brief": {
71
+ "summary": "...",
72
+ "constraints": ["..."],
73
+ "known_traps": ["..."],
74
+ "prior_cases": ["..."],
75
+ "concept_orientation": ["..."],
76
+ "anchors": ["`README.md`"],
77
+ "conflicts": ["..."],
78
+ "gaps": ["..."],
79
+ "next_checks": ["..."]
80
+ },
81
+ "fallback_reason": null
82
+ },
83
+ "errors": []
84
+ }
85
+ ```
86
+
87
+ The brief lets the working agent focus on the current task.
88
+
89
+ ### Teach
90
+
91
+ Run `shellbrain teach` only when you explicitly want ShellBrain to remember something important.
92
+
93
+ ---
94
+
95
+ ## Memory Discipline
96
+
97
+ ShellBrain keeps memory grounded in evidence and narrow in scope. Agents request memory when they need it.
98
+
99
+ **Memory that cannot justify itself should not persist.**
100
+
101
+ ---
102
+
103
+ ## Use ShellBrain
104
+
105
+ Use Shellbrain with your preferred agent. Then work as usual.
106
+
107
+ - **Claude Code:** Use `/shellbrain` to recall context at task boundaries.
108
+ - **Codex:** Use $shellbrain to recall context at task boundaries.
109
+ - **Cursor:** Use `/shellbrain` to recall context at task boundaries.
110
+
111
+ ---
112
+
113
+ ## Repair
114
+
115
+ Run `shellbrain admin doctor` to inspect the installation. If it reports a problem, run `shellbrain init`. Do not run init every session.
116
+
117
+ ---
118
+
119
+ ## Docs
120
+
121
+ - [For Humans](https://shellbrain.ai/humans/): installation, upgrades, and first steps
122
+ - [For Agents](https://shellbrain.ai/agents/): agent workflow and memory rules
123
+ - [Technical Docs](https://deepwiki.com/cucupac/shellbrain): detailed documentation and code map
@@ -34,7 +34,7 @@ _DEFAULT_SETTINGS = InnerAgentSettings(
34
34
  reasoning="medium",
35
35
  timeout_seconds=90,
36
36
  max_private_reads=0,
37
- max_brief_tokens=1_800,
37
+ max_brief_tokens=500,
38
38
  )
39
39
 
40
40
 
@@ -38,7 +38,6 @@ _TOP_LEVEL_HELP = dedent(
38
38
  - Bootstrap or repair with `shellbrain init`.
39
39
  - Upgrade with `shellbrain upgrade`.
40
40
  - Check health with `shellbrain admin doctor`.
41
- - Review usage with `shellbrain metrics`.
42
41
 
43
42
  Working agents:
44
43
  - Use `shellbrain recall` for normal task context.
@@ -68,7 +67,6 @@ _TOP_LEVEL_HELP = dedent(
68
67
  Humans:
69
68
  shellbrain init
70
69
  shellbrain upgrade
71
- shellbrain metrics
72
70
  shellbrain admin doctor
73
71
  shellbrain admin migrate
74
72
 
@@ -386,15 +384,6 @@ _BACKFILL_TOKEN_USAGE_HELP = dedent(
386
384
  """
387
385
  )
388
386
 
389
- _METRICS_HELP = dedent(
390
- """\
391
- Generate lightweight metrics snapshots, write local artifacts, and open one browser dashboard that switches repos with arrow keys.
392
-
393
- Example:
394
- shellbrain metrics
395
- """
396
- )
397
-
398
387
  _INSTALL_CLAUDE_HOOK_HELP = dedent(
399
388
  """\
400
389
  Install or update the repo-local Claude Code SessionStart hook used as an explicit repo-local override.
@@ -499,14 +488,6 @@ def build_parser() -> argparse.ArgumentParser:
499
488
  formatter_class=_HelpFormatter,
500
489
  )
501
490
 
502
- subparsers.add_parser(
503
- "metrics",
504
- help="Browse Shellbrain metrics across repos.",
505
- description="Generate local metrics snapshots and open one browser dashboard for all repos.",
506
- epilog=_METRICS_HELP,
507
- formatter_class=_HelpFormatter,
508
- )
509
-
510
491
  read_parser = subparsers.add_parser(
511
492
  "read",
512
493
  help="Read Shellbrain context without mutating state.",
@@ -89,15 +89,6 @@ def main(
89
89
 
90
90
  return run_upgrade_command(run_upgrade_command=runtime.run_upgrade_command)
91
91
 
92
- if args.command == "metrics":
93
- from app.entrypoints.cli.handlers.human.metrics import run_metrics_command
94
-
95
- return run_metrics_command(
96
- args,
97
- warn_or_fail_on_unsafe_app_role=runtime.warn_or_fail_on_unsafe_app_role,
98
- run_metrics_dashboard=runtime.run_metrics_dashboard,
99
- )
100
-
101
92
  if args.command == "admin":
102
93
  from app.entrypoints.cli.handlers.human.admin import run_admin_command
103
94
 
@@ -31,5 +31,4 @@ class CliRuntime(Protocol):
31
31
  init_success_presenter_context: Callable[[], dict[str, Any]]
32
32
  run_upgrade_command: Callable[[], int]
33
33
  warn_or_fail_on_unsafe_app_role: Callable[[], None]
34
- run_metrics_dashboard: Callable[..., object]
35
34
  admin_dependencies: Any
@@ -77,7 +77,7 @@ shellbrain --no-sync --repo-root "<repo_root>" concept show --help
77
77
 
78
78
  Do not run `shellbrain recall`.
79
79
  Do not write memories, concepts, scenarios, files, settings, or database data.
80
- Do not run `admin`, `init`, `upgrade`, or `metrics` commands.
80
+ Do not run `admin`, `init`, or `upgrade` commands.
81
81
 
82
82
  # PROTOCOL
83
83
  1. Read `query`, `repo_root`, and the budgets from the payload.
@@ -291,6 +291,11 @@ Leave a section empty when it has no useful content.
291
291
  Summary: max two sentences. Lists: max three items. Items: max one sentence.
292
292
  Keep visible anchors minimal because full provenance belongs in telemetry.
293
293
 
294
+ # OUTPUT BUDGET
295
+ Treat `max_brief_tokens` as the limit for the complete brief.
296
+ Keep every relevant constraint, trap, conflict, and warning before background context.
297
+ Do not fill the budget when a shorter brief is useful.
298
+
294
299
  # OUTPUT
295
300
  Return only valid JSON matching `output_contract`. Return a `brief` object only.
296
301
  Keep each list compact.
@@ -451,7 +456,7 @@ Do not edit files.
451
456
  Do not run a formatter that writes files.
452
457
  Do not commit or push.
453
458
  Do not run `shellbrain recall` or `shellbrain snapshot`.
454
- Do not run `admin`, `init`, `upgrade`, or `metrics` commands.
459
+ Do not run `admin`, `init`, or `upgrade` commands.
455
460
  Do not write directly to the database.
456
461
  Do not use `graph_patches`.
457
462
  Do not use a write command that this prompt does not list.
@@ -707,7 +712,7 @@ shellbrain --repo-root "<repo_root>" concept update --help
707
712
  ```
708
713
 
709
714
  Forbidden: `shellbrain events`, `shellbrain scenario record`, `shellbrain
710
- recall`, `shellbrain snapshot`, admin/init/upgrade/metrics, direct DB writes,
715
+ recall`, `shellbrain snapshot`, admin/init/upgrade, direct DB writes,
711
716
  editing files, formatters, commits, pushes, and any write command not listed
712
717
  above.
713
718
 
@@ -859,7 +864,7 @@ def render_build_context_prompt(request: InnerAgentRunRequest) -> str:
859
864
  "shellbrain concept add",
860
865
  "shellbrain concept update",
861
866
  "shellbrain scenario record",
862
- "any admin, init, upgrade, metrics, or durable write command",
867
+ "any admin, init, upgrade, or durable write command",
863
868
  ],
864
869
  "output_contract": {
865
870
  "brief": {
@@ -6,7 +6,7 @@ build_context:
6
6
  reasoning: low
7
7
  timeout_seconds: 90
8
8
  max_private_reads: 3
9
- max_brief_tokens: 1800
9
+ max_brief_tokens: 500
10
10
 
11
11
  build_knowledge:
12
12
  provider: auto
@@ -13,7 +13,6 @@ def build_cli_runtime():
13
13
 
14
14
  from app.startup import create_policy
15
15
  from app.startup import episode_sync_launcher
16
- from app.startup import metrics as startup_metrics
17
16
  from app.startup import operation_dependencies
18
17
  from app.startup import read_policy
19
18
  from app.startup import repo_context
@@ -63,7 +62,6 @@ def build_cli_runtime():
63
62
  init_success_presenter_context=runtime_admin.init_success_presenter_context,
64
63
  run_upgrade_command=run_upgrade_command,
65
64
  warn_or_fail_on_unsafe_app_role=warn_or_fail_on_unsafe_app_role,
66
- run_metrics_dashboard=startup_metrics.run_metrics_dashboard,
67
65
  admin_dependencies=build_admin_command_dependencies(),
68
66
  )
69
67
 
@@ -35,5 +35,4 @@ class CliRuntime:
35
35
  init_success_presenter_context: Callable[[], dict[str, Any]]
36
36
  run_upgrade_command: Callable[[], int]
37
37
  warn_or_fail_on_unsafe_app_role: Callable[[], None]
38
- run_metrics_dashboard: Callable[..., object]
39
38
  admin_dependencies: AdminCommandDependencies
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "shellbrain"
7
- version = "0.1.52"
7
+ version = "0.1.54"
8
8
  description = "Repo-scoped Shellbrain CLI with explicit evidence-backed writes."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -0,0 +1,137 @@
1
+ Metadata-Version: 2.4
2
+ Name: shellbrain
3
+ Version: 0.1.54
4
+ Summary: Repo-scoped Shellbrain CLI with explicit evidence-backed writes.
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: SQLAlchemy<3.0,>=2.0
8
+ Requires-Dist: alembic<2.0,>=1.13
9
+ Requires-Dist: pydantic<3.0,>=2.7
10
+ Requires-Dist: PyYAML<7.0,>=6.0
11
+ Requires-Dist: psycopg[binary]<4.0,>=3.1
12
+ Requires-Dist: pgvector<1.0,>=0.3
13
+ Requires-Dist: sentence-transformers<4.0,>=3.0
14
+
15
+ <p align="center">
16
+ <img src="https://raw.githubusercontent.com/cucupac/shellbrain/main/docs/assets/shellbrain_logo_badge.png" alt="ShellBrain logo" height="88">
17
+ </p>
18
+
19
+ <h3 align="center">ShellBrain</h3>
20
+
21
+ <p align="center">Long-term Memory for AI Agents.</p>
22
+
23
+ ShellBrain gives AI agents memory, so they can store and reuse what they learn over time.
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ curl -L shellbrain.ai/install | bash
29
+ ```
30
+
31
+ **Works for Codex, Claude Code, and Cursor.** The installer runs `shellbrain init` for you. Repos register themselves on first use.
32
+
33
+ Requirements.
34
+ - macOS or Linux, Python 3.11+, Docker for the managed local Postgres+pgvector runtime.
35
+
36
+ ### Upgrade for latest capabilities
37
+
38
+ ```bash
39
+ shellbrain upgrade
40
+ ```
41
+
42
+ You can also run `curl -L shellbrain.ai/upgrade | bash`. Manual alternative: `pipx upgrade shellbrain && shellbrain init`.
43
+
44
+ ---
45
+
46
+ ## Recall in one command
47
+
48
+ <p align="center">
49
+ <img src="docs/assets/shellbrain-recall-context-diagram.png" alt="ShellBrain recall uses vector search and BM25 to search your memories. An inner recall agent summarizes the search results." width="720">
50
+ </p>
51
+
52
+ ---
53
+
54
+ ## Architecture
55
+
56
+ ShellBrain builds memory in three grounded layers:
57
+
58
+ - **Episodic knowledge records evidence.** It stores prompts, agent steps, tool calls, and outputs from each session.
59
+ - **Empirical knowledge extracts concrete memories.** It organizes problems, solutions, failed tactics, facts, preferences, and changes in a semantic graph for **case-based reasoning**.
60
+ - **Conceptual knowledge abstracts reusable ideas.** Its concept graph connects claims, relations, and implementations to empirical knowledge.
61
+
62
+ Each higher layer links to evidence in the layer below it. Agents receive a compact orientation first, then request more detail when needed.
63
+
64
+ ---
65
+
66
+ ## How Agents Use ShellBrain
67
+
68
+ ### Recall
69
+
70
+ Working agents run `shellbrain recall` to get one compact brief for the current task.
71
+
72
+ Recall receives only the quoted query. Include the relevant task, failure, subsystem, or decision in the question.
73
+
74
+ ```bash
75
+ shellbrain recall "What is ShellBrain, and how does it help a working coding agent?"
76
+ ```
77
+
78
+ **Response format:**
79
+
80
+ ```json
81
+ {
82
+ "status": "ok",
83
+ "data": {
84
+ "brief": {
85
+ "summary": "...",
86
+ "constraints": ["..."],
87
+ "known_traps": ["..."],
88
+ "prior_cases": ["..."],
89
+ "concept_orientation": ["..."],
90
+ "anchors": ["`README.md`"],
91
+ "conflicts": ["..."],
92
+ "gaps": ["..."],
93
+ "next_checks": ["..."]
94
+ },
95
+ "fallback_reason": null
96
+ },
97
+ "errors": []
98
+ }
99
+ ```
100
+
101
+ The brief lets the working agent focus on the current task.
102
+
103
+ ### Teach
104
+
105
+ Run `shellbrain teach` only when you explicitly want ShellBrain to remember something important.
106
+
107
+ ---
108
+
109
+ ## Memory Discipline
110
+
111
+ ShellBrain keeps memory grounded in evidence and narrow in scope. Agents request memory when they need it.
112
+
113
+ **Memory that cannot justify itself should not persist.**
114
+
115
+ ---
116
+
117
+ ## Use ShellBrain
118
+
119
+ Use Shellbrain with your preferred agent. Then work as usual.
120
+
121
+ - **Claude Code:** Use `/shellbrain` to recall context at task boundaries.
122
+ - **Codex:** Use $shellbrain to recall context at task boundaries.
123
+ - **Cursor:** Use `/shellbrain` to recall context at task boundaries.
124
+
125
+ ---
126
+
127
+ ## Repair
128
+
129
+ Run `shellbrain admin doctor` to inspect the installation. If it reports a problem, run `shellbrain init`. Do not run init every session.
130
+
131
+ ---
132
+
133
+ ## Docs
134
+
135
+ - [For Humans](https://shellbrain.ai/humans/): installation, upgrades, and first steps
136
+ - [For Agents](https://shellbrain.ai/agents/): agent workflow and memory rules
137
+ - [Technical Docs](https://deepwiki.com/cucupac/shellbrain): detailed documentation and code map
@@ -63,8 +63,6 @@ app/core/ports/host_apps/inner_agents.py
63
63
  app/core/ports/local_state/__init__.py
64
64
  app/core/ports/local_state/session_state_store.py
65
65
  app/core/ports/local_state/shadow_git.py
66
- app/core/ports/reporting/__init__.py
67
- app/core/ports/reporting/metrics.py
68
66
  app/core/ports/system/__init__.py
69
67
  app/core/ports/system/clock.py
70
68
  app/core/ports/system/idgen.py
@@ -130,8 +128,6 @@ app/core/use_cases/memories/update/request.py
130
128
  app/core/use_cases/memories/update/result.py
131
129
  app/core/use_cases/metrics/__init__.py
132
130
  app/core/use_cases/metrics/analyze_agent_behavior.py
133
- app/core/use_cases/metrics/build_snapshot.py
134
- app/core/use_cases/metrics/generate_dashboard.py
135
131
  app/core/use_cases/retrieval/__init__.py
136
132
  app/core/use_cases/retrieval/concept_seed_retrieval.py
137
133
  app/core/use_cases/retrieval/context_pack_pipeline.py
@@ -178,7 +174,6 @@ app/entrypoints/cli/handlers/human/__init__.py
178
174
  app/entrypoints/cli/handlers/human/admin.py
179
175
  app/entrypoints/cli/handlers/human/admin_dependencies.py
180
176
  app/entrypoints/cli/handlers/human/init.py
181
- app/entrypoints/cli/handlers/human/metrics.py
182
177
  app/entrypoints/cli/handlers/human/upgrade.py
183
178
  app/entrypoints/cli/handlers/internal_agent/__init__.py
184
179
  app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py
@@ -207,7 +202,6 @@ app/entrypoints/cli/parser/builder.py
207
202
  app/entrypoints/cli/presenters/__init__.py
208
203
  app/entrypoints/cli/presenters/init.py
209
204
  app/entrypoints/cli/presenters/json.py
210
- app/entrypoints/cli/presenters/metrics.py
211
205
  app/entrypoints/cli/request_parsing/__init__.py
212
206
  app/entrypoints/cli/request_parsing/concepts.py
213
207
  app/entrypoints/cli/request_parsing/episodes.py
@@ -265,8 +259,6 @@ app/infrastructure/db/runtime/models/views.py
265
259
  app/infrastructure/db/runtime/queries/__init__.py
266
260
  app/infrastructure/db/runtime/queries/agent_behavior.py
267
261
  app/infrastructure/db/runtime/queries/analytics.py
268
- app/infrastructure/db/runtime/queries/metrics.py
269
- app/infrastructure/db/runtime/queries/metrics_adapter.py
270
262
  app/infrastructure/db/runtime/queries/model_usage_backfill.py
271
263
  app/infrastructure/db/runtime/repos/__init__.py
272
264
  app/infrastructure/db/runtime/repos/relational/__init__.py
@@ -340,12 +332,6 @@ app/infrastructure/process/episode_sync/launcher.py
340
332
  app/infrastructure/process/episode_sync/lock_file.py
341
333
  app/infrastructure/process/episode_sync/poller.py
342
334
  app/infrastructure/process/episode_sync/status_store.py
343
- app/infrastructure/reporting/__init__.py
344
- app/infrastructure/reporting/metrics/__init__.py
345
- app/infrastructure/reporting/metrics/artifacts.py
346
- app/infrastructure/reporting/metrics/browser.py
347
- app/infrastructure/reporting/metrics/pager.py
348
- app/infrastructure/reporting/metrics/render_html.py
349
335
  app/infrastructure/system/__init__.py
350
336
  app/infrastructure/system/clock.py
351
337
  app/infrastructure/system/id_generator.py
@@ -389,7 +375,6 @@ app/startup/host_hooks.py
389
375
  app/startup/internal_agent_config.py
390
376
  app/startup/internal_agents.py
391
377
  app/startup/knowledge_builder.py
392
- app/startup/metrics.py
393
378
  app/startup/migrations.py
394
379
  app/startup/model_usage_backfill.py
395
380
  app/startup/operation_dependencies.py