shellbrain 0.1.33__tar.gz → 0.1.35__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 (446) hide show
  1. {shellbrain-0.1.33 → shellbrain-0.1.35}/PKG-INFO +1 -1
  2. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/episodes/knowledge_building.py +25 -0
  3. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/knowledge_builder.py +6 -0
  4. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/build_knowledge/execute.py +60 -0
  5. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/build_knowledge/request.py +1 -0
  6. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/build_context/execute.py +1 -1
  7. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/knowledge_builder.py +14 -0
  8. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/knowledge_builder_repo.py +26 -1
  9. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/episode_sync/poller.py +18 -7
  10. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/internal-agents/defaults.yaml +1 -1
  11. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/knowledge_builder.py +2 -0
  12. shellbrain-0.1.35/migrations/versions/20260520_0028_knowledge_build_lifecycle.py +29 -0
  13. {shellbrain-0.1.33 → shellbrain-0.1.35}/pyproject.toml +1 -1
  14. {shellbrain-0.1.33 → shellbrain-0.1.35}/shellbrain.egg-info/PKG-INFO +1 -1
  15. {shellbrain-0.1.33 → shellbrain-0.1.35}/shellbrain.egg-info/SOURCES.txt +1 -0
  16. {shellbrain-0.1.33 → shellbrain-0.1.35}/README.md +0 -0
  17. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/__init__.py +0 -0
  18. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/__main__.py +0 -0
  19. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/__init__.py +0 -0
  20. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/__init__.py +0 -0
  21. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/admin_errors.py +0 -0
  22. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/associations.py +0 -0
  23. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/backups.py +0 -0
  24. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/concepts.py +0 -0
  25. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/episodes.py +0 -0
  26. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/evidence.py +0 -0
  27. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/facts.py +0 -0
  28. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/guidance.py +0 -0
  29. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/identity.py +0 -0
  30. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/ids.py +0 -0
  31. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/inner_agents.py +0 -0
  32. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/knowledge_builder.py +0 -0
  33. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/machine_config.py +0 -0
  34. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/memories.py +0 -0
  35. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/runtime_context.py +0 -0
  36. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/scenarios.py +0 -0
  37. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/session_state.py +0 -0
  38. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/settings.py +0 -0
  39. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/entities/utility.py +0 -0
  40. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/errors.py +0 -0
  41. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/__init__.py +0 -0
  42. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/concepts/__init__.py +0 -0
  43. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/concepts/relation_rules.py +0 -0
  44. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/concepts/search_text.py +0 -0
  45. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/episodes/__init__.py +0 -0
  46. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/episodes/event_content.py +0 -0
  47. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/memories/__init__.py +0 -0
  48. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/memories/add_plan.py +0 -0
  49. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/memories/link_rules.py +0 -0
  50. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/memories/update_plan.py +0 -0
  51. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/__init__.py +0 -0
  52. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/bm25.py +0 -0
  53. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/context_pack.py +0 -0
  54. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/expansion.py +0 -0
  55. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/fusion_rrf.py +0 -0
  56. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/lexical_query.py +0 -0
  57. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/policies/retrieval/scoring.py +0 -0
  58. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/__init__.py +0 -0
  59. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/__init__.py +0 -0
  60. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/concept_repositories.py +0 -0
  61. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/episode_repositories.py +0 -0
  62. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/guidance.py +0 -0
  63. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/memory_repositories.py +0 -0
  64. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/problem_runs.py +0 -0
  65. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/retrieval_repositories.py +0 -0
  66. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/db/unit_of_work.py +0 -0
  67. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/embeddings/__init__.py +0 -0
  68. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/embeddings/provider.py +0 -0
  69. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/embeddings/retrieval.py +0 -0
  70. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/host_apps/__init__.py +0 -0
  71. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/host_apps/inner_agents.py +0 -0
  72. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/local_state/__init__.py +0 -0
  73. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/local_state/session_state_store.py +0 -0
  74. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/reporting/__init__.py +0 -0
  75. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/reporting/metrics.py +0 -0
  76. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/system/__init__.py +0 -0
  77. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/system/clock.py +0 -0
  78. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/ports/system/idgen.py +0 -0
  79. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/__init__.py +0 -0
  80. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/__init__.py +0 -0
  81. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/analytics_diagnostics.py +0 -0
  82. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/backfill_model_usage/__init__.py +0 -0
  83. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/backfill_model_usage/backfill_model_usage.py +0 -0
  84. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/backfill_model_usage/request.py +0 -0
  85. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/backfill_model_usage/result.py +0 -0
  86. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/create_backup.py +0 -0
  87. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/diagnose_runtime.py +0 -0
  88. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/generate_analytics_report.py +0 -0
  89. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/initialize_runtime.py +0 -0
  90. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/restore_backup.py +0 -0
  91. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/admin/verify_backup.py +0 -0
  92. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/build_guidance.py +0 -0
  93. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/__init__.py +0 -0
  94. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/add/__init__.py +0 -0
  95. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/add/execute.py +0 -0
  96. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/add/request.py +0 -0
  97. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/add/result.py +0 -0
  98. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/containment_checks.py +0 -0
  99. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/embeddings.py +0 -0
  100. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/reference_checks.py +0 -0
  101. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/show/__init__.py +0 -0
  102. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/show/execute.py +0 -0
  103. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/show/request.py +0 -0
  104. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/show/result.py +0 -0
  105. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/update/__init__.py +0 -0
  106. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/update/execute.py +0 -0
  107. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/update/request.py +0 -0
  108. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/update/result.py +0 -0
  109. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/concepts/views.py +0 -0
  110. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/__init__.py +0 -0
  111. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/events/__init__.py +0 -0
  112. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/events/request.py +0 -0
  113. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/sync_discovered_host_session.py +0 -0
  114. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/sync_episode/__init__.py +0 -0
  115. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/sync_episode/request.py +0 -0
  116. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/sync_episode/result.py +0 -0
  117. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/episodes/sync_episode/sync_episode.py +0 -0
  118. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/__init__.py +0 -0
  119. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/build_knowledge/__init__.py +0 -0
  120. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/build_knowledge/result.py +0 -0
  121. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/teach_knowledge/__init__.py +0 -0
  122. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/teach_knowledge/execute.py +0 -0
  123. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/teach_knowledge/request.py +0 -0
  124. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/knowledge_builder/teach_knowledge/result.py +0 -0
  125. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/__init__.py +0 -0
  126. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/add/__init__.py +0 -0
  127. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/add/execute.py +0 -0
  128. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/add/request.py +0 -0
  129. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/add/result.py +0 -0
  130. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/effect_plan.py +0 -0
  131. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/reference_checks.py +0 -0
  132. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/update/__init__.py +0 -0
  133. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/update/execute.py +0 -0
  134. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/update/request.py +0 -0
  135. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/memories/update/result.py +0 -0
  136. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/metrics/__init__.py +0 -0
  137. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/metrics/analyze_agent_behavior.py +0 -0
  138. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/metrics/build_snapshot.py +0 -0
  139. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/metrics/generate_dashboard.py +0 -0
  140. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/plan_execution.py +0 -0
  141. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/__init__.py +0 -0
  142. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/build_context/__init__.py +0 -0
  143. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/concept_seed_retrieval.py +0 -0
  144. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/context_pack_pipeline.py +0 -0
  145. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/deterministic_graph_recall.py +0 -0
  146. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/expansion.py +0 -0
  147. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/read/__init__.py +0 -0
  148. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/read/execute.py +0 -0
  149. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/read/request.py +0 -0
  150. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/read/result.py +0 -0
  151. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/read_concepts.py +0 -0
  152. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/recall/__init__.py +0 -0
  153. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/recall/execute.py +0 -0
  154. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/recall/request.py +0 -0
  155. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/recall/result.py +0 -0
  156. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/retrieval/seed_retrieval.py +0 -0
  157. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/scenarios/__init__.py +0 -0
  158. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/scenarios/record/__init__.py +0 -0
  159. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/scenarios/record/execute.py +0 -0
  160. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/scenarios/record/request.py +0 -0
  161. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/core/use_cases/scenarios/record/result.py +0 -0
  162. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/__init__.py +0 -0
  163. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/__init__.py +0 -0
  164. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/error_responses.py +0 -0
  165. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/__init__.py +0 -0
  166. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/cli_operation.py +0 -0
  167. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/dependencies.py +0 -0
  168. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/human/__init__.py +0 -0
  169. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/human/admin.py +0 -0
  170. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/human/admin_dependencies.py +0 -0
  171. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/human/init.py +0 -0
  172. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/human/metrics.py +0 -0
  173. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/human/upgrade.py +0 -0
  174. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/__init__.py +0 -0
  175. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py +0 -0
  176. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/concepts/add.py +0 -0
  177. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/concepts/show.py +0 -0
  178. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/concepts/update.py +0 -0
  179. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/episodes/__init__.py +0 -0
  180. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/episodes/events.py +0 -0
  181. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/episodes/selection.py +0 -0
  182. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/episodes/serialization.py +0 -0
  183. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/memories/__init__.py +0 -0
  184. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/memories/add.py +0 -0
  185. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/memories/update.py +0 -0
  186. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/memories/utility_vote_evidence.py +0 -0
  187. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/retrieval/__init__.py +0 -0
  188. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/retrieval/execution.py +0 -0
  189. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/retrieval/read.py +0 -0
  190. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/scenarios/__init__.py +0 -0
  191. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/internal_agent/scenarios/record.py +0 -0
  192. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/result_envelopes.py +0 -0
  193. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/session_state.py +0 -0
  194. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/working_agent/__init__.py +0 -0
  195. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/working_agent/recall.py +0 -0
  196. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/handlers/working_agent/teach.py +0 -0
  197. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/main.py +0 -0
  198. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/operation_command.py +0 -0
  199. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/parser/__init__.py +0 -0
  200. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/parser/builder.py +0 -0
  201. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/presenters/__init__.py +0 -0
  202. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/presenters/init.py +0 -0
  203. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/presenters/json.py +0 -0
  204. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/presenters/metrics.py +0 -0
  205. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/__init__.py +0 -0
  206. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/concepts.py +0 -0
  207. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/episodes.py +0 -0
  208. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/hydration.py +0 -0
  209. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/memories.py +0 -0
  210. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/payload_validation.py +0 -0
  211. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/prepared.py +0 -0
  212. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/retrieval.py +0 -0
  213. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/scenarios.py +0 -0
  214. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/request_parsing/teach.py +0 -0
  215. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/runner.py +0 -0
  216. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/cli/runtime.py +0 -0
  217. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/host_hooks/__init__.py +0 -0
  218. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/host_hooks/claude_session_start.py +0 -0
  219. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/host_hooks/cursor_statusline.py +0 -0
  220. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/jobs/__init__.py +0 -0
  221. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/entrypoints/jobs/episode_sync.py +0 -0
  222. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/__init__.py +0 -0
  223. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/__init__.py +0 -0
  224. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/__init__.py +0 -0
  225. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/app_role_safety.py +0 -0
  226. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/backups/__init__.py +0 -0
  227. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/backups/destructive_guard.py +0 -0
  228. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/backups/logical_backup.py +0 -0
  229. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/backups/manifest_store.py +0 -0
  230. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/backups/restore.py +0 -0
  231. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/connection.py +0 -0
  232. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/instance_guard.py +0 -0
  233. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/migrations.py +0 -0
  234. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/privileges.py +0 -0
  235. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/provisioning/__init__.py +0 -0
  236. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/provisioning/docker_prerequisites.py +0 -0
  237. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/provisioning/external_postgres.py +0 -0
  238. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/provisioning/init_effects.py +0 -0
  239. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/provisioning/managed_local.py +0 -0
  240. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/admin/storage_setup.py +0 -0
  241. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/__init__.py +0 -0
  242. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/engine.py +0 -0
  243. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/__init__.py +0 -0
  244. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/associations.py +0 -0
  245. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/concepts.py +0 -0
  246. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/episodes.py +0 -0
  247. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/evidence.py +0 -0
  248. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/experiences.py +0 -0
  249. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/instance_metadata.py +0 -0
  250. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/memories.py +0 -0
  251. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/metadata.py +0 -0
  252. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/problem_runs.py +0 -0
  253. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/registry.py +0 -0
  254. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/telemetry.py +0 -0
  255. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/utility.py +0 -0
  256. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/models/views.py +0 -0
  257. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/queries/__init__.py +0 -0
  258. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/queries/agent_behavior.py +0 -0
  259. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/queries/analytics.py +0 -0
  260. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/queries/metrics.py +0 -0
  261. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/queries/metrics_adapter.py +0 -0
  262. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/queries/model_usage_backfill.py +0 -0
  263. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/__init__.py +0 -0
  264. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/__init__.py +0 -0
  265. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/associations_repo.py +0 -0
  266. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/concepts_repo.py +0 -0
  267. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/episodes_repo.py +0 -0
  268. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/evidence_repo.py +0 -0
  269. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/experiences_repo.py +0 -0
  270. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/memories_repo.py +0 -0
  271. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/problem_runs_repo.py +0 -0
  272. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/read_policy_repo.py +0 -0
  273. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/telemetry_repo.py +0 -0
  274. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/relational/utility_repo.py +0 -0
  275. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/semantic/__init__.py +0 -0
  276. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/semantic/concept_retrieval_repo.py +0 -0
  277. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/semantic/keyword_retrieval_repo.py +0 -0
  278. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/repos/semantic/semantic_retrieval_repo.py +0 -0
  279. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/session.py +0 -0
  280. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/db/runtime/uow.py +0 -0
  281. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/embeddings/__init__.py +0 -0
  282. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/embeddings/local_provider.py +0 -0
  283. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/embeddings/prewarm.py +0 -0
  284. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/embeddings/query_vector_search.py +0 -0
  285. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/__init__.py +0 -0
  286. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/__init__.py +0 -0
  287. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/claude.py +0 -0
  288. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/codex.py +0 -0
  289. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/cursor.py +0 -0
  290. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/cursor_statusline_config.py +0 -0
  291. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/inspection.py +0 -0
  292. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/managed_markdown.py +0 -0
  293. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/managed_tree.py +0 -0
  294. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/packaged_assets.py +0 -0
  295. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/paths.py +0 -0
  296. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/service.py +0 -0
  297. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/assets/types.py +0 -0
  298. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/__init__.py +0 -0
  299. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/claude_hook_install.py +0 -0
  300. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/claude_runtime.py +0 -0
  301. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/codex_runtime.py +0 -0
  302. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/compatibility.py +0 -0
  303. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/cursor_statusline.py +0 -0
  304. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/identity/resolver.py +0 -0
  305. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/inner_agents/__init__.py +0 -0
  306. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/inner_agents/codex_cli.py +0 -0
  307. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/inner_agents/output_parser.py +0 -0
  308. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/inner_agents/prompt.py +0 -0
  309. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/__init__.py +0 -0
  310. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/claude_code.py +0 -0
  311. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/codex.py +0 -0
  312. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/cursor.py +0 -0
  313. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/model_usage.py +0 -0
  314. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/normalization.py +0 -0
  315. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/session_selection.py +0 -0
  316. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/source_discovery.py +0 -0
  317. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/host_apps/transcripts/tool_filter.py +0 -0
  318. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/__init__.py +0 -0
  319. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/init_lock.py +0 -0
  320. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/machine_config_store.py +0 -0
  321. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/operation_registration.py +0 -0
  322. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/paths.py +0 -0
  323. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/repo_registration_store.py +0 -0
  324. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/local_state/session_state_file_store.py +0 -0
  325. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/__init__.py +0 -0
  326. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/episode_sync/__init__.py +0 -0
  327. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/episode_sync/autostart.py +0 -0
  328. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/episode_sync/launcher.py +0 -0
  329. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/episode_sync/lock_file.py +0 -0
  330. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/process/episode_sync/status_store.py +0 -0
  331. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/reporting/__init__.py +0 -0
  332. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/reporting/metrics/__init__.py +0 -0
  333. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/reporting/metrics/artifacts.py +0 -0
  334. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/reporting/metrics/browser.py +0 -0
  335. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/reporting/metrics/pager.py +0 -0
  336. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/reporting/metrics/render_html.py +0 -0
  337. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/system/__init__.py +0 -0
  338. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/system/clock.py +0 -0
  339. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/system/id_generator.py +0 -0
  340. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/system/package_upgrade.py +0 -0
  341. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/__init__.py +0 -0
  342. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/inner_agent_records.py +0 -0
  343. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/operation_invocations.py +0 -0
  344. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/operation_polling.py +0 -0
  345. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/read_records.py +0 -0
  346. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/recall_records.py +0 -0
  347. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/recorder.py +0 -0
  348. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/records.py +0 -0
  349. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/sink.py +0 -0
  350. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/storage_protocols.py +0 -0
  351. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/sync_records.py +0 -0
  352. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/infrastructure/telemetry/write_records.py +0 -0
  353. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/__init__.py +0 -0
  354. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/defaults/create_policy.yaml +0 -0
  355. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/defaults/read_policy.yaml +0 -0
  356. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/defaults/runtime.yaml +0 -0
  357. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/defaults/thresholds.yaml +0 -0
  358. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/settings/defaults/update_policy.yaml +0 -0
  359. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/__init__.py +0 -0
  360. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/admin.py +0 -0
  361. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/admin_db.py +0 -0
  362. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/admin_dependencies.py +0 -0
  363. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/admin_diagnose.py +0 -0
  364. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/analytics.py +0 -0
  365. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/backup.py +0 -0
  366. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/cli.py +0 -0
  367. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/cli_runtime.py +0 -0
  368. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/config.py +0 -0
  369. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/create_policy.py +0 -0
  370. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/db.py +0 -0
  371. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/dsn_resolution.py +0 -0
  372. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/embeddings.py +0 -0
  373. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/episode_poller.py +0 -0
  374. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/episode_sync_launcher.py +0 -0
  375. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/host_hooks.py +0 -0
  376. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/internal_agent_config.py +0 -0
  377. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/internal_agents.py +0 -0
  378. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/metrics.py +0 -0
  379. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/migrations.py +0 -0
  380. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/model_usage_backfill.py +0 -0
  381. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/operation_dependencies.py +0 -0
  382. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/read_policy.py +0 -0
  383. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/repo_context.py +0 -0
  384. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/repos.py +0 -0
  385. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/retrieval.py +0 -0
  386. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/runtime_admin.py +0 -0
  387. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/runtime_context.py +0 -0
  388. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/settings.py +0 -0
  389. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/thresholds.py +0 -0
  390. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/update_policy.py +0 -0
  391. {shellbrain-0.1.33 → shellbrain-0.1.35}/app/startup/use_cases.py +0 -0
  392. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/__init__.py +0 -0
  393. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/env.py +0 -0
  394. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260226_0001_initial_schema.py +0 -0
  395. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
  396. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
  397. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
  398. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
  399. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
  400. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
  401. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
  402. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260410_0009_frontier_memory_family.py +0 -0
  403. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260414_0010_model_usage_telemetry.py +0 -0
  404. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260414_0011_usage_problem_tokens_multi_solution_metrics.py +0 -0
  405. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260415_0012_read_pack_cost_and_read_roi.py +0 -0
  406. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260421_0013_concept_context_graph.py +0 -0
  407. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260422_0014_concept_read_telemetry.py +0 -0
  408. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260422_0015_problem_runs.py +0 -0
  409. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260508_0016_recall_telemetry.py +0 -0
  410. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260511_0017_inner_agent_invocations.py +0 -0
  411. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260513_0018_knowledge_build_runs.py +0 -0
  412. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260515_0019_scenario_records.py +0 -0
  413. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260516_0020_knowledge_build_observability.py +0 -0
  414. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0021_knowledge_build_watermark_stable.py +0 -0
  415. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0022_update_evidence_links.py +0 -0
  416. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0023_explicit_teach_trigger.py +0 -0
  417. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0024_read_retrieval_latency_indexes.py +0 -0
  418. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py +0 -0
  419. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py +0 -0
  420. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/20260519_0027_concept_embeddings.py +0 -0
  421. {shellbrain-0.1.33 → shellbrain-0.1.35}/migrations/versions/__init__.py +0 -0
  422. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/__init__.py +0 -0
  423. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/claude/CLAUDE.md +0 -0
  424. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/claude/skills/shellbrain/SKILL.md +0 -0
  425. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
  426. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/AGENTS.md +0 -0
  427. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/clean-architecture/SKILL.md +0 -0
  428. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/clean-code/SKILL.md +0 -0
  429. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/SKILL.md +0 -0
  430. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/agents/openai.yaml +0 -0
  431. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/assets/shellbrain-large.svg +0 -0
  432. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/assets/shellbrain-small.svg +0 -0
  433. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/assets/shellbrain_logo.png +0 -0
  434. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/references/request-shapes.md +0 -0
  435. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain/references/session-workflow.md +0 -0
  436. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
  437. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
  438. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
  439. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
  440. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/cursor/skills/shellbrain/SKILL.md +0 -0
  441. {shellbrain-0.1.33 → shellbrain-0.1.35}/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
  442. {shellbrain-0.1.33 → shellbrain-0.1.35}/setup.cfg +0 -0
  443. {shellbrain-0.1.33 → shellbrain-0.1.35}/shellbrain.egg-info/dependency_links.txt +0 -0
  444. {shellbrain-0.1.33 → shellbrain-0.1.35}/shellbrain.egg-info/entry_points.txt +0 -0
  445. {shellbrain-0.1.33 → shellbrain-0.1.35}/shellbrain.egg-info/requires.txt +0 -0
  446. {shellbrain-0.1.33 → shellbrain-0.1.35}/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.33
3
+ Version: 0.1.35
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
@@ -16,6 +16,7 @@ class KnowledgeBuildPlan:
16
16
 
17
17
  episode_id: str
18
18
  trigger: KnowledgeBuildTrigger
19
+ baseline_only: bool = False
19
20
 
20
21
 
21
22
  def plan_stable_watermark_builds(
@@ -23,12 +24,18 @@ def plan_stable_watermark_builds(
23
24
  snapshots: Iterable[EpisodeBuildSnapshot],
24
25
  now: datetime,
25
26
  idle_stable_seconds: int,
27
+ lifecycle_activated_at: datetime | None = None,
26
28
  ) -> tuple[KnowledgeBuildPlan, ...]:
27
29
  """Return build plans for closed or idle-stable episodes with new events."""
28
30
 
29
31
  if idle_stable_seconds < 0:
30
32
  raise ValueError("idle_stable_seconds must be non-negative")
31
33
  stable_before = now - timedelta(seconds=idle_stable_seconds)
34
+ legacy_baseline_before = (
35
+ None
36
+ if lifecycle_activated_at is None
37
+ else lifecycle_activated_at - timedelta(seconds=idle_stable_seconds)
38
+ )
32
39
  plans: list[KnowledgeBuildPlan] = []
33
40
  seen: set[str] = set()
34
41
  for snapshot in snapshots:
@@ -46,6 +53,10 @@ def plan_stable_watermark_builds(
46
53
  KnowledgeBuildPlan(
47
54
  episode_id=snapshot.episode_id,
48
55
  trigger=KnowledgeBuildTrigger.WATERMARK_STABLE,
56
+ baseline_only=_should_baseline_legacy_first_build(
57
+ snapshot=snapshot,
58
+ legacy_baseline_before=legacy_baseline_before,
59
+ ),
49
60
  )
50
61
  )
51
62
  return tuple(plans)
@@ -69,3 +80,17 @@ def _is_stable_build_candidate(
69
80
  if snapshot.status is not EpisodeStatus.ACTIVE:
70
81
  return False
71
82
  return snapshot.latest_event_at <= stable_before
83
+
84
+
85
+ def _should_baseline_legacy_first_build(
86
+ *,
87
+ snapshot: EpisodeBuildSnapshot,
88
+ legacy_baseline_before: datetime | None,
89
+ ) -> bool:
90
+ """Return whether an old first-build episode should be watermarked only."""
91
+
92
+ if legacy_baseline_before is None:
93
+ return False
94
+ if snapshot.latest_successful_build_watermark is not None:
95
+ return False
96
+ return snapshot.latest_event_at <= legacy_baseline_before
@@ -24,6 +24,12 @@ class IKnowledgeBuildRunsRepo(ABC):
24
24
  ) -> int | None:
25
25
  """Return the newest successfully processed event watermark."""
26
26
 
27
+ @abstractmethod
28
+ def ensure_lifecycle_activation_started_at(
29
+ self, *, repo_id: str, activated_at: datetime
30
+ ) -> datetime:
31
+ """Return the repo lifecycle-builder activation time, creating it if absent."""
32
+
27
33
  @abstractmethod
28
34
  def list_running_runs(
29
35
  self, *, repo_id: str, episode_id: str
@@ -116,6 +116,16 @@ def execute_build_knowledge(
116
116
  finished_at=now,
117
117
  )
118
118
 
119
+ if request.baseline_only and previous_watermark is None:
120
+ return _record_baseline_run(
121
+ request=request,
122
+ settings=settings,
123
+ uow=uow,
124
+ id_generator=id_generator,
125
+ event_watermark=event_watermark,
126
+ now=now,
127
+ )
128
+
119
129
  run_id = id_generator.new_id()
120
130
  uow.knowledge_build_runs.add(
121
131
  KnowledgeBuildRun(
@@ -261,6 +271,56 @@ def _fresh_running_run(
261
271
  return None
262
272
 
263
273
 
274
+ def _record_baseline_run(
275
+ *,
276
+ request: BuildKnowledgeRequest,
277
+ settings: BuildKnowledgeSettings,
278
+ uow: IUnitOfWork,
279
+ id_generator: IIdGenerator,
280
+ event_watermark: int,
281
+ now: datetime,
282
+ ) -> BuildKnowledgeResult:
283
+ """Persist a no-provider watermark for history that predates lifecycle builds."""
284
+
285
+ run_id = id_generator.new_id()
286
+ run_summary = (
287
+ "Baselined legacy episode without invoking build_knowledge; "
288
+ "future events after this watermark remain eligible."
289
+ )
290
+ uow.knowledge_build_runs.add(
291
+ KnowledgeBuildRun(
292
+ id=run_id,
293
+ repo_id=request.repo_id,
294
+ episode_id=request.episode_id,
295
+ trigger=request.trigger,
296
+ status=KnowledgeBuildRunStatus.SKIPPED,
297
+ event_watermark=event_watermark,
298
+ previous_event_watermark=None,
299
+ provider=settings.provider,
300
+ model=settings.model,
301
+ reasoning=settings.reasoning,
302
+ run_summary=run_summary,
303
+ error_code="legacy_episode_baselined",
304
+ started_at=now,
305
+ finished_at=now,
306
+ created_at=now,
307
+ )
308
+ )
309
+ return BuildKnowledgeResult(
310
+ status=KnowledgeBuildRunStatus.SKIPPED,
311
+ run_id=run_id,
312
+ event_watermark=event_watermark,
313
+ previous_event_watermark=None,
314
+ provider=settings.provider,
315
+ model=settings.model,
316
+ reasoning=settings.reasoning,
317
+ write_count=0,
318
+ skipped_item_count=0,
319
+ run_summary=run_summary,
320
+ error_code="legacy_episode_baselined",
321
+ )
322
+
323
+
264
324
  def _skipped_result(
265
325
  *,
266
326
  settings: BuildKnowledgeSettings,
@@ -18,6 +18,7 @@ class BuildKnowledgeRequest(_StrictModel):
18
18
  repo_root: str = Field(min_length=1)
19
19
  episode_id: str = Field(min_length=1)
20
20
  trigger: KnowledgeBuildTrigger
21
+ baseline_only: bool = False
21
22
 
22
23
  @field_validator("repo_id", "repo_root", "episode_id")
23
24
  @classmethod
@@ -31,7 +31,7 @@ _DEFAULT_SETTINGS = InnerAgentSettings(
31
31
  strategy="deterministic_synthesis",
32
32
  provider="configured",
33
33
  model="configured",
34
- reasoning="low",
34
+ reasoning="medium",
35
35
  timeout_seconds=90,
36
36
  max_private_reads=0,
37
37
  max_brief_tokens=1_800,
@@ -118,6 +118,20 @@ knowledge_build_runs = Table(
118
118
  ),
119
119
  )
120
120
 
121
+
122
+ knowledge_build_lifecycle = Table(
123
+ "knowledge_build_lifecycle",
124
+ metadata,
125
+ Column("repo_id", String, primary_key=True),
126
+ Column("activated_at", TIMESTAMP(timezone=True), nullable=False),
127
+ Column(
128
+ "created_at",
129
+ TIMESTAMP(timezone=True),
130
+ nullable=False,
131
+ server_default=text("NOW()"),
132
+ ),
133
+ )
134
+
121
135
  Index(
122
136
  "idx_knowledge_build_runs_episode_status_created_at",
123
137
  knowledge_build_runs.c.repo_id,
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  from datetime import datetime, timezone
6
6
 
7
7
  from sqlalchemy import desc, select, text, update
8
+ from sqlalchemy.dialects.postgresql import insert
8
9
 
9
10
  from app.core.entities.knowledge_builder import (
10
11
  KnowledgeBuildRun,
@@ -12,7 +13,10 @@ from app.core.entities.knowledge_builder import (
12
13
  KnowledgeBuildTrigger,
13
14
  )
14
15
  from app.core.ports.db.knowledge_builder import IKnowledgeBuildRunsRepo
15
- from app.infrastructure.db.runtime.models.knowledge_builder import knowledge_build_runs
16
+ from app.infrastructure.db.runtime.models.knowledge_builder import (
17
+ knowledge_build_lifecycle,
18
+ knowledge_build_runs,
19
+ )
16
20
 
17
21
 
18
22
  class KnowledgeBuildRunsRepo(IKnowledgeBuildRunsRepo):
@@ -67,6 +71,27 @@ class KnowledgeBuildRunsRepo(IKnowledgeBuildRunsRepo):
67
71
  )
68
72
  return None if row is None else int(row)
69
73
 
74
+ def ensure_lifecycle_activation_started_at(
75
+ self, *, repo_id: str, activated_at: datetime
76
+ ) -> datetime:
77
+ """Return the repo lifecycle-builder activation time, creating it if absent."""
78
+
79
+ self._session.execute(
80
+ insert(knowledge_build_lifecycle)
81
+ .values(
82
+ repo_id=repo_id,
83
+ activated_at=activated_at,
84
+ created_at=activated_at,
85
+ )
86
+ .on_conflict_do_nothing(index_elements=[knowledge_build_lifecycle.c.repo_id])
87
+ )
88
+ value = self._session.execute(
89
+ select(knowledge_build_lifecycle.c.activated_at).where(
90
+ knowledge_build_lifecycle.c.repo_id == repo_id
91
+ )
92
+ ).scalar_one()
93
+ return value
94
+
70
95
  def list_running_runs(
71
96
  self, *, repo_id: str, episode_id: str
72
97
  ) -> tuple[KnowledgeBuildRun, ...]:
@@ -272,14 +272,22 @@ def _run_stable_builds_best_effort(
272
272
  return
273
273
  try:
274
274
  with uow_factory() as uow:
275
+ now = _utc_now()
276
+ lifecycle_activated_at = (
277
+ uow.knowledge_build_runs.ensure_lifecycle_activation_started_at(
278
+ repo_id=repo_id,
279
+ activated_at=now,
280
+ )
281
+ )
275
282
  snapshots = tuple(uow.episodes.list_build_snapshots(repo_id=repo_id))
276
283
  except Exception:
277
284
  return
278
285
 
279
286
  for plan in plan_stable_watermark_builds(
280
287
  snapshots=snapshots,
281
- now=_utc_now(),
288
+ now=now,
282
289
  idle_stable_seconds=idle_stable_seconds,
290
+ lifecycle_activated_at=lifecycle_activated_at,
283
291
  ):
284
292
  _run_build_knowledge_plan_best_effort(
285
293
  run_build_knowledge=run_build_knowledge,
@@ -301,12 +309,15 @@ def _run_build_knowledge_plan_best_effort(
301
309
  if run_build_knowledge is None or plan is None:
302
310
  return
303
311
  try:
304
- run_build_knowledge(
305
- repo_id=repo_id,
306
- repo_root=repo_root,
307
- episode_id=plan.episode_id,
308
- trigger=plan.trigger,
309
- )
312
+ kwargs = {
313
+ "repo_id": repo_id,
314
+ "repo_root": repo_root,
315
+ "episode_id": plan.episode_id,
316
+ "trigger": plan.trigger,
317
+ }
318
+ if plan.baseline_only:
319
+ kwargs["baseline_only"] = True
320
+ run_build_knowledge(**kwargs)
310
321
  except Exception:
311
322
  return
312
323
 
@@ -3,7 +3,7 @@ build_context:
3
3
  strategy: deterministic_synthesis
4
4
  provider: codex
5
5
  model: gpt-5.4-mini
6
- reasoning: low
6
+ reasoning: medium
7
7
  timeout_seconds: 90
8
8
  max_private_reads: 3
9
9
  max_brief_tokens: 1800
@@ -24,6 +24,7 @@ def run_build_knowledge(
24
24
  repo_root: Path,
25
25
  episode_id: str,
26
26
  trigger: KnowledgeBuildTrigger | str,
27
+ baseline_only: bool = False,
27
28
  ) -> dict[str, object]:
28
29
  """Wire dependencies and run build_knowledge for one episode."""
29
30
 
@@ -32,6 +33,7 @@ def run_build_knowledge(
32
33
  repo_root=str(repo_root.resolve()),
33
34
  episode_id=episode_id,
34
35
  trigger=KnowledgeBuildTrigger(trigger),
36
+ baseline_only=baseline_only,
35
37
  )
36
38
  result = execute_build_knowledge(
37
39
  request,
@@ -0,0 +1,29 @@
1
+ """Add lifecycle activation state for forward-only knowledge building."""
2
+
3
+ from alembic import op
4
+
5
+
6
+ revision = "20260520_0028"
7
+ down_revision = "20260519_0027"
8
+ branch_labels = None
9
+ depends_on = None
10
+
11
+
12
+ def upgrade() -> None:
13
+ """Create per-repo lifecycle activation state."""
14
+
15
+ op.execute(
16
+ """
17
+ CREATE TABLE IF NOT EXISTS knowledge_build_lifecycle (
18
+ repo_id TEXT PRIMARY KEY,
19
+ activated_at TIMESTAMPTZ NOT NULL,
20
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
21
+ );
22
+ """
23
+ )
24
+
25
+
26
+ def downgrade() -> None:
27
+ """Drop per-repo lifecycle activation state."""
28
+
29
+ op.execute("DROP TABLE IF EXISTS knowledge_build_lifecycle;")
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "shellbrain"
7
- version = "0.1.33"
7
+ version = "0.1.35"
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.33
3
+ Version: 0.1.35
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
@@ -414,6 +414,7 @@ migrations/versions/20260519_0024_read_retrieval_latency_indexes.py
414
414
  migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py
415
415
  migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py
416
416
  migrations/versions/20260519_0027_concept_embeddings.py
417
+ migrations/versions/20260520_0028_knowledge_build_lifecycle.py
417
418
  migrations/versions/__init__.py
418
419
  onboarding_assets/__init__.py
419
420
  onboarding_assets/claude/CLAUDE.md
File without changes
File without changes
File without changes