shellbrain 0.1.53__tar.gz → 0.1.55__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.53 → shellbrain-0.1.55}/PKG-INFO +7 -4
- {shellbrain-0.1.53 → shellbrain-0.1.55}/README.md +6 -3
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/parser/builder.py +0 -19
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/runner.py +0 -9
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/runtime.py +0 -1
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/provisioning/docker_prerequisites.py +5 -1
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/inner_agents/prompt.py +4 -4
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/cli.py +0 -2
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/cli_runtime.py +0 -1
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/runtime_admin.py +12 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/pyproject.toml +1 -1
- {shellbrain-0.1.53 → shellbrain-0.1.55}/shellbrain.egg-info/PKG-INFO +7 -4
- {shellbrain-0.1.53 → shellbrain-0.1.55}/shellbrain.egg-info/SOURCES.txt +0 -15
- shellbrain-0.1.53/app/core/ports/reporting/__init__.py +0 -1
- shellbrain-0.1.53/app/core/ports/reporting/metrics.py +0 -32
- shellbrain-0.1.53/app/core/use_cases/metrics/build_snapshot.py +0 -496
- shellbrain-0.1.53/app/core/use_cases/metrics/generate_dashboard.py +0 -82
- shellbrain-0.1.53/app/entrypoints/cli/handlers/human/metrics.py +0 -38
- shellbrain-0.1.53/app/entrypoints/cli/presenters/metrics.py +0 -26
- shellbrain-0.1.53/app/infrastructure/db/runtime/queries/metrics.py +0 -219
- shellbrain-0.1.53/app/infrastructure/db/runtime/queries/metrics_adapter.py +0 -54
- shellbrain-0.1.53/app/infrastructure/reporting/__init__.py +0 -1
- shellbrain-0.1.53/app/infrastructure/reporting/metrics/__init__.py +0 -1
- shellbrain-0.1.53/app/infrastructure/reporting/metrics/artifacts.py +0 -65
- shellbrain-0.1.53/app/infrastructure/reporting/metrics/browser.py +0 -12
- shellbrain-0.1.53/app/infrastructure/reporting/metrics/pager.py +0 -274
- shellbrain-0.1.53/app/infrastructure/reporting/metrics/render_html.py +0 -782
- shellbrain-0.1.53/app/startup/metrics.py +0 -64
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/__main__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/admin_errors.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/associations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/backups.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/concepts.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/episodes.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/evidence.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/guidance.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/identity.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/ids.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/inner_agents.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/knowledge_builder.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/machine_config.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/memories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/runtime_context.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/scenarios.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/session_state.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/settings.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/snapshots.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/structural_memory_relations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/entities/utility.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/errors.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/concepts/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/concepts/relation_rules.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/concepts/search_text.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/episodes/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/episodes/event_content.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/episodes/knowledge_building.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/memories/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/memories/add_plan.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/memories/link_rules.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/memories/update_plan.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/bm25.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/context_pack.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/expansion.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/fusion_rrf.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/lexical_query.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/ontology_semantics.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/policies/retrieval/scoring.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/concept_repositories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/episode_repositories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/guidance.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/knowledge_builder.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/memory_repositories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/problem_runs.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/retrieval_repositories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/snapshots.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/db/unit_of_work.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/embeddings/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/embeddings/provider.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/embeddings/retrieval.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/host_apps/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/host_apps/inner_agents.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/local_state/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/local_state/session_state_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/local_state/shadow_git.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/system/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/system/clock.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/ports/system/idgen.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/analytics_diagnostics.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/backfill_model_usage/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/backfill_model_usage/backfill_model_usage.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/backfill_model_usage/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/backfill_model_usage/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/create_backup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/diagnose_runtime.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/generate_analytics_report.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/initialize_runtime.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/restore_backup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/admin/verify_backup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/build_guidance.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/add/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/add/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/add/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/add/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/containment_checks.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/embeddings.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/reference_checks.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/show/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/show/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/show/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/show/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/update/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/update/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/update/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/update/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/concepts/views.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/events/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/events/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/sync_discovered_host_session.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/sync_episode/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/sync_episode/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/sync_episode/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/episodes/sync_episode/sync_episode.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/build_knowledge/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/build_knowledge/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/build_knowledge/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/build_knowledge/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/teach_knowledge/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/teach_knowledge/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/teach_knowledge/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/knowledge_builder/teach_knowledge/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/add/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/add/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/add/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/add/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/effect_plan.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/reference_checks.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/update/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/update/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/update/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/memories/update/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/metrics/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/metrics/analyze_agent_behavior.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/plan_execution.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/build_context/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/build_context/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/concept_seed_retrieval.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/context_pack_pipeline.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/deterministic_graph_recall.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/expansion.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/read/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/read/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/read/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/read/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/read_concepts.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/recall/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/recall/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/recall/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/recall/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/retrieval/seed_retrieval.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/scenarios/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/scenarios/record/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/scenarios/record/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/scenarios/record/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/scenarios/record/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/capture_snapshot/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/capture_snapshot/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/capture_snapshot/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/capture_snapshot/result.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/code_delta_context/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/code_delta_context/execute.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/core/use_cases/snapshots/code_delta_context/request.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/error_responses.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/cli_operation.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/dependencies.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/human/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/human/admin.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/human/admin_dependencies.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/human/init.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/human/upgrade.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/concepts/add.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/concepts/show.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/concepts/update.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/episodes/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/episodes/events.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/episodes/selection.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/episodes/serialization.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/memories/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/memories/add.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/memories/update.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/memories/utility_vote_evidence.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/retrieval/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/retrieval/execution.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/retrieval/read.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/scenarios/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/internal_agent/scenarios/record.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/result_envelopes.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/session_state.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/working_agent/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/working_agent/recall.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/working_agent/snapshot.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/handlers/working_agent/teach.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/main.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/operation_command.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/parser/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/presenters/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/presenters/init.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/presenters/json.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/concepts.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/episodes.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/hydration.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/memories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/payload_validation.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/prepared.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/retrieval.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/scenarios.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/cli/request_parsing/teach.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/host_hooks/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/host_hooks/claude_session_start.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/host_hooks/cursor_statusline.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/jobs/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/entrypoints/jobs/episode_sync.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/app_role_safety.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/backups/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/backups/destructive_guard.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/backups/logical_backup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/backups/manifest_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/backups/restore.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/connection.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/instance_guard.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/migrations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/privileges.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/provisioning/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/provisioning/external_postgres.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/provisioning/init_effects.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/provisioning/managed_local.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/admin/storage_setup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/engine.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/associations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/concepts.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/episodes.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/evidence.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/experiences.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/instance_metadata.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/knowledge_builder.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/memories.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/metadata.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/problem_runs.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/registry.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/snapshots.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/telemetry.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/utility.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/models/views.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/queries/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/queries/agent_behavior.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/queries/analytics.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/queries/model_usage_backfill.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/associations_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/concepts_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/episodes_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/evidence_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/experiences_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/knowledge_builder_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/memories_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/problem_runs_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/read_policy_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/snapshots_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/telemetry_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/relational/utility_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/semantic/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/semantic/concept_retrieval_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/semantic/keyword_retrieval_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/repos/semantic/semantic_retrieval_repo.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/session.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/db/runtime/uow.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/embeddings/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/embeddings/local_provider.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/embeddings/prewarm.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/embeddings/query_vector_search.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/claude.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/codex.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/cursor.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/cursor_statusline_config.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/inspection.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/managed_markdown.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/managed_tree.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/packaged_assets.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/paths.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/service.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/assets/types.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/claude_hook_install.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/claude_runtime.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/codex_runtime.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/compatibility.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/cursor_statusline.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/identity/resolver.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/inner_agents/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/inner_agents/claude_cli.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/inner_agents/codex_cli.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/inner_agents/output_parser.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/claude_code.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/codex.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/cursor.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/model_usage.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/normalization.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/session_selection.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/source_discovery.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/host_apps/transcripts/tool_filter.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/init_lock.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/machine_config_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/operation_registration.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/paths.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/recall_mode_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/repo_registration_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/session_state_file_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/local_state/shadow_git_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/episode_sync/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/episode_sync/autostart.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/episode_sync/launcher.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/episode_sync/lock_file.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/episode_sync/poller.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/process/episode_sync/status_store.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/system/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/system/clock.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/system/id_generator.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/system/package_upgrade.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/inner_agent_records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/operation_invocations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/operation_polling.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/read_records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/recall_records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/recorder.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/sink.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/storage_protocols.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/sync_records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/infrastructure/telemetry/write_records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/defaults/create_policy.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/defaults/read_policy.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/defaults/runtime.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/defaults/thresholds.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/defaults/update_policy.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/settings/internal-agents/defaults.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/admin.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/admin_db.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/admin_dependencies.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/admin_diagnose.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/analytics.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/backup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/config.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/create_policy.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/db.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/dsn_resolution.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/embeddings.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/episode_poller.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/episode_sync_launcher.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/host_hooks.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/internal_agent_config.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/internal_agents.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/knowledge_builder.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/migrations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/model_usage_backfill.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/operation_dependencies.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/read_policy.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/repo_context.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/repos.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/retrieval.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/runtime_context.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/settings.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/snapshot_baseline.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/thresholds.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/update_policy.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/app/startup/use_cases.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/_legacy_usage_views.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/_usage_view_sql.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/env.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260226_0001_initial_schema.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260410_0009_frontier_memory_family.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260414_0010_model_usage_telemetry.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260414_0011_usage_problem_tokens_multi_solution_metrics.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260415_0012_read_pack_cost_and_read_roi.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260421_0013_concept_context_graph.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260422_0014_concept_read_telemetry.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260422_0015_problem_runs.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260508_0016_recall_telemetry.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260511_0017_inner_agent_invocations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260513_0018_knowledge_build_runs.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260515_0019_scenario_records.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260516_0020_knowledge_build_observability.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0021_knowledge_build_watermark_stable.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0022_update_evidence_links.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0023_explicit_teach_trigger.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0024_read_retrieval_latency_indexes.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260519_0027_concept_embeddings.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260520_0028_knowledge_build_lifecycle.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0029_remove_frontier_and_memory_anchors.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0030_concept_lifecycle_events.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0031_unified_evidence_storage.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0032_memory_lifecycle_events.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0033_concept_memory_role_cleanup.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0034_structural_memory_relations.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260522_0035_retire_legacy_compatibility_tables.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260526_0036_shadow_snapshots.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260606_0037_wiki_summaries.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/20260815_0038_drop_wiki_summaries.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/migrations/versions/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/__init__.py +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/claude/CLAUDE.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/claude/skills/shellbrain/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/AGENTS.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/clean-architecture/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/clean-code/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain/agents/openai.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain/assets/shellbrain-large.svg +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain/assets/shellbrain-small.svg +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain/assets/shellbrain_logo.png +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain/references/session-workflow.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/cursor/skills/shellbrain/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/setup.cfg +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/shellbrain.egg-info/dependency_links.txt +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/shellbrain.egg-info/entry_points.txt +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/shellbrain.egg-info/requires.txt +0 -0
- {shellbrain-0.1.53 → shellbrain-0.1.55}/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.
|
|
3
|
+
Version: 0.1.55
|
|
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
|
|
@@ -28,7 +28,7 @@ ShellBrain gives AI agents memory, so they can store and reuse what they learn o
|
|
|
28
28
|
curl -L shellbrain.ai/install | bash
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
**Works for Codex, Claude Code, and Cursor.**
|
|
31
|
+
**Works for Codex, Claude Code, and Cursor.** The installer runs `shellbrain init` for you. Repos register themselves on first use.
|
|
32
32
|
|
|
33
33
|
Requirements.
|
|
34
34
|
- macOS or Linux, Python 3.11+, Docker for the managed local Postgres+pgvector runtime.
|
|
@@ -38,6 +38,9 @@ Requirements.
|
|
|
38
38
|
```bash
|
|
39
39
|
shellbrain upgrade
|
|
40
40
|
```
|
|
41
|
+
|
|
42
|
+
You can also run `curl -L shellbrain.ai/upgrade | bash`. Manual alternative: `pipx upgrade shellbrain && shellbrain init`.
|
|
43
|
+
|
|
41
44
|
---
|
|
42
45
|
|
|
43
46
|
## Recall in one command
|
|
@@ -113,10 +116,10 @@ ShellBrain keeps memory grounded in evidence and narrow in scope. Agents request
|
|
|
113
116
|
|
|
114
117
|
## Use ShellBrain
|
|
115
118
|
|
|
116
|
-
Use
|
|
119
|
+
Use Shellbrain with your preferred agent. Then work as usual.
|
|
117
120
|
|
|
118
121
|
- **Claude Code:** Use `/shellbrain` to recall context at task boundaries.
|
|
119
|
-
- **Codex:** Use
|
|
122
|
+
- **Codex:** Use $shellbrain to recall context at task boundaries.
|
|
120
123
|
- **Cursor:** Use `/shellbrain` to recall context at task boundaries.
|
|
121
124
|
|
|
122
125
|
---
|
|
@@ -14,7 +14,7 @@ ShellBrain gives AI agents memory, so they can store and reuse what they learn o
|
|
|
14
14
|
curl -L shellbrain.ai/install | bash
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
**Works for Codex, Claude Code, and Cursor.**
|
|
17
|
+
**Works for Codex, Claude Code, and Cursor.** The installer runs `shellbrain init` for you. Repos register themselves on first use.
|
|
18
18
|
|
|
19
19
|
Requirements.
|
|
20
20
|
- macOS or Linux, Python 3.11+, Docker for the managed local Postgres+pgvector runtime.
|
|
@@ -24,6 +24,9 @@ Requirements.
|
|
|
24
24
|
```bash
|
|
25
25
|
shellbrain upgrade
|
|
26
26
|
```
|
|
27
|
+
|
|
28
|
+
You can also run `curl -L shellbrain.ai/upgrade | bash`. Manual alternative: `pipx upgrade shellbrain && shellbrain init`.
|
|
29
|
+
|
|
27
30
|
---
|
|
28
31
|
|
|
29
32
|
## Recall in one command
|
|
@@ -99,10 +102,10 @@ ShellBrain keeps memory grounded in evidence and narrow in scope. Agents request
|
|
|
99
102
|
|
|
100
103
|
## Use ShellBrain
|
|
101
104
|
|
|
102
|
-
Use
|
|
105
|
+
Use Shellbrain with your preferred agent. Then work as usual.
|
|
103
106
|
|
|
104
107
|
- **Claude Code:** Use `/shellbrain` to recall context at task boundaries.
|
|
105
|
-
- **Codex:** Use
|
|
108
|
+
- **Codex:** Use $shellbrain to recall context at task boundaries.
|
|
106
109
|
- **Cursor:** Use `/shellbrain` to recall context at task boundaries.
|
|
107
110
|
|
|
108
111
|
---
|
|
@@ -38,7 +38,6 @@ _TOP_LEVEL_HELP = dedent(
|
|
|
38
38
|
- Bootstrap or repair with `shellbrain init`.
|
|
39
39
|
- Upgrade with `shellbrain upgrade`.
|
|
40
40
|
- Check health with `shellbrain admin doctor`.
|
|
41
|
-
- Review usage with `shellbrain metrics`.
|
|
42
41
|
|
|
43
42
|
Working agents:
|
|
44
43
|
- Use `shellbrain recall` for normal task context.
|
|
@@ -68,7 +67,6 @@ _TOP_LEVEL_HELP = dedent(
|
|
|
68
67
|
Humans:
|
|
69
68
|
shellbrain init
|
|
70
69
|
shellbrain upgrade
|
|
71
|
-
shellbrain metrics
|
|
72
70
|
shellbrain admin doctor
|
|
73
71
|
shellbrain admin migrate
|
|
74
72
|
|
|
@@ -386,15 +384,6 @@ _BACKFILL_TOKEN_USAGE_HELP = dedent(
|
|
|
386
384
|
"""
|
|
387
385
|
)
|
|
388
386
|
|
|
389
|
-
_METRICS_HELP = dedent(
|
|
390
|
-
"""\
|
|
391
|
-
Generate lightweight metrics snapshots, write local artifacts, and open one browser dashboard that switches repos with arrow keys.
|
|
392
|
-
|
|
393
|
-
Example:
|
|
394
|
-
shellbrain metrics
|
|
395
|
-
"""
|
|
396
|
-
)
|
|
397
|
-
|
|
398
387
|
_INSTALL_CLAUDE_HOOK_HELP = dedent(
|
|
399
388
|
"""\
|
|
400
389
|
Install or update the repo-local Claude Code SessionStart hook used as an explicit repo-local override.
|
|
@@ -499,14 +488,6 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
499
488
|
formatter_class=_HelpFormatter,
|
|
500
489
|
)
|
|
501
490
|
|
|
502
|
-
subparsers.add_parser(
|
|
503
|
-
"metrics",
|
|
504
|
-
help="Browse Shellbrain metrics across repos.",
|
|
505
|
-
description="Generate local metrics snapshots and open one browser dashboard for all repos.",
|
|
506
|
-
epilog=_METRICS_HELP,
|
|
507
|
-
formatter_class=_HelpFormatter,
|
|
508
|
-
)
|
|
509
|
-
|
|
510
491
|
read_parser = subparsers.add_parser(
|
|
511
492
|
"read",
|
|
512
493
|
help="Read Shellbrain context without mutating state.",
|
|
@@ -89,15 +89,6 @@ def main(
|
|
|
89
89
|
|
|
90
90
|
return run_upgrade_command(run_upgrade_command=runtime.run_upgrade_command)
|
|
91
91
|
|
|
92
|
-
if args.command == "metrics":
|
|
93
|
-
from app.entrypoints.cli.handlers.human.metrics import run_metrics_command
|
|
94
|
-
|
|
95
|
-
return run_metrics_command(
|
|
96
|
-
args,
|
|
97
|
-
warn_or_fail_on_unsafe_app_role=runtime.warn_or_fail_on_unsafe_app_role,
|
|
98
|
-
run_metrics_dashboard=runtime.run_metrics_dashboard,
|
|
99
|
-
)
|
|
100
|
-
|
|
101
92
|
if args.command == "admin":
|
|
102
93
|
from app.entrypoints.cli.handlers.human.admin import run_admin_command
|
|
103
94
|
|
|
@@ -21,8 +21,12 @@ def ensure_docker_runtime_available() -> None:
|
|
|
21
21
|
check=False,
|
|
22
22
|
)
|
|
23
23
|
if completed.returncode != 0:
|
|
24
|
+
detail = completed.stderr.strip() or completed.stdout.strip()
|
|
25
|
+
if not detail:
|
|
26
|
+
detail = f"docker info exited with status {completed.returncode}"
|
|
24
27
|
raise InitDependencyError(
|
|
25
|
-
"Shellbrain
|
|
28
|
+
"Shellbrain requires a reachable Docker daemon for managed-local runtime operations. "
|
|
29
|
+
f"docker info failed: {detail}"
|
|
26
30
|
)
|
|
27
31
|
|
|
28
32
|
|
|
@@ -77,7 +77,7 @@ shellbrain --no-sync --repo-root "<repo_root>" concept show --help
|
|
|
77
77
|
|
|
78
78
|
Do not run `shellbrain recall`.
|
|
79
79
|
Do not write memories, concepts, scenarios, files, settings, or database data.
|
|
80
|
-
Do not run `admin`, `init`,
|
|
80
|
+
Do not run `admin`, `init`, or `upgrade` commands.
|
|
81
81
|
|
|
82
82
|
# PROTOCOL
|
|
83
83
|
1. Read `query`, `repo_root`, and the budgets from the payload.
|
|
@@ -456,7 +456,7 @@ Do not edit files.
|
|
|
456
456
|
Do not run a formatter that writes files.
|
|
457
457
|
Do not commit or push.
|
|
458
458
|
Do not run `shellbrain recall` or `shellbrain snapshot`.
|
|
459
|
-
Do not run `admin`, `init`,
|
|
459
|
+
Do not run `admin`, `init`, or `upgrade` commands.
|
|
460
460
|
Do not write directly to the database.
|
|
461
461
|
Do not use `graph_patches`.
|
|
462
462
|
Do not use a write command that this prompt does not list.
|
|
@@ -712,7 +712,7 @@ shellbrain --repo-root "<repo_root>" concept update --help
|
|
|
712
712
|
```
|
|
713
713
|
|
|
714
714
|
Forbidden: `shellbrain events`, `shellbrain scenario record`, `shellbrain
|
|
715
|
-
recall`, `shellbrain snapshot`, admin/init/upgrade
|
|
715
|
+
recall`, `shellbrain snapshot`, admin/init/upgrade, direct DB writes,
|
|
716
716
|
editing files, formatters, commits, pushes, and any write command not listed
|
|
717
717
|
above.
|
|
718
718
|
|
|
@@ -864,7 +864,7 @@ def render_build_context_prompt(request: InnerAgentRunRequest) -> str:
|
|
|
864
864
|
"shellbrain concept add",
|
|
865
865
|
"shellbrain concept update",
|
|
866
866
|
"shellbrain scenario record",
|
|
867
|
-
"any admin, init, upgrade,
|
|
867
|
+
"any admin, init, upgrade, or durable write command",
|
|
868
868
|
],
|
|
869
869
|
"output_contract": {
|
|
870
870
|
"brief": {
|
|
@@ -13,7 +13,6 @@ def build_cli_runtime():
|
|
|
13
13
|
|
|
14
14
|
from app.startup import create_policy
|
|
15
15
|
from app.startup import episode_sync_launcher
|
|
16
|
-
from app.startup import metrics as startup_metrics
|
|
17
16
|
from app.startup import operation_dependencies
|
|
18
17
|
from app.startup import read_policy
|
|
19
18
|
from app.startup import repo_context
|
|
@@ -63,7 +62,6 @@ def build_cli_runtime():
|
|
|
63
62
|
init_success_presenter_context=runtime_admin.init_success_presenter_context,
|
|
64
63
|
run_upgrade_command=run_upgrade_command,
|
|
65
64
|
warn_or_fail_on_unsafe_app_role=warn_or_fail_on_unsafe_app_role,
|
|
66
|
-
run_metrics_dashboard=startup_metrics.run_metrics_dashboard,
|
|
67
65
|
admin_dependencies=build_admin_command_dependencies(),
|
|
68
66
|
)
|
|
69
67
|
|
|
@@ -35,5 +35,4 @@ class CliRuntime:
|
|
|
35
35
|
init_success_presenter_context: Callable[[], dict[str, Any]]
|
|
36
36
|
run_upgrade_command: Callable[[], int]
|
|
37
37
|
warn_or_fail_on_unsafe_app_role: Callable[[], None]
|
|
38
|
-
run_metrics_dashboard: Callable[..., object]
|
|
39
38
|
admin_dependencies: AdminCommandDependencies
|
|
@@ -172,11 +172,23 @@ def ensure_managed_runtime_ready() -> None:
|
|
|
172
172
|
return
|
|
173
173
|
if config.runtime_mode != RUNTIME_MODE_MANAGED_LOCAL:
|
|
174
174
|
return
|
|
175
|
+
if _postgres_is_ready(config.database.admin_dsn):
|
|
176
|
+
return
|
|
175
177
|
ensure_managed_runtime_available()
|
|
176
178
|
managed_runtime.ensure_existing_managed_container_running(config)
|
|
177
179
|
wait_for_postgres(config.database.admin_dsn, timeout_seconds=15)
|
|
178
180
|
|
|
179
181
|
|
|
182
|
+
def _postgres_is_ready(admin_dsn: str) -> bool:
|
|
183
|
+
"""Return whether the configured PostgreSQL runtime accepts connections."""
|
|
184
|
+
|
|
185
|
+
try:
|
|
186
|
+
wait_for_postgres(admin_dsn, timeout_seconds=0)
|
|
187
|
+
except InitConflictError:
|
|
188
|
+
return False
|
|
189
|
+
return True
|
|
190
|
+
|
|
191
|
+
|
|
180
192
|
def _build_fresh_machine_config() -> MachineConfig:
|
|
181
193
|
"""Construct a fresh machine config for managed-local mode."""
|
|
182
194
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shellbrain
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.55
|
|
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
|
|
@@ -28,7 +28,7 @@ ShellBrain gives AI agents memory, so they can store and reuse what they learn o
|
|
|
28
28
|
curl -L shellbrain.ai/install | bash
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
**Works for Codex, Claude Code, and Cursor.**
|
|
31
|
+
**Works for Codex, Claude Code, and Cursor.** The installer runs `shellbrain init` for you. Repos register themselves on first use.
|
|
32
32
|
|
|
33
33
|
Requirements.
|
|
34
34
|
- macOS or Linux, Python 3.11+, Docker for the managed local Postgres+pgvector runtime.
|
|
@@ -38,6 +38,9 @@ Requirements.
|
|
|
38
38
|
```bash
|
|
39
39
|
shellbrain upgrade
|
|
40
40
|
```
|
|
41
|
+
|
|
42
|
+
You can also run `curl -L shellbrain.ai/upgrade | bash`. Manual alternative: `pipx upgrade shellbrain && shellbrain init`.
|
|
43
|
+
|
|
41
44
|
---
|
|
42
45
|
|
|
43
46
|
## Recall in one command
|
|
@@ -113,10 +116,10 @@ ShellBrain keeps memory grounded in evidence and narrow in scope. Agents request
|
|
|
113
116
|
|
|
114
117
|
## Use ShellBrain
|
|
115
118
|
|
|
116
|
-
Use
|
|
119
|
+
Use Shellbrain with your preferred agent. Then work as usual.
|
|
117
120
|
|
|
118
121
|
- **Claude Code:** Use `/shellbrain` to recall context at task boundaries.
|
|
119
|
-
- **Codex:** Use
|
|
122
|
+
- **Codex:** Use $shellbrain to recall context at task boundaries.
|
|
120
123
|
- **Cursor:** Use `/shellbrain` to recall context at task boundaries.
|
|
121
124
|
|
|
122
125
|
---
|
|
@@ -63,8 +63,6 @@ app/core/ports/host_apps/inner_agents.py
|
|
|
63
63
|
app/core/ports/local_state/__init__.py
|
|
64
64
|
app/core/ports/local_state/session_state_store.py
|
|
65
65
|
app/core/ports/local_state/shadow_git.py
|
|
66
|
-
app/core/ports/reporting/__init__.py
|
|
67
|
-
app/core/ports/reporting/metrics.py
|
|
68
66
|
app/core/ports/system/__init__.py
|
|
69
67
|
app/core/ports/system/clock.py
|
|
70
68
|
app/core/ports/system/idgen.py
|
|
@@ -130,8 +128,6 @@ app/core/use_cases/memories/update/request.py
|
|
|
130
128
|
app/core/use_cases/memories/update/result.py
|
|
131
129
|
app/core/use_cases/metrics/__init__.py
|
|
132
130
|
app/core/use_cases/metrics/analyze_agent_behavior.py
|
|
133
|
-
app/core/use_cases/metrics/build_snapshot.py
|
|
134
|
-
app/core/use_cases/metrics/generate_dashboard.py
|
|
135
131
|
app/core/use_cases/retrieval/__init__.py
|
|
136
132
|
app/core/use_cases/retrieval/concept_seed_retrieval.py
|
|
137
133
|
app/core/use_cases/retrieval/context_pack_pipeline.py
|
|
@@ -178,7 +174,6 @@ app/entrypoints/cli/handlers/human/__init__.py
|
|
|
178
174
|
app/entrypoints/cli/handlers/human/admin.py
|
|
179
175
|
app/entrypoints/cli/handlers/human/admin_dependencies.py
|
|
180
176
|
app/entrypoints/cli/handlers/human/init.py
|
|
181
|
-
app/entrypoints/cli/handlers/human/metrics.py
|
|
182
177
|
app/entrypoints/cli/handlers/human/upgrade.py
|
|
183
178
|
app/entrypoints/cli/handlers/internal_agent/__init__.py
|
|
184
179
|
app/entrypoints/cli/handlers/internal_agent/concepts/__init__.py
|
|
@@ -207,7 +202,6 @@ app/entrypoints/cli/parser/builder.py
|
|
|
207
202
|
app/entrypoints/cli/presenters/__init__.py
|
|
208
203
|
app/entrypoints/cli/presenters/init.py
|
|
209
204
|
app/entrypoints/cli/presenters/json.py
|
|
210
|
-
app/entrypoints/cli/presenters/metrics.py
|
|
211
205
|
app/entrypoints/cli/request_parsing/__init__.py
|
|
212
206
|
app/entrypoints/cli/request_parsing/concepts.py
|
|
213
207
|
app/entrypoints/cli/request_parsing/episodes.py
|
|
@@ -265,8 +259,6 @@ app/infrastructure/db/runtime/models/views.py
|
|
|
265
259
|
app/infrastructure/db/runtime/queries/__init__.py
|
|
266
260
|
app/infrastructure/db/runtime/queries/agent_behavior.py
|
|
267
261
|
app/infrastructure/db/runtime/queries/analytics.py
|
|
268
|
-
app/infrastructure/db/runtime/queries/metrics.py
|
|
269
|
-
app/infrastructure/db/runtime/queries/metrics_adapter.py
|
|
270
262
|
app/infrastructure/db/runtime/queries/model_usage_backfill.py
|
|
271
263
|
app/infrastructure/db/runtime/repos/__init__.py
|
|
272
264
|
app/infrastructure/db/runtime/repos/relational/__init__.py
|
|
@@ -340,12 +332,6 @@ app/infrastructure/process/episode_sync/launcher.py
|
|
|
340
332
|
app/infrastructure/process/episode_sync/lock_file.py
|
|
341
333
|
app/infrastructure/process/episode_sync/poller.py
|
|
342
334
|
app/infrastructure/process/episode_sync/status_store.py
|
|
343
|
-
app/infrastructure/reporting/__init__.py
|
|
344
|
-
app/infrastructure/reporting/metrics/__init__.py
|
|
345
|
-
app/infrastructure/reporting/metrics/artifacts.py
|
|
346
|
-
app/infrastructure/reporting/metrics/browser.py
|
|
347
|
-
app/infrastructure/reporting/metrics/pager.py
|
|
348
|
-
app/infrastructure/reporting/metrics/render_html.py
|
|
349
335
|
app/infrastructure/system/__init__.py
|
|
350
336
|
app/infrastructure/system/clock.py
|
|
351
337
|
app/infrastructure/system/id_generator.py
|
|
@@ -389,7 +375,6 @@ app/startup/host_hooks.py
|
|
|
389
375
|
app/startup/internal_agent_config.py
|
|
390
376
|
app/startup/internal_agents.py
|
|
391
377
|
app/startup/knowledge_builder.py
|
|
392
|
-
app/startup/metrics.py
|
|
393
378
|
app/startup/migrations.py
|
|
394
379
|
app/startup/model_usage_backfill.py
|
|
395
380
|
app/startup/operation_dependencies.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""Reporting and artifact output ports."""
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"""Ports for metrics dashboard generation."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
from typing import Any, Protocol
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class MetricsHtmlRenderer(Protocol):
|
|
10
|
-
"""Render metrics snapshots to HTML."""
|
|
11
|
-
|
|
12
|
-
def render_metrics_dashboard(self, snapshot: dict[str, Any]) -> str: ...
|
|
13
|
-
|
|
14
|
-
def render_metrics_browser_dashboard(
|
|
15
|
-
self, snapshots: list[dict[str, Any]]
|
|
16
|
-
) -> str: ...
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class MetricsArtifactWriter(Protocol):
|
|
20
|
-
"""Persist rendered metrics artifacts."""
|
|
21
|
-
|
|
22
|
-
def write_metrics_artifacts(
|
|
23
|
-
self, *, repo_id: str, snapshot: dict[str, Any], html: str
|
|
24
|
-
) -> dict[str, Path | str]: ...
|
|
25
|
-
|
|
26
|
-
def write_metrics_index_artifact(self, *, html: str) -> Path | str: ...
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class MetricsDashboardBrowser(Protocol):
|
|
30
|
-
"""Open a generated metrics dashboard when possible."""
|
|
31
|
-
|
|
32
|
-
def open_metrics_dashboard(self, path: Path) -> bool: ...
|