shellbrain 0.1.49__tar.gz → 0.1.51__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 (496) hide show
  1. {shellbrain-0.1.49 → shellbrain-0.1.51}/PKG-INFO +1 -1
  2. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/concepts.py +0 -1
  3. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/evidence.py +0 -21
  4. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/inner_agents.py +1 -16
  5. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/concept_repositories.py +0 -12
  6. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/memory_repositories.py +0 -13
  7. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/unit_of_work.py +0 -4
  8. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/host_apps/inner_agents.py +0 -46
  9. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/parser/builder.py +0 -40
  10. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/runner.py +0 -10
  11. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/runtime.py +0 -1
  12. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/registry.py +0 -2
  13. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/concepts_repo.py +0 -65
  14. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/evidence_repo.py +0 -62
  15. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/memories_repo.py +0 -23
  16. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/uow.py +0 -8
  17. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/inner_agents/claude_cli.py +0 -57
  18. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/inner_agents/codex_cli.py +1 -121
  19. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/inner_agents/output_parser.py +0 -23
  20. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/inner_agents/prompt.py +0 -52
  21. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/internal-agents/defaults.yaml +3 -16
  22. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/cli.py +0 -2
  23. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/cli_runtime.py +0 -1
  24. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/internal_agent_config.py +7 -4
  25. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/internal_agents.py +2 -18
  26. shellbrain-0.1.51/migrations/versions/20260815_0038_drop_wiki_summaries.py +85 -0
  27. {shellbrain-0.1.49 → shellbrain-0.1.51}/pyproject.toml +1 -1
  28. {shellbrain-0.1.49 → shellbrain-0.1.51}/shellbrain.egg-info/PKG-INFO +1 -1
  29. {shellbrain-0.1.49 → shellbrain-0.1.51}/shellbrain.egg-info/SOURCES.txt +1 -20
  30. shellbrain-0.1.49/app/core/entities/repositories.py +0 -17
  31. shellbrain-0.1.49/app/core/entities/wiki_summaries.py +0 -114
  32. shellbrain-0.1.49/app/core/policies/wiki_summary_freshness.py +0 -60
  33. shellbrain-0.1.49/app/core/ports/db/repository_index.py +0 -16
  34. shellbrain-0.1.49/app/core/ports/db/wiki_summaries.py +0 -64
  35. shellbrain-0.1.49/app/core/use_cases/wiki/__init__.py +0 -27
  36. shellbrain-0.1.49/app/core/use_cases/wiki/execute.py +0 -880
  37. shellbrain-0.1.49/app/core/use_cases/wiki/request.py +0 -109
  38. shellbrain-0.1.49/app/core/use_cases/wiki/result.py +0 -295
  39. shellbrain-0.1.49/app/core/use_cases/wiki/summaries.py +0 -699
  40. shellbrain-0.1.49/app/entrypoints/cli/handlers/human/wiki.py +0 -42
  41. shellbrain-0.1.49/app/infrastructure/db/runtime/models/wiki_summaries.py +0 -63
  42. shellbrain-0.1.49/app/infrastructure/db/runtime/repos/relational/repository_index_repo.py +0 -159
  43. shellbrain-0.1.49/app/infrastructure/db/runtime/repos/relational/wiki_summaries_repo.py +0 -239
  44. shellbrain-0.1.49/app/infrastructure/reporting/wiki/__init__.py +0 -1
  45. shellbrain-0.1.49/app/infrastructure/reporting/wiki/browser.py +0 -11
  46. shellbrain-0.1.49/app/infrastructure/reporting/wiki/render_html.py +0 -666
  47. shellbrain-0.1.49/app/infrastructure/reporting/wiki/server.py +0 -293
  48. shellbrain-0.1.49/app/infrastructure/reporting/wiki/summary_worker.py +0 -123
  49. shellbrain-0.1.49/app/startup/wiki.py +0 -59
  50. {shellbrain-0.1.49 → shellbrain-0.1.51}/README.md +0 -0
  51. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/__init__.py +0 -0
  52. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/__main__.py +0 -0
  53. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/__init__.py +0 -0
  54. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/__init__.py +0 -0
  55. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/admin_errors.py +0 -0
  56. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/associations.py +0 -0
  57. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/backups.py +0 -0
  58. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/episodes.py +0 -0
  59. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/guidance.py +0 -0
  60. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/identity.py +0 -0
  61. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/ids.py +0 -0
  62. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/knowledge_builder.py +0 -0
  63. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/machine_config.py +0 -0
  64. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/memories.py +0 -0
  65. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/runtime_context.py +0 -0
  66. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/scenarios.py +0 -0
  67. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/session_state.py +0 -0
  68. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/settings.py +0 -0
  69. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/snapshots.py +0 -0
  70. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/structural_memory_relations.py +0 -0
  71. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/entities/utility.py +0 -0
  72. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/errors.py +0 -0
  73. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/__init__.py +0 -0
  74. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/concepts/__init__.py +0 -0
  75. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/concepts/relation_rules.py +0 -0
  76. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/concepts/search_text.py +0 -0
  77. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/episodes/__init__.py +0 -0
  78. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/episodes/event_content.py +0 -0
  79. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/episodes/knowledge_building.py +0 -0
  80. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/memories/__init__.py +0 -0
  81. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/memories/add_plan.py +0 -0
  82. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/memories/link_rules.py +0 -0
  83. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/memories/update_plan.py +0 -0
  84. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/__init__.py +0 -0
  85. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/bm25.py +0 -0
  86. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/context_pack.py +0 -0
  87. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/expansion.py +0 -0
  88. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/fusion_rrf.py +0 -0
  89. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/lexical_query.py +0 -0
  90. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/ontology_semantics.py +0 -0
  91. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/policies/retrieval/scoring.py +0 -0
  92. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/__init__.py +0 -0
  93. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/__init__.py +0 -0
  94. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/episode_repositories.py +0 -0
  95. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/guidance.py +0 -0
  96. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/knowledge_builder.py +0 -0
  97. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/problem_runs.py +0 -0
  98. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/retrieval_repositories.py +0 -0
  99. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/db/snapshots.py +0 -0
  100. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/embeddings/__init__.py +0 -0
  101. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/embeddings/provider.py +0 -0
  102. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/embeddings/retrieval.py +0 -0
  103. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/host_apps/__init__.py +0 -0
  104. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/local_state/__init__.py +0 -0
  105. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/local_state/session_state_store.py +0 -0
  106. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/local_state/shadow_git.py +0 -0
  107. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/reporting/__init__.py +0 -0
  108. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/reporting/metrics.py +0 -0
  109. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/system/__init__.py +0 -0
  110. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/system/clock.py +0 -0
  111. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/ports/system/idgen.py +0 -0
  112. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/__init__.py +0 -0
  113. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/__init__.py +0 -0
  114. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/analytics_diagnostics.py +0 -0
  115. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/backfill_model_usage/__init__.py +0 -0
  116. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/backfill_model_usage/backfill_model_usage.py +0 -0
  117. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/backfill_model_usage/request.py +0 -0
  118. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/backfill_model_usage/result.py +0 -0
  119. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/create_backup.py +0 -0
  120. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/diagnose_runtime.py +0 -0
  121. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/generate_analytics_report.py +0 -0
  122. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/initialize_runtime.py +0 -0
  123. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/restore_backup.py +0 -0
  124. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/admin/verify_backup.py +0 -0
  125. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/build_guidance.py +0 -0
  126. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/__init__.py +0 -0
  127. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/add/__init__.py +0 -0
  128. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/add/execute.py +0 -0
  129. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/add/request.py +0 -0
  130. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/add/result.py +0 -0
  131. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/containment_checks.py +0 -0
  132. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/embeddings.py +0 -0
  133. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/reference_checks.py +0 -0
  134. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/show/__init__.py +0 -0
  135. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/show/execute.py +0 -0
  136. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/show/request.py +0 -0
  137. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/show/result.py +0 -0
  138. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/update/__init__.py +0 -0
  139. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/update/execute.py +0 -0
  140. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/update/request.py +0 -0
  141. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/update/result.py +0 -0
  142. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/concepts/views.py +0 -0
  143. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/__init__.py +0 -0
  144. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/events/__init__.py +0 -0
  145. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/events/request.py +0 -0
  146. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/sync_discovered_host_session.py +0 -0
  147. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/sync_episode/__init__.py +0 -0
  148. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/sync_episode/request.py +0 -0
  149. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/sync_episode/result.py +0 -0
  150. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/episodes/sync_episode/sync_episode.py +0 -0
  151. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/__init__.py +0 -0
  152. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/build_knowledge/__init__.py +0 -0
  153. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/build_knowledge/execute.py +0 -0
  154. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/build_knowledge/request.py +0 -0
  155. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/build_knowledge/result.py +0 -0
  156. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/teach_knowledge/__init__.py +0 -0
  157. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/teach_knowledge/execute.py +0 -0
  158. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/teach_knowledge/request.py +0 -0
  159. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/knowledge_builder/teach_knowledge/result.py +0 -0
  160. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/__init__.py +0 -0
  161. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/add/__init__.py +0 -0
  162. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/add/execute.py +0 -0
  163. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/add/request.py +0 -0
  164. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/add/result.py +0 -0
  165. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/effect_plan.py +0 -0
  166. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/reference_checks.py +0 -0
  167. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/update/__init__.py +0 -0
  168. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/update/execute.py +0 -0
  169. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/update/request.py +0 -0
  170. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/memories/update/result.py +0 -0
  171. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/metrics/__init__.py +0 -0
  172. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/metrics/analyze_agent_behavior.py +0 -0
  173. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/metrics/build_snapshot.py +0 -0
  174. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/metrics/generate_dashboard.py +0 -0
  175. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/plan_execution.py +0 -0
  176. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/__init__.py +0 -0
  177. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/build_context/__init__.py +0 -0
  178. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/build_context/execute.py +0 -0
  179. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/concept_seed_retrieval.py +0 -0
  180. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/context_pack_pipeline.py +0 -0
  181. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/deterministic_graph_recall.py +0 -0
  182. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/expansion.py +0 -0
  183. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/read/__init__.py +0 -0
  184. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/read/execute.py +0 -0
  185. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/read/request.py +0 -0
  186. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/read/result.py +0 -0
  187. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/read_concepts.py +0 -0
  188. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/recall/__init__.py +0 -0
  189. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/recall/execute.py +0 -0
  190. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/recall/request.py +0 -0
  191. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/recall/result.py +0 -0
  192. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/retrieval/seed_retrieval.py +0 -0
  193. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/scenarios/__init__.py +0 -0
  194. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/scenarios/record/__init__.py +0 -0
  195. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/scenarios/record/execute.py +0 -0
  196. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/scenarios/record/request.py +0 -0
  197. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/scenarios/record/result.py +0 -0
  198. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/__init__.py +0 -0
  199. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/capture_snapshot/__init__.py +0 -0
  200. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/capture_snapshot/execute.py +0 -0
  201. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/capture_snapshot/request.py +0 -0
  202. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/capture_snapshot/result.py +0 -0
  203. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/code_delta_context/__init__.py +0 -0
  204. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/code_delta_context/execute.py +0 -0
  205. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/core/use_cases/snapshots/code_delta_context/request.py +0 -0
  206. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/__init__.py +0 -0
  207. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/__init__.py +0 -0
  208. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/error_responses.py +0 -0
  209. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/__init__.py +0 -0
  210. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/cli_operation.py +0 -0
  211. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/dependencies.py +0 -0
  212. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/human/__init__.py +0 -0
  213. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/human/admin.py +0 -0
  214. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/human/admin_dependencies.py +0 -0
  215. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/human/init.py +0 -0
  216. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/human/metrics.py +0 -0
  217. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/human/upgrade.py +0 -0
  218. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/__init__.py +0 -0
  219. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py +0 -0
  220. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/concepts/add.py +0 -0
  221. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/concepts/show.py +0 -0
  222. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/concepts/update.py +0 -0
  223. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/episodes/__init__.py +0 -0
  224. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/episodes/events.py +0 -0
  225. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/episodes/selection.py +0 -0
  226. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/episodes/serialization.py +0 -0
  227. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/memories/__init__.py +0 -0
  228. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/memories/add.py +0 -0
  229. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/memories/update.py +0 -0
  230. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/memories/utility_vote_evidence.py +0 -0
  231. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/retrieval/__init__.py +0 -0
  232. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/retrieval/execution.py +0 -0
  233. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/retrieval/read.py +0 -0
  234. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/scenarios/__init__.py +0 -0
  235. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/internal_agent/scenarios/record.py +0 -0
  236. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/result_envelopes.py +0 -0
  237. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/session_state.py +0 -0
  238. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/working_agent/__init__.py +0 -0
  239. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/working_agent/recall.py +0 -0
  240. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/working_agent/snapshot.py +0 -0
  241. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/handlers/working_agent/teach.py +0 -0
  242. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/main.py +0 -0
  243. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/operation_command.py +0 -0
  244. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/parser/__init__.py +0 -0
  245. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/presenters/__init__.py +0 -0
  246. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/presenters/init.py +0 -0
  247. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/presenters/json.py +0 -0
  248. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/presenters/metrics.py +0 -0
  249. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/__init__.py +0 -0
  250. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/concepts.py +0 -0
  251. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/episodes.py +0 -0
  252. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/hydration.py +0 -0
  253. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/memories.py +0 -0
  254. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/payload_validation.py +0 -0
  255. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/prepared.py +0 -0
  256. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/retrieval.py +0 -0
  257. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/scenarios.py +0 -0
  258. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/cli/request_parsing/teach.py +0 -0
  259. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/host_hooks/__init__.py +0 -0
  260. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/host_hooks/claude_session_start.py +0 -0
  261. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/host_hooks/cursor_statusline.py +0 -0
  262. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/jobs/__init__.py +0 -0
  263. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/entrypoints/jobs/episode_sync.py +0 -0
  264. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/__init__.py +0 -0
  265. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/__init__.py +0 -0
  266. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/__init__.py +0 -0
  267. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/app_role_safety.py +0 -0
  268. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/backups/__init__.py +0 -0
  269. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/backups/destructive_guard.py +0 -0
  270. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/backups/logical_backup.py +0 -0
  271. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/backups/manifest_store.py +0 -0
  272. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/backups/restore.py +0 -0
  273. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/connection.py +0 -0
  274. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/instance_guard.py +0 -0
  275. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/migrations.py +0 -0
  276. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/privileges.py +0 -0
  277. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/provisioning/__init__.py +0 -0
  278. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/provisioning/docker_prerequisites.py +0 -0
  279. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/provisioning/external_postgres.py +0 -0
  280. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/provisioning/init_effects.py +0 -0
  281. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/provisioning/managed_local.py +0 -0
  282. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/admin/storage_setup.py +0 -0
  283. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/__init__.py +0 -0
  284. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/engine.py +0 -0
  285. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/__init__.py +0 -0
  286. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/associations.py +0 -0
  287. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/concepts.py +0 -0
  288. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/episodes.py +0 -0
  289. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/evidence.py +0 -0
  290. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/experiences.py +0 -0
  291. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/instance_metadata.py +0 -0
  292. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/knowledge_builder.py +0 -0
  293. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/memories.py +0 -0
  294. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/metadata.py +0 -0
  295. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/problem_runs.py +0 -0
  296. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/snapshots.py +0 -0
  297. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/telemetry.py +0 -0
  298. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/utility.py +0 -0
  299. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/models/views.py +0 -0
  300. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/queries/__init__.py +0 -0
  301. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/queries/agent_behavior.py +0 -0
  302. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/queries/analytics.py +0 -0
  303. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/queries/metrics.py +0 -0
  304. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/queries/metrics_adapter.py +0 -0
  305. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/queries/model_usage_backfill.py +0 -0
  306. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/__init__.py +0 -0
  307. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/__init__.py +0 -0
  308. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/associations_repo.py +0 -0
  309. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/episodes_repo.py +0 -0
  310. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/experiences_repo.py +0 -0
  311. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/knowledge_builder_repo.py +0 -0
  312. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/problem_runs_repo.py +0 -0
  313. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/read_policy_repo.py +0 -0
  314. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/snapshots_repo.py +0 -0
  315. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/telemetry_repo.py +0 -0
  316. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/relational/utility_repo.py +0 -0
  317. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/semantic/__init__.py +0 -0
  318. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/semantic/concept_retrieval_repo.py +0 -0
  319. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/semantic/keyword_retrieval_repo.py +0 -0
  320. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/repos/semantic/semantic_retrieval_repo.py +0 -0
  321. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/db/runtime/session.py +0 -0
  322. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/embeddings/__init__.py +0 -0
  323. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/embeddings/local_provider.py +0 -0
  324. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/embeddings/prewarm.py +0 -0
  325. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/embeddings/query_vector_search.py +0 -0
  326. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/__init__.py +0 -0
  327. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/__init__.py +0 -0
  328. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/claude.py +0 -0
  329. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/codex.py +0 -0
  330. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/cursor.py +0 -0
  331. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/cursor_statusline_config.py +0 -0
  332. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/inspection.py +0 -0
  333. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/managed_markdown.py +0 -0
  334. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/managed_tree.py +0 -0
  335. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/packaged_assets.py +0 -0
  336. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/paths.py +0 -0
  337. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/service.py +0 -0
  338. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/assets/types.py +0 -0
  339. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/__init__.py +0 -0
  340. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/claude_hook_install.py +0 -0
  341. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/claude_runtime.py +0 -0
  342. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/codex_runtime.py +0 -0
  343. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/compatibility.py +0 -0
  344. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/cursor_statusline.py +0 -0
  345. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/identity/resolver.py +0 -0
  346. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/inner_agents/__init__.py +0 -0
  347. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/__init__.py +0 -0
  348. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/claude_code.py +0 -0
  349. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/codex.py +0 -0
  350. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/cursor.py +0 -0
  351. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/model_usage.py +0 -0
  352. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/normalization.py +0 -0
  353. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/session_selection.py +0 -0
  354. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/source_discovery.py +0 -0
  355. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/host_apps/transcripts/tool_filter.py +0 -0
  356. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/__init__.py +0 -0
  357. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/init_lock.py +0 -0
  358. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/machine_config_store.py +0 -0
  359. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/operation_registration.py +0 -0
  360. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/paths.py +0 -0
  361. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/recall_mode_store.py +0 -0
  362. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/repo_registration_store.py +0 -0
  363. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/session_state_file_store.py +0 -0
  364. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/local_state/shadow_git_store.py +0 -0
  365. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/__init__.py +0 -0
  366. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/episode_sync/__init__.py +0 -0
  367. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/episode_sync/autostart.py +0 -0
  368. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/episode_sync/launcher.py +0 -0
  369. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/episode_sync/lock_file.py +0 -0
  370. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/episode_sync/poller.py +0 -0
  371. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/process/episode_sync/status_store.py +0 -0
  372. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/reporting/__init__.py +0 -0
  373. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/reporting/metrics/__init__.py +0 -0
  374. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/reporting/metrics/artifacts.py +0 -0
  375. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/reporting/metrics/browser.py +0 -0
  376. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/reporting/metrics/pager.py +0 -0
  377. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/reporting/metrics/render_html.py +0 -0
  378. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/system/__init__.py +0 -0
  379. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/system/clock.py +0 -0
  380. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/system/id_generator.py +0 -0
  381. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/system/package_upgrade.py +0 -0
  382. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/__init__.py +0 -0
  383. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/inner_agent_records.py +0 -0
  384. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/operation_invocations.py +0 -0
  385. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/operation_polling.py +0 -0
  386. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/read_records.py +0 -0
  387. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/recall_records.py +0 -0
  388. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/recorder.py +0 -0
  389. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/records.py +0 -0
  390. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/sink.py +0 -0
  391. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/storage_protocols.py +0 -0
  392. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/sync_records.py +0 -0
  393. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/infrastructure/telemetry/write_records.py +0 -0
  394. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/__init__.py +0 -0
  395. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/defaults/create_policy.yaml +0 -0
  396. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/defaults/read_policy.yaml +0 -0
  397. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/defaults/runtime.yaml +0 -0
  398. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/defaults/thresholds.yaml +0 -0
  399. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/settings/defaults/update_policy.yaml +0 -0
  400. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/__init__.py +0 -0
  401. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/admin.py +0 -0
  402. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/admin_db.py +0 -0
  403. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/admin_dependencies.py +0 -0
  404. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/admin_diagnose.py +0 -0
  405. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/analytics.py +0 -0
  406. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/backup.py +0 -0
  407. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/config.py +0 -0
  408. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/create_policy.py +0 -0
  409. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/db.py +0 -0
  410. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/dsn_resolution.py +0 -0
  411. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/embeddings.py +0 -0
  412. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/episode_poller.py +0 -0
  413. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/episode_sync_launcher.py +0 -0
  414. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/host_hooks.py +0 -0
  415. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/knowledge_builder.py +0 -0
  416. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/metrics.py +0 -0
  417. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/migrations.py +0 -0
  418. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/model_usage_backfill.py +0 -0
  419. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/operation_dependencies.py +0 -0
  420. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/read_policy.py +0 -0
  421. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/repo_context.py +0 -0
  422. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/repos.py +0 -0
  423. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/retrieval.py +0 -0
  424. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/runtime_admin.py +0 -0
  425. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/runtime_context.py +0 -0
  426. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/settings.py +0 -0
  427. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/snapshot_baseline.py +0 -0
  428. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/thresholds.py +0 -0
  429. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/update_policy.py +0 -0
  430. {shellbrain-0.1.49 → shellbrain-0.1.51}/app/startup/use_cases.py +0 -0
  431. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/__init__.py +0 -0
  432. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/_legacy_usage_views.py +0 -0
  433. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/_usage_view_sql.py +0 -0
  434. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/env.py +0 -0
  435. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260226_0001_initial_schema.py +0 -0
  436. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
  437. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
  438. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
  439. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
  440. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
  441. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
  442. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
  443. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260410_0009_frontier_memory_family.py +0 -0
  444. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260414_0010_model_usage_telemetry.py +0 -0
  445. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260414_0011_usage_problem_tokens_multi_solution_metrics.py +0 -0
  446. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260415_0012_read_pack_cost_and_read_roi.py +0 -0
  447. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260421_0013_concept_context_graph.py +0 -0
  448. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260422_0014_concept_read_telemetry.py +0 -0
  449. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260422_0015_problem_runs.py +0 -0
  450. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260508_0016_recall_telemetry.py +0 -0
  451. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260511_0017_inner_agent_invocations.py +0 -0
  452. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260513_0018_knowledge_build_runs.py +0 -0
  453. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260515_0019_scenario_records.py +0 -0
  454. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260516_0020_knowledge_build_observability.py +0 -0
  455. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0021_knowledge_build_watermark_stable.py +0 -0
  456. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0022_update_evidence_links.py +0 -0
  457. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0023_explicit_teach_trigger.py +0 -0
  458. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0024_read_retrieval_latency_indexes.py +0 -0
  459. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py +0 -0
  460. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py +0 -0
  461. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260519_0027_concept_embeddings.py +0 -0
  462. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260520_0028_knowledge_build_lifecycle.py +0 -0
  463. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0029_remove_frontier_and_memory_anchors.py +0 -0
  464. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0030_concept_lifecycle_events.py +0 -0
  465. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0031_unified_evidence_storage.py +0 -0
  466. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0032_memory_lifecycle_events.py +0 -0
  467. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0033_concept_memory_role_cleanup.py +0 -0
  468. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0034_structural_memory_relations.py +0 -0
  469. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260522_0035_retire_legacy_compatibility_tables.py +0 -0
  470. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260526_0036_shadow_snapshots.py +0 -0
  471. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/20260606_0037_wiki_summaries.py +0 -0
  472. {shellbrain-0.1.49 → shellbrain-0.1.51}/migrations/versions/__init__.py +0 -0
  473. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/__init__.py +0 -0
  474. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/claude/CLAUDE.md +0 -0
  475. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/claude/skills/shellbrain/SKILL.md +0 -0
  476. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
  477. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/AGENTS.md +0 -0
  478. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/clean-architecture/SKILL.md +0 -0
  479. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/clean-code/SKILL.md +0 -0
  480. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain/SKILL.md +0 -0
  481. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain/agents/openai.yaml +0 -0
  482. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain/assets/shellbrain-large.svg +0 -0
  483. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain/assets/shellbrain-small.svg +0 -0
  484. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain/assets/shellbrain_logo.png +0 -0
  485. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain/references/session-workflow.md +0 -0
  486. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
  487. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
  488. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
  489. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
  490. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/cursor/skills/shellbrain/SKILL.md +0 -0
  491. {shellbrain-0.1.49 → shellbrain-0.1.51}/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
  492. {shellbrain-0.1.49 → shellbrain-0.1.51}/setup.cfg +0 -0
  493. {shellbrain-0.1.49 → shellbrain-0.1.51}/shellbrain.egg-info/dependency_links.txt +0 -0
  494. {shellbrain-0.1.49 → shellbrain-0.1.51}/shellbrain.egg-info/entry_points.txt +0 -0
  495. {shellbrain-0.1.49 → shellbrain-0.1.51}/shellbrain.egg-info/requires.txt +0 -0
  496. {shellbrain-0.1.49 → shellbrain-0.1.51}/shellbrain.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shellbrain
3
- Version: 0.1.49
3
+ Version: 0.1.51
4
4
  Summary: Repo-scoped Shellbrain CLI with explicit evidence-backed writes.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -310,7 +310,6 @@ class ConceptEvidence:
310
310
  commit_ref: str | None = None
311
311
  transcript_ref: str | None = None
312
312
  note: str | None = None
313
- evidence_id: str | None = None
314
313
  created_at: datetime | None = None
315
314
 
316
315
 
@@ -147,27 +147,6 @@ class EvidenceLinkView:
147
147
  created_at: datetime | None = None
148
148
 
149
149
 
150
- @dataclass(frozen=True, kw_only=True)
151
- class EvidenceLinkedTarget:
152
- """One target linked to a canonical evidence source."""
153
-
154
- link_id: str
155
- target: EvidenceTarget
156
- role: EvidenceRole
157
- created_at: datetime | None = None
158
-
159
-
160
- @dataclass(frozen=True, kw_only=True)
161
- class EvidenceDetail:
162
- """One canonical evidence source plus all linked targets."""
163
-
164
- id: EvidenceId
165
- repo_id: RepoId
166
- source: EvidenceSource
167
- linked_targets: tuple[EvidenceLinkedTarget, ...]
168
- created_at: datetime | None = None
169
-
170
-
171
150
  @dataclass(kw_only=True)
172
151
  class MemoryEvidenceLink:
173
152
  """This dataclass models a many-to-many link between shellbrain and evidence."""
@@ -11,7 +11,7 @@ class _StrictModel(BaseModel):
11
11
  model_config = ConfigDict(extra="forbid")
12
12
 
13
13
 
14
- InnerAgentName = Literal["build_context", "build_knowledge", "teach", "wiki_summary"]
14
+ InnerAgentName = Literal["build_context", "build_knowledge", "teach"]
15
15
  InnerAgentProviderName = str
16
16
  InnerAgentReasoningLevel = Literal["none", "minimal", "low", "medium", "high", "xhigh"]
17
17
  BuildContextStrategy = Literal[
@@ -66,19 +66,4 @@ class TeachKnowledgeSettings(_StrictModel):
66
66
  max_write_commands: int = Field(default=12, ge=1, le=200)
67
67
 
68
68
 
69
- class WikiSummarySettings(_StrictModel):
70
- """Typed model/runtime settings for generated wiki summaries."""
71
-
72
- provider: InnerAgentProviderName = Field(min_length=1)
73
- model: str = Field(min_length=1)
74
- reasoning: InnerAgentReasoningLevel
75
- timeout_seconds: int = Field(ge=1, le=1200)
76
- prompt_version: str = Field(default="wiki-summary.v1", min_length=1)
77
- max_summary_chars: int = Field(default=900, ge=100, le=4000)
78
- running_refresh_stale_seconds: int = Field(default=3600, ge=60, le=86_400)
79
- startup_batch_limit: int = Field(default=20, ge=0, le=200)
80
- periodic_batch_limit: int = Field(default=5, ge=0, le=100)
81
- periodic_seconds: int = Field(default=300, ge=30, le=86_400)
82
-
83
-
84
69
  InnerAgentSettings = BuildContextSettings
@@ -37,12 +37,6 @@ class IConceptsRepo(ABC):
37
37
  ) -> Sequence[Concept]:
38
38
  """This method returns concepts for the provided ids."""
39
39
 
40
- @abstractmethod
41
- def list_concepts(
42
- self, *, repo_id: str, statuses: Sequence[str]
43
- ) -> Sequence[Concept]:
44
- """This method returns concepts for one repo and status set."""
45
-
46
40
  @abstractmethod
47
41
  def list_contains_edges(self, *, repo_id: str) -> Sequence[ConceptRelation]:
48
42
  """This method returns active contains edges for cycle validation."""
@@ -110,12 +104,6 @@ class IConceptsRepo(ABC):
110
104
  ) -> Sequence[dict[str, Any]]:
111
105
  """This method returns concept-link matches for displayed memory ids."""
112
106
 
113
- @abstractmethod
114
- def find_concepts_for_anchor_ids(
115
- self, *, repo_id: str, anchor_ids: Sequence[str]
116
- ) -> Sequence[dict[str, Any]]:
117
- """This method returns concept-grounding matches for displayed anchors."""
118
-
119
107
  @abstractmethod
120
108
  def upsert_embedding(
121
109
  self,
@@ -5,7 +5,6 @@ from typing import Sequence
5
5
 
6
6
  from app.core.entities.associations import AssociationEdge, AssociationObservation
7
7
  from app.core.entities.evidence import (
8
- EvidenceDetail,
9
8
  EvidenceLinkView,
10
9
  EvidenceRole,
11
10
  EvidenceSource,
@@ -31,12 +30,6 @@ class IMemoriesRepo(ABC):
31
30
  def list_by_ids(self, ids: Sequence[str]) -> Sequence[Memory]:
32
31
  """This method fetches memories in the input identifier order."""
33
32
 
34
- @abstractmethod
35
- def list_recent(
36
- self, *, repo_id: str, statuses: Sequence[str], limit: int
37
- ) -> Sequence[Memory]:
38
- """Fetch recent memories for one repository in newest-first order."""
39
-
40
33
  @abstractmethod
41
34
  def update_lifecycle(self, memory: Memory) -> bool:
42
35
  """Update lifecycle fields for one concrete memory."""
@@ -103,9 +96,3 @@ class IEvidenceRepo(ABC):
103
96
  self, *, repo_id: str, targets: Sequence[EvidenceTarget]
104
97
  ) -> Sequence[EvidenceLinkView]:
105
98
  """Resolve evidence links for targets through the unified evidence API."""
106
-
107
- @abstractmethod
108
- def get_evidence_detail(
109
- self, *, repo_id: str, evidence_id: str
110
- ) -> EvidenceDetail | None:
111
- """Resolve one canonical evidence source plus linked targets."""
@@ -15,9 +15,7 @@ from app.core.ports.db.memory_repositories import (
15
15
  IUtilityRepo,
16
16
  )
17
17
  from app.core.ports.db.problem_runs import IProblemRunsRepo
18
- from app.core.ports.db.repository_index import IRepositoryIndexRepo
19
18
  from app.core.ports.db.snapshots import ISnapshotsRepo
20
- from app.core.ports.db.wiki_summaries import IWikiSummaryRepo
21
19
  from app.core.ports.embeddings.retrieval import IVectorSearch
22
20
  from app.core.ports.db.retrieval_repositories import (
23
21
  IConceptKeywordRetrievalRepo,
@@ -46,9 +44,7 @@ class IUnitOfWork(ABC):
46
44
  guidance: IPendingUtilityCandidatesRepo
47
45
  knowledge_build_runs: IKnowledgeBuildRunsRepo
48
46
  problem_runs: IProblemRunsRepo
49
- repository_index: IRepositoryIndexRepo
50
47
  snapshots: ISnapshotsRepo
51
- wiki_summaries: IWikiSummaryRepo
52
48
  vector_search: IVectorSearch | None
53
49
 
54
50
  @abstractmethod
@@ -105,22 +105,6 @@ class TeachKnowledgeAgentRequest(_StrictModel):
105
105
  max_write_commands: int = Field(ge=1, le=200)
106
106
 
107
107
 
108
- class WikiSummaryAgentRequest(_StrictModel):
109
- """One provider request to generate a cached wiki summary."""
110
-
111
- agent_name: InnerAgentName = "wiki_summary"
112
- provider: InnerAgentProviderName = Field(min_length=1)
113
- model: str = Field(min_length=1)
114
- reasoning: InnerAgentReasoningLevel
115
- timeout_seconds: int = Field(ge=1, le=1200)
116
- prompt_version: str = Field(min_length=1)
117
- target_type: str = Field(min_length=1)
118
- repo_id: str = Field(min_length=1)
119
- target_id: str = Field(min_length=1)
120
- source_payload: dict[str, Any]
121
- max_summary_chars: int = Field(ge=100, le=4000)
122
-
123
-
124
108
  class BuildKnowledgeAgentResult(_StrictModel):
125
109
  """Provider-neutral result from one build_knowledge run."""
126
110
 
@@ -146,27 +130,6 @@ class BuildKnowledgeAgentResult(_StrictModel):
146
130
  code_trace: dict[str, Any] = Field(default_factory=dict)
147
131
 
148
132
 
149
- class WikiSummaryAgentResult(_StrictModel):
150
- """Provider-neutral result from one generated wiki summary run."""
151
-
152
- status: InnerAgentRunStatus
153
- provider: InnerAgentProviderName = Field(min_length=1)
154
- model: str
155
- reasoning: InnerAgentReasoningLevel
156
- timeout_seconds: int | None = Field(default=None, ge=1, le=1200)
157
- duration_ms: int = Field(default=0, ge=0)
158
- input_tokens: int | None = Field(default=None, ge=0)
159
- output_tokens: int | None = Field(default=None, ge=0)
160
- reasoning_output_tokens: int | None = Field(default=None, ge=0)
161
- cached_input_tokens_total: int | None = Field(default=None, ge=0)
162
- cache_read_input_tokens: int | None = Field(default=None, ge=0)
163
- cache_creation_input_tokens: int | None = Field(default=None, ge=0)
164
- capture_quality: TokenCaptureQuality | None = None
165
- body: str | None = None
166
- error_code: str | None = None
167
- error_message: str | None = None
168
-
169
-
170
133
  class IInnerAgentRunner(Protocol):
171
134
  """Behavior protocol for bounded inner-agent synthesis providers."""
172
135
 
@@ -190,12 +153,3 @@ class ITeachKnowledgeAgentRunner(Protocol):
190
153
  self, request: TeachKnowledgeAgentRequest
191
154
  ) -> BuildKnowledgeAgentResult:
192
155
  """Run one teach request and return a provider-neutral result."""
193
-
194
-
195
- class IWikiSummaryAgentRunner(Protocol):
196
- """Behavior protocol for generated wiki summary providers."""
197
-
198
- def run_wiki_summary(
199
- self, request: WikiSummaryAgentRequest
200
- ) -> WikiSummaryAgentResult:
201
- """Run one wiki summary request and return provider-neutral prose."""
@@ -39,7 +39,6 @@ _TOP_LEVEL_HELP = dedent(
39
39
  - Upgrade with `shellbrain upgrade`.
40
40
  - Check health with `shellbrain admin doctor`.
41
41
  - Review usage with `shellbrain metrics`.
42
- - Browse knowledge with `shellbrain wiki`.
43
42
 
44
43
  Working agents:
45
44
  - Use `shellbrain recall` for normal task context.
@@ -70,7 +69,6 @@ _TOP_LEVEL_HELP = dedent(
70
69
  shellbrain init
71
70
  shellbrain upgrade
72
71
  shellbrain metrics
73
- shellbrain wiki
74
72
  shellbrain admin doctor
75
73
  shellbrain admin migrate
76
74
 
@@ -397,18 +395,6 @@ _METRICS_HELP = dedent(
397
395
  """
398
396
  )
399
397
 
400
- _WIKI_HELP = dedent(
401
- """\
402
- Open the read-only Shellbrain Wiki for the current repo.
403
-
404
- The command starts a local foreground server, opens the browser, and stops
405
- when the terminal process is interrupted.
406
-
407
- Example:
408
- shellbrain wiki
409
- """
410
- )
411
-
412
398
  _INSTALL_CLAUDE_HOOK_HELP = dedent(
413
399
  """\
414
400
  Install or update the repo-local Claude Code SessionStart hook used as an explicit repo-local override.
@@ -521,32 +507,6 @@ def build_parser() -> argparse.ArgumentParser:
521
507
  formatter_class=_HelpFormatter,
522
508
  )
523
509
 
524
- wiki_parser = subparsers.add_parser(
525
- "wiki",
526
- help="Open the read-only Shellbrain Wiki for this repo.",
527
- description="Start the local Shellbrain Wiki and open it in the browser.",
528
- epilog=_WIKI_HELP,
529
- formatter_class=_HelpFormatter,
530
- )
531
- wiki_parser.add_argument(
532
- "wiki_extra_args",
533
- nargs=argparse.REMAINDER,
534
- help=argparse.SUPPRESS,
535
- )
536
- wiki_parser.add_argument("--port", dest="wiki_port", nargs="?", help=argparse.SUPPRESS)
537
- wiki_parser.add_argument(
538
- "--no-open", dest="wiki_no_open", action="store_true", help=argparse.SUPPRESS
539
- )
540
- wiki_parser.add_argument(
541
- "--repo-id", dest="wiki_repo_id", nargs="?", help=argparse.SUPPRESS
542
- )
543
- wiki_parser.add_argument(
544
- "--repo-root", dest="wiki_repo_root", nargs="?", help=argparse.SUPPRESS
545
- )
546
- wiki_parser.add_argument(
547
- "--no-sync", dest="wiki_no_sync", action="store_true", help=argparse.SUPPRESS
548
- )
549
-
550
510
  read_parser = subparsers.add_parser(
551
511
  "read",
552
512
  help="Read Shellbrain context without mutating state.",
@@ -98,16 +98,6 @@ def main(
98
98
  run_metrics_dashboard=runtime.run_metrics_dashboard,
99
99
  )
100
100
 
101
- if args.command == "wiki":
102
- from app.entrypoints.cli.handlers.human.wiki import run_wiki_command
103
-
104
- return run_wiki_command(
105
- args,
106
- resolve_repo_context=runtime.resolve_repo_context,
107
- warn_or_fail_on_unsafe_app_role=runtime.warn_or_fail_on_unsafe_app_role,
108
- run_wiki=runtime.run_wiki,
109
- )
110
-
111
101
  if args.command == "admin":
112
102
  from app.entrypoints.cli.handlers.human.admin import run_admin_command
113
103
 
@@ -32,5 +32,4 @@ class CliRuntime(Protocol):
32
32
  run_upgrade_command: Callable[[], int]
33
33
  warn_or_fail_on_unsafe_app_role: Callable[[], None]
34
34
  run_metrics_dashboard: Callable[..., object]
35
- run_wiki: Callable[..., int]
36
35
  admin_dependencies: Any
@@ -13,7 +13,6 @@ from app.infrastructure.db.runtime.models import (
13
13
  snapshots,
14
14
  telemetry,
15
15
  utility,
16
- wiki_summaries,
17
16
  )
18
17
  from app.infrastructure.db.runtime.models.metadata import metadata
19
18
 
@@ -31,7 +30,6 @@ _ = (
31
30
  snapshots,
32
31
  telemetry,
33
32
  utility,
34
- wiki_summaries,
35
33
  )
36
34
 
37
35
  target_metadata = metadata
@@ -170,30 +170,6 @@ class ConceptsRepo(IConceptsRepo):
170
170
  by_id = {str(row["id"]): _to_concept(row) for row in rows}
171
171
  return [by_id[concept_id] for concept_id in unique_ids if concept_id in by_id]
172
172
 
173
- def list_concepts(
174
- self, *, repo_id: str, statuses: Sequence[str]
175
- ) -> Sequence[Concept]:
176
- """Return concepts for one repo and status set."""
177
-
178
- status_values = tuple(dict.fromkeys(str(status) for status in statuses))
179
- if not status_values:
180
- return []
181
- rows = (
182
- self._session.execute(
183
- select(concepts)
184
- .where(
185
- concepts.c.repo_id == repo_id,
186
- concepts.c.status.in_(status_values),
187
- )
188
- .order_by(
189
- concepts.c.kind.asc(), concepts.c.name.asc(), concepts.c.slug.asc()
190
- )
191
- )
192
- .mappings()
193
- .all()
194
- )
195
- return [_to_concept(row) for row in rows]
196
-
197
173
  def list_contains_edges(self, *, repo_id: str) -> Sequence[ConceptRelation]:
198
174
  """Return active contains edges for one repo."""
199
175
 
@@ -623,7 +599,6 @@ class ConceptsRepo(IConceptsRepo):
623
599
  evidence_links.c.target_type,
624
600
  evidence_links.c.target_id,
625
601
  evidence_links.c.created_at,
626
- evidence_refs.c.id.label("evidence_id"),
627
602
  evidence_refs.c.kind,
628
603
  evidence_refs.c.ref,
629
604
  evidence_refs.c.episode_event_id,
@@ -686,44 +661,6 @@ class ConceptsRepo(IConceptsRepo):
686
661
  )
687
662
  return [dict(row) for row in rows]
688
663
 
689
- def find_concepts_for_anchor_ids(
690
- self, *, repo_id: str, anchor_ids: Sequence[str]
691
- ) -> Sequence[dict[str, Any]]:
692
- """Return concept-grounding matches for displayed anchors."""
693
-
694
- unique_anchor_ids = list(dict.fromkeys(str(anchor_id) for anchor_id in anchor_ids))
695
- if not unique_anchor_ids:
696
- return []
697
- rows = (
698
- self._session.execute(
699
- select(
700
- concepts.c.id.label("concept_id"),
701
- concepts.c.slug,
702
- concepts.c.name,
703
- concepts.c.kind,
704
- concept_groundings.c.id.label("grounding_id"),
705
- concept_groundings.c.anchor_id,
706
- concept_groundings.c.role,
707
- concept_groundings.c.status,
708
- concept_groundings.c.confidence,
709
- )
710
- .select_from(
711
- concept_groundings.join(
712
- concepts, concepts.c.id == concept_groundings.c.concept_id
713
- )
714
- )
715
- .where(
716
- concept_groundings.c.repo_id == repo_id,
717
- concept_groundings.c.anchor_id.in_(unique_anchor_ids),
718
- concepts.c.repo_id == repo_id,
719
- )
720
- .order_by(concepts.c.name.asc(), concept_groundings.c.role.asc())
721
- )
722
- .mappings()
723
- .all()
724
- )
725
- return [dict(row) for row in rows]
726
-
727
664
  def upsert_embedding(
728
665
  self,
729
666
  *,
@@ -906,7 +843,6 @@ def _to_evidence(row) -> ConceptEvidence:
906
843
  commit_ref=row["commit_ref"],
907
844
  transcript_ref=row["transcript_ref"],
908
845
  note=row["note"],
909
- evidence_id=row.get("evidence_id"),
910
846
  created_at=row["created_at"],
911
847
  )
912
848
 
@@ -922,7 +858,6 @@ def _unified_evidence_to_concept_row(row) -> dict[str, Any]:
922
858
  "target_type": _CONCEPT_TARGET_TYPE_BY_UNIFIED[str(row["target_type"])],
923
859
  "target_id": row["target_id"],
924
860
  "evidence_kind": evidence_kind,
925
- "evidence_id": row["evidence_id"],
926
861
  "anchor_id": row["anchor_id"],
927
862
  "memory_id": row["memory_id"],
928
863
  "commit_ref": row["commit_ref"],
@@ -8,8 +8,6 @@ from sqlalchemy import select, text
8
8
  from sqlalchemy.dialects.postgresql import insert
9
9
 
10
10
  from app.core.entities.evidence import (
11
- EvidenceDetail,
12
- EvidenceLinkedTarget,
13
11
  EvidenceLinkView,
14
12
  EvidenceRef,
15
13
  EvidenceRole,
@@ -90,54 +88,6 @@ class EvidenceRepo(IEvidenceRepo):
90
88
  links.extend(_link_view_from_row(row) for row in rows)
91
89
  return tuple(links)
92
90
 
93
- def get_evidence_detail(
94
- self, *, repo_id: str, evidence_id: str
95
- ) -> EvidenceDetail | None:
96
- """Resolve one canonical evidence source plus all linked targets."""
97
-
98
- evidence_row = (
99
- self._session.execute(
100
- select(evidence_refs).where(
101
- evidence_refs.c.repo_id == repo_id,
102
- evidence_refs.c.id == evidence_id,
103
- )
104
- )
105
- .mappings()
106
- .first()
107
- )
108
- if evidence_row is None:
109
- return None
110
-
111
- link_rows = (
112
- self._session.execute(
113
- select(
114
- evidence_links.c.id,
115
- evidence_links.c.target_type,
116
- evidence_links.c.target_id,
117
- evidence_links.c.evidence_role,
118
- evidence_links.c.created_at,
119
- )
120
- .where(
121
- evidence_links.c.repo_id == repo_id,
122
- evidence_links.c.evidence_id == evidence_id,
123
- )
124
- .order_by(
125
- evidence_links.c.target_type.asc(),
126
- evidence_links.c.target_id.asc(),
127
- evidence_links.c.evidence_role.asc(),
128
- )
129
- )
130
- .mappings()
131
- .all()
132
- )
133
- return EvidenceDetail(
134
- id=evidence_row["id"],
135
- repo_id=evidence_row["repo_id"],
136
- source=_source_from_row(evidence_row),
137
- linked_targets=tuple(_linked_target_from_row(row) for row in link_rows),
138
- created_at=evidence_row["created_at"],
139
- )
140
-
141
91
  def _attach_one(
142
92
  self,
143
93
  *,
@@ -375,18 +325,6 @@ def _link_view_from_row(row) -> EvidenceLinkView:
375
325
  )
376
326
 
377
327
 
378
- def _linked_target_from_row(row) -> EvidenceLinkedTarget:
379
- return EvidenceLinkedTarget(
380
- link_id=row["id"],
381
- target=EvidenceTarget(
382
- target_type=EvidenceTargetType(row["target_type"]),
383
- target_id=row["target_id"],
384
- ),
385
- role=EvidenceRole(row["evidence_role"]),
386
- created_at=row["created_at"],
387
- )
388
-
389
-
390
328
  def _source_from_row(row) -> EvidenceSource:
391
329
  source_kind = EvidenceSourceKind(row["kind"])
392
330
  if source_kind is EvidenceSourceKind.EPISODE_EVENT:
@@ -79,29 +79,6 @@ class MemoriesRepo(IMemoriesRepo):
79
79
  if memory_id in memories_by_id
80
80
  ]
81
81
 
82
- def list_recent(
83
- self, *, repo_id: str, statuses: Sequence[str], limit: int
84
- ) -> Sequence[Memory]:
85
- """Load recent memories for one repository in newest-first order."""
86
-
87
- if limit <= 0:
88
- return []
89
- status_values = tuple(str(status) for status in statuses)
90
- if not status_values:
91
- return []
92
- rows = (
93
- self._session.execute(
94
- select(memories)
95
- .where(memories.c.repo_id == repo_id)
96
- .where(memories.c.status.in_(status_values))
97
- .order_by(memories.c.created_at.desc(), memories.c.id.asc())
98
- .limit(limit)
99
- )
100
- .mappings()
101
- .all()
102
- )
103
- return [self._to_memory(row) for row in rows]
104
-
105
82
  def _to_memory(self, row) -> Memory:
106
83
  """Convert one relational row into the canonical shellbrain entity."""
107
84
 
@@ -16,16 +16,10 @@ from app.infrastructure.db.runtime.repos.relational.memories_repo import Memorie
16
16
  from app.infrastructure.db.runtime.repos.relational.problem_runs_repo import (
17
17
  ProblemRunsRepo,
18
18
  )
19
- from app.infrastructure.db.runtime.repos.relational.repository_index_repo import (
20
- RepositoryIndexRepo,
21
- )
22
19
  from app.infrastructure.db.runtime.repos.relational.snapshots_repo import SnapshotsRepo
23
20
  from app.infrastructure.db.runtime.repos.relational.read_policy_repo import ReadPolicyRepo
24
21
  from app.infrastructure.db.runtime.repos.relational.telemetry_repo import TelemetryRepo
25
22
  from app.infrastructure.db.runtime.repos.relational.utility_repo import UtilityRepo
26
- from app.infrastructure.db.runtime.repos.relational.wiki_summaries_repo import (
27
- WikiSummariesRepo,
28
- )
29
23
  from app.infrastructure.db.runtime.repos.semantic.keyword_retrieval_repo import (
30
24
  KeywordRetrievalRepo,
31
25
  )
@@ -79,9 +73,7 @@ class PostgresUnitOfWork(IUnitOfWork):
79
73
  self.guidance = self.telemetry
80
74
  self.knowledge_build_runs = KnowledgeBuildRunsRepo(self._session)
81
75
  self.problem_runs = ProblemRunsRepo(self._session)
82
- self.repository_index = RepositoryIndexRepo(self._session)
83
76
  self.snapshots = SnapshotsRepo(self._session)
84
- self.wiki_summaries = WikiSummariesRepo(self._session)
85
77
  return self
86
78
 
87
79
  def __exit__(self, exc_type, exc_val, exc_tb) -> None:
@@ -13,8 +13,6 @@ from app.core.ports.host_apps.inner_agents import (
13
13
  InnerAgentRunRequest,
14
14
  InnerAgentRunResult,
15
15
  TeachKnowledgeAgentRequest,
16
- WikiSummaryAgentRequest,
17
- WikiSummaryAgentResult,
18
16
  )
19
17
  from app.infrastructure.host_apps.inner_agents.codex_cli import (
20
18
  _build_knowledge_result,
@@ -24,20 +22,17 @@ from app.infrastructure.host_apps.inner_agents.codex_cli import (
24
22
  _result,
25
23
  _truncate,
26
24
  _usage_or_estimate,
27
- _wiki_summary_result,
28
25
  )
29
26
  from app.infrastructure.host_apps.inner_agents.output_parser import (
30
27
  InnerAgentOutputParseError,
31
28
  parse_build_knowledge_output,
32
29
  parse_inner_agent_response_output,
33
- parse_wiki_summary_output,
34
30
  )
35
31
  from app.infrastructure.host_apps.inner_agents.prompt import (
36
32
  render_build_context_prompt,
37
33
  render_build_context_synthesis_prompt,
38
34
  render_build_knowledge_prompt,
39
35
  render_teach_knowledge_prompt,
40
- render_wiki_summary_prompt,
41
36
  )
42
37
 
43
38
 
@@ -158,44 +153,6 @@ class ClaudeCliInnerAgentRunner:
158
153
  code_trace=parsed["code_trace"],
159
154
  )
160
155
 
161
- def run_wiki_summary(
162
- self, request: WikiSummaryAgentRequest
163
- ) -> WikiSummaryAgentResult:
164
- """Run one Claude Code wiki_summary request."""
165
-
166
- prompt = render_wiki_summary_prompt(request)
167
- run = self._run_claude(
168
- request,
169
- prompt=prompt,
170
- mode="wiki_summary",
171
- tool_profile="none",
172
- )
173
- if run["status"] != "ok":
174
- return _wiki_error_result(request, run)
175
- final_message = str(run["result"])
176
- try:
177
- body = parse_wiki_summary_output(final_message)
178
- except InnerAgentOutputParseError as exc:
179
- return _wiki_summary_result(
180
- request,
181
- status="invalid_output",
182
- duration_ms=int(run["duration_ms"]),
183
- **_usage_or_estimate(
184
- prompt=prompt, output=final_message, usage=run.get("usage")
185
- ),
186
- error_code="invalid_output",
187
- error_message=str(exc),
188
- )
189
- return _wiki_summary_result(
190
- request,
191
- status="ok",
192
- body=body,
193
- duration_ms=int(run["duration_ms"]),
194
- **_usage_or_estimate(
195
- prompt=prompt, output=final_message, usage=run.get("usage")
196
- ),
197
- )
198
-
199
156
  def _run_claude(
200
157
  self,
201
158
  request,
@@ -314,20 +271,6 @@ def _knowledge_error_result(
314
271
  )
315
272
 
316
273
 
317
- def _wiki_error_result(
318
- request: WikiSummaryAgentRequest, run: dict[str, object]
319
- ) -> WikiSummaryAgentResult:
320
- return _wiki_summary_result(
321
- request,
322
- status=str(run["status"]),
323
- duration_ms=int(run.get("duration_ms") or 0),
324
- input_tokens=run.get("input_tokens"),
325
- capture_quality=run.get("capture_quality"),
326
- error_code=str(run["error_code"]),
327
- error_message=str(run["error_message"]),
328
- )
329
-
330
-
331
274
  def _claude_args(
332
275
  *,
333
276
  command_path: str,