shellbrain 0.1.48__tar.gz → 0.1.50__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 (495) hide show
  1. {shellbrain-0.1.48 → shellbrain-0.1.50}/PKG-INFO +3 -10
  2. {shellbrain-0.1.48 → shellbrain-0.1.50}/README.md +2 -9
  3. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/build_context/execute.py +4 -33
  4. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/deterministic_graph_recall.py +0 -16
  5. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/inner_agents/prompt.py +4 -13
  6. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/recall_records.py +0 -1
  7. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/records.py +0 -1
  8. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/internal-agents/defaults.yaml +3 -4
  9. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/internal_agent_config.py +6 -1
  10. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/internal_agents.py +2 -1
  11. {shellbrain-0.1.48 → shellbrain-0.1.50}/pyproject.toml +1 -1
  12. {shellbrain-0.1.48 → shellbrain-0.1.50}/shellbrain.egg-info/PKG-INFO +3 -10
  13. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/__init__.py +0 -0
  14. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/__main__.py +0 -0
  15. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/__init__.py +0 -0
  16. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/__init__.py +0 -0
  17. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/admin_errors.py +0 -0
  18. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/associations.py +0 -0
  19. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/backups.py +0 -0
  20. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/concepts.py +0 -0
  21. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/episodes.py +0 -0
  22. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/evidence.py +0 -0
  23. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/guidance.py +0 -0
  24. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/identity.py +0 -0
  25. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/ids.py +0 -0
  26. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/inner_agents.py +0 -0
  27. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/knowledge_builder.py +0 -0
  28. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/machine_config.py +0 -0
  29. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/memories.py +0 -0
  30. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/repositories.py +0 -0
  31. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/runtime_context.py +0 -0
  32. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/scenarios.py +0 -0
  33. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/session_state.py +0 -0
  34. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/settings.py +0 -0
  35. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/snapshots.py +0 -0
  36. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/structural_memory_relations.py +0 -0
  37. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/utility.py +0 -0
  38. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/entities/wiki_summaries.py +0 -0
  39. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/errors.py +0 -0
  40. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/__init__.py +0 -0
  41. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/concepts/__init__.py +0 -0
  42. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/concepts/relation_rules.py +0 -0
  43. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/concepts/search_text.py +0 -0
  44. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/episodes/__init__.py +0 -0
  45. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/episodes/event_content.py +0 -0
  46. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/episodes/knowledge_building.py +0 -0
  47. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/memories/__init__.py +0 -0
  48. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/memories/add_plan.py +0 -0
  49. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/memories/link_rules.py +0 -0
  50. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/memories/update_plan.py +0 -0
  51. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/__init__.py +0 -0
  52. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/bm25.py +0 -0
  53. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/context_pack.py +0 -0
  54. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/expansion.py +0 -0
  55. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/fusion_rrf.py +0 -0
  56. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/lexical_query.py +0 -0
  57. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/ontology_semantics.py +0 -0
  58. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/retrieval/scoring.py +0 -0
  59. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/policies/wiki_summary_freshness.py +0 -0
  60. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/__init__.py +0 -0
  61. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/__init__.py +0 -0
  62. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/concept_repositories.py +0 -0
  63. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/episode_repositories.py +0 -0
  64. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/guidance.py +0 -0
  65. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/knowledge_builder.py +0 -0
  66. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/memory_repositories.py +0 -0
  67. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/problem_runs.py +0 -0
  68. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/repository_index.py +0 -0
  69. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/retrieval_repositories.py +0 -0
  70. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/snapshots.py +0 -0
  71. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/unit_of_work.py +0 -0
  72. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/db/wiki_summaries.py +0 -0
  73. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/embeddings/__init__.py +0 -0
  74. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/embeddings/provider.py +0 -0
  75. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/embeddings/retrieval.py +0 -0
  76. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/host_apps/__init__.py +0 -0
  77. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/host_apps/inner_agents.py +0 -0
  78. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/local_state/__init__.py +0 -0
  79. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/local_state/session_state_store.py +0 -0
  80. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/local_state/shadow_git.py +0 -0
  81. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/reporting/__init__.py +0 -0
  82. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/reporting/metrics.py +0 -0
  83. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/system/__init__.py +0 -0
  84. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/system/clock.py +0 -0
  85. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/ports/system/idgen.py +0 -0
  86. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/__init__.py +0 -0
  87. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/__init__.py +0 -0
  88. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/analytics_diagnostics.py +0 -0
  89. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/backfill_model_usage/__init__.py +0 -0
  90. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/backfill_model_usage/backfill_model_usage.py +0 -0
  91. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/backfill_model_usage/request.py +0 -0
  92. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/backfill_model_usage/result.py +0 -0
  93. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/create_backup.py +0 -0
  94. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/diagnose_runtime.py +0 -0
  95. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/generate_analytics_report.py +0 -0
  96. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/initialize_runtime.py +0 -0
  97. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/restore_backup.py +0 -0
  98. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/admin/verify_backup.py +0 -0
  99. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/build_guidance.py +0 -0
  100. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/__init__.py +0 -0
  101. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/add/__init__.py +0 -0
  102. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/add/execute.py +0 -0
  103. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/add/request.py +0 -0
  104. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/add/result.py +0 -0
  105. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/containment_checks.py +0 -0
  106. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/embeddings.py +0 -0
  107. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/reference_checks.py +0 -0
  108. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/show/__init__.py +0 -0
  109. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/show/execute.py +0 -0
  110. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/show/request.py +0 -0
  111. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/show/result.py +0 -0
  112. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/update/__init__.py +0 -0
  113. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/update/execute.py +0 -0
  114. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/update/request.py +0 -0
  115. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/update/result.py +0 -0
  116. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/concepts/views.py +0 -0
  117. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/__init__.py +0 -0
  118. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/events/__init__.py +0 -0
  119. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/events/request.py +0 -0
  120. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/sync_discovered_host_session.py +0 -0
  121. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/sync_episode/__init__.py +0 -0
  122. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/sync_episode/request.py +0 -0
  123. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/sync_episode/result.py +0 -0
  124. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/episodes/sync_episode/sync_episode.py +0 -0
  125. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/__init__.py +0 -0
  126. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/build_knowledge/__init__.py +0 -0
  127. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/build_knowledge/execute.py +0 -0
  128. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/build_knowledge/request.py +0 -0
  129. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/build_knowledge/result.py +0 -0
  130. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/teach_knowledge/__init__.py +0 -0
  131. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/teach_knowledge/execute.py +0 -0
  132. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/teach_knowledge/request.py +0 -0
  133. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/knowledge_builder/teach_knowledge/result.py +0 -0
  134. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/__init__.py +0 -0
  135. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/add/__init__.py +0 -0
  136. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/add/execute.py +0 -0
  137. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/add/request.py +0 -0
  138. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/add/result.py +0 -0
  139. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/effect_plan.py +0 -0
  140. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/reference_checks.py +0 -0
  141. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/update/__init__.py +0 -0
  142. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/update/execute.py +0 -0
  143. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/update/request.py +0 -0
  144. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/memories/update/result.py +0 -0
  145. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/metrics/__init__.py +0 -0
  146. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/metrics/analyze_agent_behavior.py +0 -0
  147. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/metrics/build_snapshot.py +0 -0
  148. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/metrics/generate_dashboard.py +0 -0
  149. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/plan_execution.py +0 -0
  150. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/__init__.py +0 -0
  151. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/build_context/__init__.py +0 -0
  152. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/concept_seed_retrieval.py +0 -0
  153. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/context_pack_pipeline.py +0 -0
  154. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/expansion.py +0 -0
  155. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/read/__init__.py +0 -0
  156. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/read/execute.py +0 -0
  157. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/read/request.py +0 -0
  158. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/read/result.py +0 -0
  159. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/read_concepts.py +0 -0
  160. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/recall/__init__.py +0 -0
  161. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/recall/execute.py +0 -0
  162. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/recall/request.py +0 -0
  163. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/recall/result.py +0 -0
  164. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/retrieval/seed_retrieval.py +0 -0
  165. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/scenarios/__init__.py +0 -0
  166. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/scenarios/record/__init__.py +0 -0
  167. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/scenarios/record/execute.py +0 -0
  168. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/scenarios/record/request.py +0 -0
  169. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/scenarios/record/result.py +0 -0
  170. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/__init__.py +0 -0
  171. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/capture_snapshot/__init__.py +0 -0
  172. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/capture_snapshot/execute.py +0 -0
  173. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/capture_snapshot/request.py +0 -0
  174. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/capture_snapshot/result.py +0 -0
  175. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/code_delta_context/__init__.py +0 -0
  176. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/code_delta_context/execute.py +0 -0
  177. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/snapshots/code_delta_context/request.py +0 -0
  178. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/wiki/__init__.py +0 -0
  179. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/wiki/execute.py +0 -0
  180. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/wiki/request.py +0 -0
  181. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/wiki/result.py +0 -0
  182. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/core/use_cases/wiki/summaries.py +0 -0
  183. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/__init__.py +0 -0
  184. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/__init__.py +0 -0
  185. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/error_responses.py +0 -0
  186. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/__init__.py +0 -0
  187. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/cli_operation.py +0 -0
  188. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/dependencies.py +0 -0
  189. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/__init__.py +0 -0
  190. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/admin.py +0 -0
  191. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/admin_dependencies.py +0 -0
  192. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/init.py +0 -0
  193. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/metrics.py +0 -0
  194. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/upgrade.py +0 -0
  195. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/human/wiki.py +0 -0
  196. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/__init__.py +0 -0
  197. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py +0 -0
  198. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/concepts/add.py +0 -0
  199. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/concepts/show.py +0 -0
  200. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/concepts/update.py +0 -0
  201. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/episodes/__init__.py +0 -0
  202. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/episodes/events.py +0 -0
  203. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/episodes/selection.py +0 -0
  204. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/episodes/serialization.py +0 -0
  205. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/memories/__init__.py +0 -0
  206. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/memories/add.py +0 -0
  207. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/memories/update.py +0 -0
  208. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/memories/utility_vote_evidence.py +0 -0
  209. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/retrieval/__init__.py +0 -0
  210. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/retrieval/execution.py +0 -0
  211. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/retrieval/read.py +0 -0
  212. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/scenarios/__init__.py +0 -0
  213. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/internal_agent/scenarios/record.py +0 -0
  214. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/result_envelopes.py +0 -0
  215. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/session_state.py +0 -0
  216. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/working_agent/__init__.py +0 -0
  217. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/working_agent/recall.py +0 -0
  218. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/working_agent/snapshot.py +0 -0
  219. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/handlers/working_agent/teach.py +0 -0
  220. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/main.py +0 -0
  221. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/operation_command.py +0 -0
  222. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/parser/__init__.py +0 -0
  223. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/parser/builder.py +0 -0
  224. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/presenters/__init__.py +0 -0
  225. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/presenters/init.py +0 -0
  226. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/presenters/json.py +0 -0
  227. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/presenters/metrics.py +0 -0
  228. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/__init__.py +0 -0
  229. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/concepts.py +0 -0
  230. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/episodes.py +0 -0
  231. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/hydration.py +0 -0
  232. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/memories.py +0 -0
  233. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/payload_validation.py +0 -0
  234. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/prepared.py +0 -0
  235. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/retrieval.py +0 -0
  236. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/scenarios.py +0 -0
  237. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/request_parsing/teach.py +0 -0
  238. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/runner.py +0 -0
  239. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/cli/runtime.py +0 -0
  240. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/host_hooks/__init__.py +0 -0
  241. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/host_hooks/claude_session_start.py +0 -0
  242. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/host_hooks/cursor_statusline.py +0 -0
  243. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/jobs/__init__.py +0 -0
  244. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/entrypoints/jobs/episode_sync.py +0 -0
  245. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/__init__.py +0 -0
  246. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/__init__.py +0 -0
  247. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/__init__.py +0 -0
  248. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/app_role_safety.py +0 -0
  249. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/backups/__init__.py +0 -0
  250. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/backups/destructive_guard.py +0 -0
  251. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/backups/logical_backup.py +0 -0
  252. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/backups/manifest_store.py +0 -0
  253. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/backups/restore.py +0 -0
  254. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/connection.py +0 -0
  255. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/instance_guard.py +0 -0
  256. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/migrations.py +0 -0
  257. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/privileges.py +0 -0
  258. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/provisioning/__init__.py +0 -0
  259. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/provisioning/docker_prerequisites.py +0 -0
  260. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/provisioning/external_postgres.py +0 -0
  261. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/provisioning/init_effects.py +0 -0
  262. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/provisioning/managed_local.py +0 -0
  263. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/admin/storage_setup.py +0 -0
  264. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/__init__.py +0 -0
  265. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/engine.py +0 -0
  266. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/__init__.py +0 -0
  267. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/associations.py +0 -0
  268. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/concepts.py +0 -0
  269. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/episodes.py +0 -0
  270. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/evidence.py +0 -0
  271. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/experiences.py +0 -0
  272. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/instance_metadata.py +0 -0
  273. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/knowledge_builder.py +0 -0
  274. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/memories.py +0 -0
  275. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/metadata.py +0 -0
  276. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/problem_runs.py +0 -0
  277. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/registry.py +0 -0
  278. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/snapshots.py +0 -0
  279. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/telemetry.py +0 -0
  280. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/utility.py +0 -0
  281. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/views.py +0 -0
  282. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/models/wiki_summaries.py +0 -0
  283. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/queries/__init__.py +0 -0
  284. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/queries/agent_behavior.py +0 -0
  285. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/queries/analytics.py +0 -0
  286. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/queries/metrics.py +0 -0
  287. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/queries/metrics_adapter.py +0 -0
  288. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/queries/model_usage_backfill.py +0 -0
  289. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/__init__.py +0 -0
  290. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/__init__.py +0 -0
  291. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/associations_repo.py +0 -0
  292. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/concepts_repo.py +0 -0
  293. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/episodes_repo.py +0 -0
  294. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/evidence_repo.py +0 -0
  295. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/experiences_repo.py +0 -0
  296. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/knowledge_builder_repo.py +0 -0
  297. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/memories_repo.py +0 -0
  298. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/problem_runs_repo.py +0 -0
  299. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/read_policy_repo.py +0 -0
  300. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/repository_index_repo.py +0 -0
  301. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/snapshots_repo.py +0 -0
  302. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/telemetry_repo.py +0 -0
  303. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/utility_repo.py +0 -0
  304. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/relational/wiki_summaries_repo.py +0 -0
  305. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/semantic/__init__.py +0 -0
  306. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/semantic/concept_retrieval_repo.py +0 -0
  307. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/semantic/keyword_retrieval_repo.py +0 -0
  308. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/repos/semantic/semantic_retrieval_repo.py +0 -0
  309. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/session.py +0 -0
  310. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/db/runtime/uow.py +0 -0
  311. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/embeddings/__init__.py +0 -0
  312. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/embeddings/local_provider.py +0 -0
  313. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/embeddings/prewarm.py +0 -0
  314. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/embeddings/query_vector_search.py +0 -0
  315. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/__init__.py +0 -0
  316. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/__init__.py +0 -0
  317. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/claude.py +0 -0
  318. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/codex.py +0 -0
  319. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/cursor.py +0 -0
  320. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/cursor_statusline_config.py +0 -0
  321. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/inspection.py +0 -0
  322. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/managed_markdown.py +0 -0
  323. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/managed_tree.py +0 -0
  324. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/packaged_assets.py +0 -0
  325. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/paths.py +0 -0
  326. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/service.py +0 -0
  327. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/assets/types.py +0 -0
  328. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/__init__.py +0 -0
  329. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/claude_hook_install.py +0 -0
  330. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/claude_runtime.py +0 -0
  331. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/codex_runtime.py +0 -0
  332. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/compatibility.py +0 -0
  333. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/cursor_statusline.py +0 -0
  334. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/identity/resolver.py +0 -0
  335. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/inner_agents/__init__.py +0 -0
  336. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/inner_agents/claude_cli.py +0 -0
  337. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/inner_agents/codex_cli.py +0 -0
  338. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/inner_agents/output_parser.py +0 -0
  339. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/__init__.py +0 -0
  340. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/claude_code.py +0 -0
  341. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/codex.py +0 -0
  342. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/cursor.py +0 -0
  343. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/model_usage.py +0 -0
  344. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/normalization.py +0 -0
  345. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/session_selection.py +0 -0
  346. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/source_discovery.py +0 -0
  347. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/host_apps/transcripts/tool_filter.py +0 -0
  348. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/__init__.py +0 -0
  349. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/init_lock.py +0 -0
  350. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/machine_config_store.py +0 -0
  351. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/operation_registration.py +0 -0
  352. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/paths.py +0 -0
  353. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/recall_mode_store.py +0 -0
  354. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/repo_registration_store.py +0 -0
  355. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/session_state_file_store.py +0 -0
  356. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/local_state/shadow_git_store.py +0 -0
  357. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/__init__.py +0 -0
  358. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/episode_sync/__init__.py +0 -0
  359. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/episode_sync/autostart.py +0 -0
  360. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/episode_sync/launcher.py +0 -0
  361. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/episode_sync/lock_file.py +0 -0
  362. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/episode_sync/poller.py +0 -0
  363. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/process/episode_sync/status_store.py +0 -0
  364. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/__init__.py +0 -0
  365. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/metrics/__init__.py +0 -0
  366. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/metrics/artifacts.py +0 -0
  367. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/metrics/browser.py +0 -0
  368. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/metrics/pager.py +0 -0
  369. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/metrics/render_html.py +0 -0
  370. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/wiki/__init__.py +0 -0
  371. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/wiki/browser.py +0 -0
  372. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/wiki/render_html.py +0 -0
  373. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/wiki/server.py +0 -0
  374. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/reporting/wiki/summary_worker.py +0 -0
  375. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/system/__init__.py +0 -0
  376. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/system/clock.py +0 -0
  377. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/system/id_generator.py +0 -0
  378. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/system/package_upgrade.py +0 -0
  379. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/__init__.py +0 -0
  380. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/inner_agent_records.py +0 -0
  381. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/operation_invocations.py +0 -0
  382. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/operation_polling.py +0 -0
  383. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/read_records.py +0 -0
  384. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/recorder.py +0 -0
  385. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/sink.py +0 -0
  386. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/storage_protocols.py +0 -0
  387. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/sync_records.py +0 -0
  388. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/infrastructure/telemetry/write_records.py +0 -0
  389. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/__init__.py +0 -0
  390. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/defaults/create_policy.yaml +0 -0
  391. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/defaults/read_policy.yaml +0 -0
  392. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/defaults/runtime.yaml +0 -0
  393. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/defaults/thresholds.yaml +0 -0
  394. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/settings/defaults/update_policy.yaml +0 -0
  395. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/__init__.py +0 -0
  396. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/admin.py +0 -0
  397. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/admin_db.py +0 -0
  398. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/admin_dependencies.py +0 -0
  399. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/admin_diagnose.py +0 -0
  400. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/analytics.py +0 -0
  401. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/backup.py +0 -0
  402. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/cli.py +0 -0
  403. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/cli_runtime.py +0 -0
  404. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/config.py +0 -0
  405. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/create_policy.py +0 -0
  406. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/db.py +0 -0
  407. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/dsn_resolution.py +0 -0
  408. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/embeddings.py +0 -0
  409. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/episode_poller.py +0 -0
  410. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/episode_sync_launcher.py +0 -0
  411. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/host_hooks.py +0 -0
  412. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/knowledge_builder.py +0 -0
  413. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/metrics.py +0 -0
  414. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/migrations.py +0 -0
  415. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/model_usage_backfill.py +0 -0
  416. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/operation_dependencies.py +0 -0
  417. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/read_policy.py +0 -0
  418. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/repo_context.py +0 -0
  419. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/repos.py +0 -0
  420. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/retrieval.py +0 -0
  421. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/runtime_admin.py +0 -0
  422. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/runtime_context.py +0 -0
  423. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/settings.py +0 -0
  424. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/snapshot_baseline.py +0 -0
  425. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/thresholds.py +0 -0
  426. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/update_policy.py +0 -0
  427. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/use_cases.py +0 -0
  428. {shellbrain-0.1.48 → shellbrain-0.1.50}/app/startup/wiki.py +0 -0
  429. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/__init__.py +0 -0
  430. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/_legacy_usage_views.py +0 -0
  431. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/_usage_view_sql.py +0 -0
  432. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/env.py +0 -0
  433. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260226_0001_initial_schema.py +0 -0
  434. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
  435. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
  436. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
  437. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
  438. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
  439. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
  440. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
  441. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260410_0009_frontier_memory_family.py +0 -0
  442. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260414_0010_model_usage_telemetry.py +0 -0
  443. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260414_0011_usage_problem_tokens_multi_solution_metrics.py +0 -0
  444. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260415_0012_read_pack_cost_and_read_roi.py +0 -0
  445. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260421_0013_concept_context_graph.py +0 -0
  446. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260422_0014_concept_read_telemetry.py +0 -0
  447. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260422_0015_problem_runs.py +0 -0
  448. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260508_0016_recall_telemetry.py +0 -0
  449. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260511_0017_inner_agent_invocations.py +0 -0
  450. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260513_0018_knowledge_build_runs.py +0 -0
  451. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260515_0019_scenario_records.py +0 -0
  452. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260516_0020_knowledge_build_observability.py +0 -0
  453. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0021_knowledge_build_watermark_stable.py +0 -0
  454. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0022_update_evidence_links.py +0 -0
  455. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0023_explicit_teach_trigger.py +0 -0
  456. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0024_read_retrieval_latency_indexes.py +0 -0
  457. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py +0 -0
  458. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py +0 -0
  459. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260519_0027_concept_embeddings.py +0 -0
  460. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260520_0028_knowledge_build_lifecycle.py +0 -0
  461. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0029_remove_frontier_and_memory_anchors.py +0 -0
  462. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0030_concept_lifecycle_events.py +0 -0
  463. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0031_unified_evidence_storage.py +0 -0
  464. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0032_memory_lifecycle_events.py +0 -0
  465. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0033_concept_memory_role_cleanup.py +0 -0
  466. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0034_structural_memory_relations.py +0 -0
  467. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260522_0035_retire_legacy_compatibility_tables.py +0 -0
  468. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260526_0036_shadow_snapshots.py +0 -0
  469. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/20260606_0037_wiki_summaries.py +0 -0
  470. {shellbrain-0.1.48 → shellbrain-0.1.50}/migrations/versions/__init__.py +0 -0
  471. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/__init__.py +0 -0
  472. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/claude/CLAUDE.md +0 -0
  473. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/claude/skills/shellbrain/SKILL.md +0 -0
  474. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
  475. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/AGENTS.md +0 -0
  476. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/clean-architecture/SKILL.md +0 -0
  477. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/clean-code/SKILL.md +0 -0
  478. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain/SKILL.md +0 -0
  479. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain/agents/openai.yaml +0 -0
  480. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain/assets/shellbrain-large.svg +0 -0
  481. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain/assets/shellbrain-small.svg +0 -0
  482. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain/assets/shellbrain_logo.png +0 -0
  483. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain/references/session-workflow.md +0 -0
  484. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
  485. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
  486. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
  487. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
  488. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/cursor/skills/shellbrain/SKILL.md +0 -0
  489. {shellbrain-0.1.48 → shellbrain-0.1.50}/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
  490. {shellbrain-0.1.48 → shellbrain-0.1.50}/setup.cfg +0 -0
  491. {shellbrain-0.1.48 → shellbrain-0.1.50}/shellbrain.egg-info/SOURCES.txt +0 -0
  492. {shellbrain-0.1.48 → shellbrain-0.1.50}/shellbrain.egg-info/dependency_links.txt +0 -0
  493. {shellbrain-0.1.48 → shellbrain-0.1.50}/shellbrain.egg-info/entry_points.txt +0 -0
  494. {shellbrain-0.1.48 → shellbrain-0.1.50}/shellbrain.egg-info/requires.txt +0 -0
  495. {shellbrain-0.1.48 → shellbrain-0.1.50}/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.48
3
+ Version: 0.1.50
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
@@ -69,7 +69,7 @@ The episodic layer is truth. Empirical memory extracts. Concept memory abstracts
69
69
 
70
70
  ### Recall
71
71
 
72
- **Working agents call `shellbrain recall`.** That is the normal interface they have to think about. One command, **one _carefully curated_ compact brief**, with sources cited.
72
+ **Working agents call `shellbrain recall`.** That is the normal interface they have to think about. One command, **one _carefully curated_ compact brief** for the task at hand.
73
73
 
74
74
  Recall receives only the quoted query, so include the relevant task, failure, subsystem, or decision naturally in the question.
75
75
 
@@ -92,14 +92,7 @@ Response shape:
92
92
  "anchors": ["`README.md`"],
93
93
  "conflicts": ["..."],
94
94
  "gaps": ["..."],
95
- "next_checks": ["..."],
96
- "sources": [
97
- {
98
- "kind": "memory",
99
- "id": "...",
100
- "section": "direct"
101
- }
102
- ]
95
+ "next_checks": ["..."]
103
96
  },
104
97
  "fallback_reason": null
105
98
  },
@@ -55,7 +55,7 @@ The episodic layer is truth. Empirical memory extracts. Concept memory abstracts
55
55
 
56
56
  ### Recall
57
57
 
58
- **Working agents call `shellbrain recall`.** That is the normal interface they have to think about. One command, **one _carefully curated_ compact brief**, with sources cited.
58
+ **Working agents call `shellbrain recall`.** That is the normal interface they have to think about. One command, **one _carefully curated_ compact brief** for the task at hand.
59
59
 
60
60
  Recall receives only the quoted query, so include the relevant task, failure, subsystem, or decision naturally in the question.
61
61
 
@@ -78,14 +78,7 @@ Response shape:
78
78
  "anchors": ["`README.md`"],
79
79
  "conflicts": ["..."],
80
80
  "gaps": ["..."],
81
- "next_checks": ["..."],
82
- "sources": [
83
- {
84
- "kind": "memory",
85
- "id": "...",
86
- "section": "direct"
87
- }
88
- ]
81
+ "next_checks": ["..."]
89
82
  },
90
83
  "fallback_reason": null
91
84
  },
@@ -174,10 +174,7 @@ def _provider_result(
174
174
 
175
175
  read_trace = _read_trace(inner_agent_result)
176
176
  source_items = _source_items_from_read_trace(read_trace)
177
- brief = _normalize_provider_brief(
178
- inner_agent_result.brief or {},
179
- deterministic_sources=_sources_from_source_items(source_items),
180
- )
177
+ brief = _normalize_provider_brief(inner_agent_result.brief or {})
181
178
  fallback_reason = (
182
179
  "no_candidates"
183
180
  if not source_items and _read_trace_no_context_reason(read_trace)
@@ -271,10 +268,7 @@ def _deterministic_graph_result(
271
268
  )
272
269
  if synthesis_result.status == "ok" and synthesis_result.brief is not None:
273
270
  return RecallMemoryResult(
274
- brief=_normalize_provider_brief(
275
- synthesis_result.brief,
276
- deterministic_sources=_sources_from_source_items(source_items),
277
- ),
271
+ brief=_normalize_provider_brief(synthesis_result.brief),
278
272
  fallback_reason=None,
279
273
  telemetry={
280
274
  "candidate_pack": graph_pack,
@@ -432,16 +426,13 @@ def _no_context_brief() -> dict[str, Any]:
432
426
  "conflicts": [],
433
427
  "gaps": ["Shellbrain has no relevant memories or concepts for this query."],
434
428
  "next_checks": [],
435
- "sources": [],
436
429
  }
437
430
 
438
431
 
439
- def _normalize_provider_brief(
440
- brief: dict[str, Any], *, deterministic_sources: list[dict[str, Any]]
441
- ) -> dict[str, Any]:
432
+ def _normalize_provider_brief(brief: dict[str, Any]) -> dict[str, Any]:
442
433
  """Ensure provider output keeps the stable worker-facing brief shape."""
443
434
 
444
- normalized = {
435
+ return {
445
436
  "summary": str(brief.get("summary") or "").strip()
446
437
  or "Shellbrain synthesized relevant recall context.",
447
438
  "constraints": _string_list(brief.get("constraints")),
@@ -452,9 +443,7 @@ def _normalize_provider_brief(
452
443
  "conflicts": _string_list(brief.get("conflicts")),
453
444
  "gaps": _string_list(brief.get("gaps")),
454
445
  "next_checks": _string_list(brief.get("next_checks")),
455
- "sources": deterministic_sources,
456
446
  }
457
- return normalized
458
447
 
459
448
 
460
449
  def _string_list(value: Any) -> list[str]:
@@ -589,7 +578,6 @@ def _source_items_from_read_trace(read_trace: dict[str, Any]) -> list[dict[str,
589
578
  "source_kind": source_kind,
590
579
  "source_id": source_id,
591
580
  "input_section": "inner_agent.read_trace",
592
- "output_section": "sources",
593
581
  }
594
582
  )
595
583
  ordinal += 1
@@ -604,29 +592,12 @@ def _source_items_from_read_trace(read_trace: dict[str, Any]) -> list[dict[str,
604
592
  "source_kind": "concept",
605
593
  "source_id": concept_ref,
606
594
  "input_section": "inner_agent.read_trace",
607
- "output_section": "sources",
608
595
  }
609
596
  )
610
597
  ordinal += 1
611
598
  return items
612
599
 
613
600
 
614
- def _sources_from_source_items(
615
- source_items: list[dict[str, Any]]
616
- ) -> list[dict[str, Any]]:
617
- """Render brief sources from telemetry provenance rows."""
618
-
619
- return [
620
- {
621
- "kind": item["source_kind"],
622
- "id": item["source_id"],
623
- "section": item["input_section"],
624
- }
625
- for item in source_items
626
- if item.get("output_section") is not None
627
- ]
628
-
629
-
630
601
  def _read_trace_no_context_reason(read_trace: dict[str, Any]) -> str | None:
631
602
  """Return an explicit no-context reason from provider trace, when present."""
632
603
 
@@ -220,7 +220,6 @@ def deterministic_brief_from_graph_pack(pack: dict[str, Any]) -> dict[str, Any]:
220
220
  "conflicts": [],
221
221
  "gaps": ["Shellbrain has no relevant memories or concepts for this query."],
222
222
  "next_checks": [],
223
- "sources": [],
224
223
  }
225
224
  concept_items = concepts + neighbors
226
225
  constraints = _brief_memory_texts(
@@ -265,7 +264,6 @@ def deterministic_brief_from_graph_pack(pack: dict[str, Any]) -> dict[str, Any]:
265
264
  ),
266
265
  "gaps": [],
267
266
  "next_checks": _next_checks(pack),
268
- "sources": _sources_from_graph_pack(pack),
269
267
  }
270
268
 
271
269
 
@@ -288,7 +286,6 @@ def source_items_from_graph_pack(pack: dict[str, Any]) -> list[dict[str, Any]]:
288
286
  "source_kind": "memory",
289
287
  "source_id": source_id,
290
288
  "input_section": _source_section_for_memory(memory),
291
- "output_section": "sources",
292
289
  }
293
290
  )
294
291
  ordinal += 1
@@ -309,7 +306,6 @@ def source_items_from_graph_pack(pack: dict[str, Any]) -> list[dict[str, Any]]:
309
306
  "source_kind": "concept",
310
307
  "source_id": str(source_id),
311
308
  "input_section": "concept_orientation",
312
- "output_section": "sources",
313
309
  }
314
310
  )
315
311
  ordinal += 1
@@ -1208,18 +1204,6 @@ def _next_checks(pack: dict[str, Any]) -> list[str]:
1208
1204
  return list(dict.fromkeys(checks))[:3]
1209
1205
 
1210
1206
 
1211
- def _sources_from_graph_pack(pack: dict[str, Any]) -> list[dict[str, str]]:
1212
- return [
1213
- {
1214
- "kind": item["source_kind"],
1215
- "id": item["source_id"],
1216
- "section": item["input_section"],
1217
- }
1218
- for item in source_items_from_graph_pack(pack)
1219
- if item.get("output_section") is not None
1220
- ]
1221
-
1222
-
1223
1207
  def _conflict_summary(item: object) -> str:
1224
1208
  if isinstance(item, dict):
1225
1209
  return str(item.get("summary") or item.get("reason") or item)
@@ -154,13 +154,13 @@ context, with empty or minimal arrays and a concrete
154
154
  Lead with the answer. Keep only details that change what the worker should do.
155
155
  Use plain English. One idea per sentence. Leave sections empty unless useful.
156
156
  Summary: max two sentences. Lists: max three items. Items: max one sentence.
157
- Full provenance belongs in telemetry; keep visible sources and anchors minimal.
157
+ Full provenance belongs in telemetry; keep visible anchors minimal.
158
158
 
159
159
  # OUTPUT
160
160
  Return only valid JSON matching `output_contract`.
161
161
  The brief must be compact and action-oriented: summary, constraints,
162
162
  known_traps, prior_cases, concept_orientation, anchors, conflicts, gaps,
163
- next_checks, and sources. Use conflicts for stale, disputed, superseded,
163
+ and next_checks. Use conflicts for stale, disputed, superseded,
164
164
  low-confidence, or mutually inconsistent context. Use gaps for missing context
165
165
  or unresolved questions. Use next_checks for one to three concrete checks the
166
166
  worker should perform because retrieved context makes them high leverage.
@@ -317,9 +317,8 @@ Summary: max two sentences. Lists: max three items. Items: max one sentence.
317
317
  Full provenance belongs in telemetry; keep visible anchors minimal.
318
318
 
319
319
  # OUTPUT
320
- Return only valid JSON matching `output_contract`. Return a `brief` object only;
321
- do not include read_trace or sources. Keep each list compact. Shellbrain attaches
322
- deterministic source provenance after synthesis.
320
+ Return only valid JSON matching `output_contract`. Return a `brief` object only.
321
+ Keep each list compact.
323
322
  """
324
323
 
325
324
 
@@ -903,14 +902,6 @@ def render_build_context_prompt(request: InnerAgentRunRequest) -> str:
903
902
  "conflicts": ["string"],
904
903
  "gaps": ["string"],
905
904
  "next_checks": ["string"],
906
- "sources": [
907
- {
908
- "kind": "memory|concept|episode_event",
909
- "id": "source id or concept ref",
910
- "facet": "claim|relation|grounding|memory_link|event|memory when applicable",
911
- "used_in": "summary|constraints|known_traps|prior_cases|concept_orientation|anchors|conflicts|gaps|next_checks",
912
- }
913
- ],
914
905
  },
915
906
  "read_trace": {
916
907
  "commands": [
@@ -50,7 +50,6 @@ def build_recall_summary_records(
50
50
  source_kind=str(item["source_kind"]),
51
51
  source_id=str(item["source_id"]),
52
52
  input_section=str(item["input_section"]),
53
- output_section=_optional_string(item.get("output_section")),
54
53
  )
55
54
  )
56
55
 
@@ -107,7 +107,6 @@ class RecallSourceItemRecord:
107
107
  source_kind: str
108
108
  source_id: str
109
109
  input_section: str
110
- output_section: str | None
111
110
 
112
111
 
113
112
  @dataclass(frozen=True)
@@ -2,7 +2,7 @@
2
2
  build_context:
3
3
  strategy: deterministic_synthesis
4
4
  provider: auto
5
- model: gpt-5.4-mini
5
+ model: gpt-5.6-luna
6
6
  reasoning: low
7
7
  timeout_seconds: 90
8
8
  max_private_reads: 3
@@ -10,7 +10,7 @@ build_context:
10
10
 
11
11
  build_knowledge:
12
12
  provider: auto
13
- model: gpt-5.4-mini
13
+ model: gpt-5.6-luna
14
14
  reasoning: xhigh
15
15
  timeout_seconds: 600
16
16
  max_shellbrain_reads: 8
@@ -43,7 +43,6 @@ wiki_summary:
43
43
  providers:
44
44
  codex:
45
45
  command: codex
46
- model: gpt-5.4-mini
47
46
  claude:
48
47
  command: claude
49
- model: sonnet
48
+ model_override: sonnet
@@ -21,7 +21,7 @@ class InnerAgentProviderConfig(_StrictModel):
21
21
  """Provider-specific runtime settings selected by startup."""
22
22
 
23
23
  command: str = Field(min_length=1)
24
- model: str = Field(min_length=1)
24
+ model_override: str | None = Field(default=None, min_length=1)
25
25
 
26
26
 
27
27
  class InternalAgentsConfig(_StrictModel):
@@ -57,4 +57,9 @@ class InternalAgentsConfig(_StrictModel):
57
57
  raise ValueError(
58
58
  f"internal_agents.{agent_name}.provider is not configured"
59
59
  )
60
+ for provider_name, provider in self.providers.items():
61
+ if provider_name != "codex" and provider.model_override is None:
62
+ raise ValueError(
63
+ f"internal_agents.providers.{provider_name}.model_override is required"
64
+ )
60
65
  return self
@@ -137,10 +137,11 @@ def _resolve_settings(
137
137
  if provider_name is None:
138
138
  return settings
139
139
  provider = config.providers[provider_name]
140
+ model = provider.model_override or settings.model
140
141
  return settings.model_copy(
141
142
  update={
142
143
  "provider": provider_name,
143
- "model": provider.model,
144
+ "model": model,
144
145
  }
145
146
  )
146
147
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "shellbrain"
7
- version = "0.1.48"
7
+ version = "0.1.50"
8
8
  description = "Repo-scoped Shellbrain CLI with explicit evidence-backed writes."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shellbrain
3
- Version: 0.1.48
3
+ Version: 0.1.50
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
@@ -69,7 +69,7 @@ The episodic layer is truth. Empirical memory extracts. Concept memory abstracts
69
69
 
70
70
  ### Recall
71
71
 
72
- **Working agents call `shellbrain recall`.** That is the normal interface they have to think about. One command, **one _carefully curated_ compact brief**, with sources cited.
72
+ **Working agents call `shellbrain recall`.** That is the normal interface they have to think about. One command, **one _carefully curated_ compact brief** for the task at hand.
73
73
 
74
74
  Recall receives only the quoted query, so include the relevant task, failure, subsystem, or decision naturally in the question.
75
75
 
@@ -92,14 +92,7 @@ Response shape:
92
92
  "anchors": ["`README.md`"],
93
93
  "conflicts": ["..."],
94
94
  "gaps": ["..."],
95
- "next_checks": ["..."],
96
- "sources": [
97
- {
98
- "kind": "memory",
99
- "id": "...",
100
- "section": "direct"
101
- }
102
- ]
95
+ "next_checks": ["..."]
103
96
  },
104
97
  "fallback_reason": null
105
98
  },
File without changes
File without changes