shellbrain 0.1.32__tar.gz → 0.1.34__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.
- {shellbrain-0.1.32 → shellbrain-0.1.34}/PKG-INFO +1 -1
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/episodes/knowledge_building.py +25 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/knowledge_builder.py +6 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/build_knowledge/execute.py +60 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/build_knowledge/request.py +1 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/knowledge_builder.py +14 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/knowledge_builder_repo.py +26 -1
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/inner_agents/prompt.py +2 -14
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/episode_sync/poller.py +18 -7
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/knowledge_builder.py +2 -0
- shellbrain-0.1.34/migrations/versions/20260520_0028_knowledge_build_lifecycle.py +29 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/pyproject.toml +1 -1
- {shellbrain-0.1.32 → shellbrain-0.1.34}/shellbrain.egg-info/PKG-INFO +1 -1
- {shellbrain-0.1.32 → shellbrain-0.1.34}/shellbrain.egg-info/SOURCES.txt +1 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/README.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/__main__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/admin_errors.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/associations.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/backups.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/concepts.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/episodes.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/evidence.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/facts.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/guidance.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/identity.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/ids.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/inner_agents.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/knowledge_builder.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/machine_config.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/memories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/runtime_context.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/scenarios.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/session_state.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/settings.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/entities/utility.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/errors.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/concepts/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/concepts/relation_rules.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/concepts/search_text.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/episodes/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/episodes/event_content.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/memories/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/memories/add_plan.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/memories/link_rules.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/memories/update_plan.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/bm25.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/context_pack.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/expansion.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/fusion_rrf.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/lexical_query.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/policies/retrieval/scoring.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/concept_repositories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/episode_repositories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/guidance.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/memory_repositories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/problem_runs.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/retrieval_repositories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/db/unit_of_work.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/embeddings/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/embeddings/provider.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/embeddings/retrieval.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/host_apps/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/host_apps/inner_agents.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/local_state/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/local_state/session_state_store.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/reporting/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/reporting/metrics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/system/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/system/clock.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/ports/system/idgen.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/analytics_diagnostics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/backfill_model_usage.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/create_backup.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/diagnose_runtime.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/generate_analytics_report.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/initialize_runtime.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/restore_backup.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/verify_backup.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/build_guidance.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/add/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/add/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/add/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/add/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/containment_checks.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/embeddings.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/reference_checks.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/show/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/show/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/show/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/show/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/update/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/update/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/update/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/update/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/concepts/views.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/events/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/events/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/sync_discovered_host_session.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/sync_episode/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/sync_episode/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/sync_episode/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/episodes/sync_episode/sync_episode.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/build_knowledge/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/build_knowledge/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/teach_knowledge/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/teach_knowledge/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/teach_knowledge/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/knowledge_builder/teach_knowledge/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/add/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/add/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/add/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/add/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/effect_plan.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/reference_checks.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/update/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/update/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/update/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/memories/update/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/metrics/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/metrics/analyze_agent_behavior.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/metrics/build_snapshot.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/metrics/generate_dashboard.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/plan_execution.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/build_context/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/build_context/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/concept_seed_retrieval.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/context_pack_pipeline.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/deterministic_graph_recall.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/expansion.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/read/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/read/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/read/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/read/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/read_concepts.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/recall/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/recall/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/recall/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/recall/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/retrieval/seed_retrieval.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/scenarios/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/scenarios/record/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/scenarios/record/execute.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/scenarios/record/request.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/scenarios/record/result.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/error_responses.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/cli_operation.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/dependencies.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/human/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/human/admin.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/human/admin_dependencies.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/human/init.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/human/metrics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/human/upgrade.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/concepts/add.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/concepts/show.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/concepts/update.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/episodes/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/episodes/events.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/episodes/selection.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/episodes/serialization.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/memories/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/memories/add.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/memories/update.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/memories/utility_vote_evidence.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/retrieval/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/retrieval/execution.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/retrieval/read.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/scenarios/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/internal_agent/scenarios/record.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/result_envelopes.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/session_state.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/working_agent/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/working_agent/recall.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/handlers/working_agent/teach.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/main.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/operation_command.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/parser/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/parser/builder.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/presenters/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/presenters/init.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/presenters/json.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/presenters/metrics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/concepts.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/episodes.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/hydration.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/memories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/payload_validation.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/prepared.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/retrieval.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/scenarios.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/request_parsing/teach.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/runner.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/cli/runtime.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/host_hooks/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/host_hooks/claude_session_start.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/host_hooks/cursor_statusline.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/jobs/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/entrypoints/jobs/episode_sync.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/app_role_safety.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/backups/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/backups/destructive_guard.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/backups/logical_backup.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/backups/manifest_store.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/backups/restore.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/connection.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/instance_guard.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/migrations.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/privileges.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/provisioning/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/provisioning/docker_prerequisites.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/provisioning/external_postgres.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/provisioning/init_effects.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/provisioning/managed_local.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/admin/storage_setup.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/engine.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/associations.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/concepts.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/episodes.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/evidence.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/experiences.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/instance_metadata.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/memories.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/metadata.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/problem_runs.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/registry.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/telemetry.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/utility.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/views.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/queries/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/queries/agent_behavior.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/queries/analytics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/queries/metrics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/queries/metrics_adapter.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/queries/model_usage_backfill.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/associations_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/concepts_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/episodes_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/evidence_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/experiences_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/memories_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/problem_runs_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/read_policy_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/telemetry_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/relational/utility_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/semantic/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/semantic/concept_retrieval_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/semantic/keyword_retrieval_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/repos/semantic/semantic_retrieval_repo.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/session.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/uow.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/embeddings/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/embeddings/local_provider.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/embeddings/prewarm.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/embeddings/query_vector_search.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/claude.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/codex.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/cursor.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/cursor_statusline_config.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/inspection.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/managed_markdown.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/managed_tree.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/packaged_assets.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/paths.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/service.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/assets/types.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/claude_hook_install.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/claude_runtime.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/codex_runtime.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/compatibility.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/cursor_statusline.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/identity/resolver.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/inner_agents/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/inner_agents/codex_cli.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/inner_agents/output_parser.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/claude_code.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/codex.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/cursor.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/model_usage.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/normalization.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/session_selection.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/source_discovery.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/host_apps/transcripts/tool_filter.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/init_lock.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/machine_config_store.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/operation_registration.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/paths.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/repo_registration_store.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/local_state/session_state_file_store.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/episode_sync/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/episode_sync/autostart.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/episode_sync/launcher.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/episode_sync/lock_file.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/process/episode_sync/status_store.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/reporting/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/reporting/metrics/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/reporting/metrics/artifacts.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/reporting/metrics/browser.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/reporting/metrics/pager.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/reporting/metrics/render_html.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/system/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/system/clock.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/system/id_generator.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/system/package_upgrade.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/inner_agent_records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/operation_invocations.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/operation_polling.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/read_records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/recall_records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/recorder.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/sink.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/storage_protocols.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/sync_records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/telemetry/write_records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/defaults/create_policy.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/defaults/read_policy.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/defaults/runtime.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/defaults/thresholds.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/defaults/update_policy.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/settings/internal-agents/defaults.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/admin.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/admin_db.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/admin_dependencies.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/admin_diagnose.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/analytics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/backup.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/cli.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/cli_runtime.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/config.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/create_policy.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/db.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/dsn_resolution.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/embeddings.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/episode_poller.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/episode_sync_launcher.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/host_hooks.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/internal_agent_config.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/internal_agents.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/metrics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/migrations.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/model_usage_backfill.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/operation_dependencies.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/read_policy.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/repo_context.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/repos.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/retrieval.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/runtime_admin.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/runtime_context.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/settings.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/thresholds.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/update_policy.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/app/startup/use_cases.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/env.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260226_0001_initial_schema.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260410_0009_frontier_memory_family.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260414_0010_model_usage_telemetry.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260414_0011_usage_problem_tokens_multi_solution_metrics.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260415_0012_read_pack_cost_and_read_roi.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260421_0013_concept_context_graph.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260422_0014_concept_read_telemetry.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260422_0015_problem_runs.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260508_0016_recall_telemetry.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260511_0017_inner_agent_invocations.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260513_0018_knowledge_build_runs.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260515_0019_scenario_records.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260516_0020_knowledge_build_observability.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0021_knowledge_build_watermark_stable.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0022_update_evidence_links.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0023_explicit_teach_trigger.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0024_read_retrieval_latency_indexes.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/20260519_0027_concept_embeddings.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/migrations/versions/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/__init__.py +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/claude/CLAUDE.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/claude/skills/shellbrain/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/AGENTS.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/clean-architecture/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/clean-code/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/agents/openai.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/assets/shellbrain-large.svg +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/assets/shellbrain-small.svg +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/assets/shellbrain_logo.png +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/references/request-shapes.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain/references/session-workflow.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/cursor/skills/shellbrain/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/setup.cfg +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/shellbrain.egg-info/dependency_links.txt +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/shellbrain.egg-info/entry_points.txt +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/shellbrain.egg-info/requires.txt +0 -0
- {shellbrain-0.1.32 → shellbrain-0.1.34}/shellbrain.egg-info/top_level.txt +0 -0
|
@@ -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
|
{shellbrain-0.1.32 → shellbrain-0.1.34}/app/infrastructure/db/runtime/models/knowledge_builder.py
RENAMED
|
@@ -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
|
|
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, ...]:
|
|
@@ -292,10 +292,6 @@ next_checks:
|
|
|
292
292
|
- one to three concrete checks supported by pack evidence. Do not give generic
|
|
293
293
|
coding advice.
|
|
294
294
|
|
|
295
|
-
sources:
|
|
296
|
-
- include only pack sources that support the brief. Every non-empty section
|
|
297
|
-
should have source support when ids are available.
|
|
298
|
-
|
|
299
295
|
# JUDGMENT
|
|
300
296
|
Do not dump raw retrieval results. Compact does not mean omitting the deciding
|
|
301
297
|
distinction. Preserve details that change what the worker should do:
|
|
@@ -309,8 +305,8 @@ guidance.
|
|
|
309
305
|
|
|
310
306
|
# OUTPUT
|
|
311
307
|
Return only valid JSON matching `output_contract`. Return a `brief` object only;
|
|
312
|
-
do not include read_trace. Keep each list compact.
|
|
313
|
-
|
|
308
|
+
do not include read_trace or sources. Keep each list compact. Shellbrain attaches
|
|
309
|
+
deterministic source provenance after synthesis.
|
|
314
310
|
"""
|
|
315
311
|
|
|
316
312
|
|
|
@@ -909,14 +905,6 @@ def render_build_context_synthesis_prompt(request: InnerAgentRunRequest) -> str:
|
|
|
909
905
|
"conflicts": ["string"],
|
|
910
906
|
"gaps": ["string"],
|
|
911
907
|
"next_checks": ["string"],
|
|
912
|
-
"sources": [
|
|
913
|
-
{
|
|
914
|
-
"kind": "memory|concept|claim|relation|grounding|memory_link|anchor|conflict",
|
|
915
|
-
"id": "source id or concept ref from deterministic_graph_pack",
|
|
916
|
-
"facet": "memory|claim|relation|grounding|memory_link when applicable",
|
|
917
|
-
"used_in": "summary|constraints|known_traps|prior_cases|concept_orientation|anchors|conflicts|gaps|next_checks",
|
|
918
|
-
}
|
|
919
|
-
],
|
|
920
908
|
}
|
|
921
909
|
},
|
|
922
910
|
}
|
|
@@ -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=
|
|
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
|
-
|
|
305
|
-
repo_id
|
|
306
|
-
repo_root
|
|
307
|
-
episode_id
|
|
308
|
-
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
|
|
|
@@ -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;")
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/request.py
RENAMED
|
File without changes
|
{shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/backfill_model_usage/result.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shellbrain-0.1.32 → shellbrain-0.1.34}/app/core/use_cases/admin/generate_analytics_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|