shellbrain 0.1.18__tar.gz → 0.1.20__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.18 → shellbrain-0.1.20}/PKG-INFO +1 -1
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/agent_behavior_analysis.py +7 -7
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/storage_setup.py +15 -2
- {shellbrain-0.1.18 → shellbrain-0.1.20}/pyproject.toml +1 -1
- {shellbrain-0.1.18 → shellbrain-0.1.20}/shellbrain.egg-info/PKG-INFO +1 -1
- {shellbrain-0.1.18 → shellbrain-0.1.20}/README.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/__main__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/admin_db.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/config.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/create_policy.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/db.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/embeddings.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/home.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/migrations.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/read_policy.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/repos.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/retrieval.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/thresholds.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/update_policy.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/boot/use_cases.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/defaults/create_policy.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/defaults/read_policy.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/defaults/runtime.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/defaults/thresholds.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/defaults/update_policy.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/config/loader.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/contracts/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/contracts/errors.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/contracts/requests.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/contracts/responses.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/associations.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/episodes.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/evidence.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/facts.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/guidance.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/identity.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/memory.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/runtime_context.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/session_state.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/telemetry.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/entities/utility.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/clock.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/config.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/embeddings.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/idgen.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/repos.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/retrieval.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/session_state_store.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/interfaces/unit_of_work.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/_shared/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/_shared/executor.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/_shared/side_effects.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/create_policy/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/create_policy/pipeline.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/bm25.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/context_pack_builder.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/expansion.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/fusion_rrf.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/lexical_query.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/pipeline.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/scenario_lift.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/scoring.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/seed_retrieval.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/read_policy/utility_prior.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/update_policy/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/policies/update_policy/pipeline.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/build_guidance.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/create_memory.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/manage_session_state.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/read_memory.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/record_episode_sync_telemetry.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/record_operation_telemetry.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/sync_episode.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/core/use_cases/update_memory.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/env.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260226_0001_initial_schema.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260312_0002_add_hard_invariants.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260312_0003_drop_create_confidence.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260313_0004_episode_sync_hardening.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260313_0005_evidence_episode_event_refs.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260318_0006_usage_telemetry_schema.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260319_0007_identity_session_guidance.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260320_0008_instance_metadata_and_backup_safety.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/claude/CLAUDE.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/claude/skills/shellbrain-session-start/SKILL.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/claude/skills/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/AGENTS.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/SKILL.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/agents/openai.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/assets/shellbrain-large.svg +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/assets/shellbrain-small.svg +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/assets/shellbrain_logo.png +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/references/request-shapes.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-session-start/references/session-workflow.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-usage-review/agents/openai.yaml +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain-small.svg +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-usage-review/assets/shellbrain_logo.png +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/cursor/skills/shellbrain-session-start/SKILL.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/cursor/skills/shellbrain-usage-review/SKILL.md +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/analytics.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/analytics_diagnostics.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/analytics_queries.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/backup.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/destructive_guard.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/doctor.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/external_runtime.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/init.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/init_errors.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/instance_guard.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/machine_state.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/managed_runtime.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/privileges.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/repo_state.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/restore.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/admin/upgrade.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/cli/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/cli/handlers.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/cli/hydration.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/cli/main.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/cli/presenter_json.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/cli/schema_validation.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/engine.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/associations.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/episodes.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/evidence.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/experiences.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/instance_metadata.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/memories.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/metadata.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/registry.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/telemetry.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/utility.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/models/views.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/associations_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/episodes_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/evidence_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/experiences_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/memories_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/read_policy_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/telemetry_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/utility_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/semantic/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/semantic/keyword_retrieval_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/semantic/semantic_retrieval_repo.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/session.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/uow.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/embeddings/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/embeddings/local_provider.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/embeddings/query_vector_search.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/claude_code.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/codex.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/cursor.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/launcher.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/normalization.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/poller.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/poller_lock.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/source_discovery.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/episodes/tool_filter.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/identity/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/identity/claude_hook_install.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/identity/claude_runtime.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/identity/codex_runtime.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/identity/compatibility.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/identity/resolver.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/metrics/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/metrics/artifacts.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/metrics/browser.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/metrics/queries.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/metrics/render_html.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/metrics/service.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/onboarding/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/onboarding/host_assets.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/session_state/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/session_state/file_store.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/telemetry/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/telemetry/operation_summary.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/telemetry/session_selection.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/telemetry/sync_summary.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/validation/__init__.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/validation/integrity_validation.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/validation/semantic_validation.py +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/setup.cfg +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/shellbrain.egg-info/SOURCES.txt +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/shellbrain.egg-info/dependency_links.txt +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/shellbrain.egg-info/entry_points.txt +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/shellbrain.egg-info/requires.txt +0 -0
- {shellbrain-0.1.18 → shellbrain-0.1.20}/shellbrain.egg-info/top_level.txt +0 -0
|
@@ -16,8 +16,8 @@ _MID_SESSION_MINUTES = 15
|
|
|
16
16
|
_STARTUP_WINDOW_MINUTES = 10
|
|
17
17
|
_CHECKPOINT_TO_READ_WINDOW_MINUTES = 10
|
|
18
18
|
_UTILITY_VOTE_UPDATE_TYPES = {"utility_vote", "utility_vote_batch"}
|
|
19
|
-
_SB_READ_RE = re.compile(r"
|
|
20
|
-
_SB_SKIP_RE = re.compile(r"
|
|
19
|
+
_SB_READ_RE = re.compile(r"SB:\s*read\s*\|\s*([^|\n\r]+?)\s*\|\s*([^|\n\r]+?)\s*\|\s*([^|\n\r]+?)\s*\|\s*([^\n\r]+)")
|
|
20
|
+
_SB_SKIP_RE = re.compile(r"SB:\s*skip\s*\|\s*([^\n\r]+)")
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def build_agent_behavior_report(
|
|
@@ -207,9 +207,9 @@ def _parse_checkpoint_lines(
|
|
|
207
207
|
checkpoints: list[dict[str, object]] = []
|
|
208
208
|
for line in content.splitlines():
|
|
209
209
|
stripped = line.strip()
|
|
210
|
-
read_match = _SB_READ_RE.
|
|
210
|
+
read_match = _SB_READ_RE.search(stripped)
|
|
211
211
|
if read_match:
|
|
212
|
-
payload = [part.strip() for part in read_match.
|
|
212
|
+
payload = [part.strip() for part in read_match.groups()]
|
|
213
213
|
signature = " | ".join(payload)
|
|
214
214
|
checkpoints.append(
|
|
215
215
|
{
|
|
@@ -220,12 +220,12 @@ def _parse_checkpoint_lines(
|
|
|
220
220
|
"action": "read",
|
|
221
221
|
"signature": signature,
|
|
222
222
|
"reason": None,
|
|
223
|
-
"raw_line":
|
|
223
|
+
"raw_line": read_match.group(0).strip(),
|
|
224
224
|
"created_at": created_at,
|
|
225
225
|
}
|
|
226
226
|
)
|
|
227
227
|
continue
|
|
228
|
-
skip_match = _SB_SKIP_RE.
|
|
228
|
+
skip_match = _SB_SKIP_RE.search(stripped)
|
|
229
229
|
if skip_match:
|
|
230
230
|
payload = [part.strip() for part in skip_match.group(1).split("|")]
|
|
231
231
|
checkpoints.append(
|
|
@@ -237,7 +237,7 @@ def _parse_checkpoint_lines(
|
|
|
237
237
|
"action": "skip",
|
|
238
238
|
"signature": None,
|
|
239
239
|
"reason": " | ".join(payload),
|
|
240
|
-
"raw_line":
|
|
240
|
+
"raw_line": skip_match.group(0).strip(),
|
|
241
241
|
"created_at": created_at,
|
|
242
242
|
}
|
|
243
243
|
)
|
|
@@ -141,11 +141,24 @@ def _open_interactive_stream() -> tuple[TextIO, TextIO, TextIO | None]:
|
|
|
141
141
|
|
|
142
142
|
if sys.stdin.isatty() and sys.stdout.isatty():
|
|
143
143
|
return sys.stdin, sys.stdout, None
|
|
144
|
+
writer = _resolve_interactive_writer()
|
|
145
|
+
if sys.stdin.isatty():
|
|
146
|
+
return sys.stdin, writer, None
|
|
144
147
|
try:
|
|
145
|
-
handle = Path("/dev/tty").open("r
|
|
148
|
+
handle = Path("/dev/tty").open("r", encoding="utf-8")
|
|
146
149
|
except OSError as exc:
|
|
147
150
|
raise InitDependencyError(_NON_INTERACTIVE_MESSAGE) from exc
|
|
148
|
-
return handle,
|
|
151
|
+
return handle, writer, handle
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def _resolve_interactive_writer() -> TextIO:
|
|
155
|
+
"""Return one visible terminal writer for prompts when available."""
|
|
156
|
+
|
|
157
|
+
if sys.stderr.isatty():
|
|
158
|
+
return sys.stderr
|
|
159
|
+
if sys.stdout.isatty():
|
|
160
|
+
return sys.stdout
|
|
161
|
+
raise InitDependencyError(_NON_INTERACTIVE_MESSAGE)
|
|
149
162
|
|
|
150
163
|
|
|
151
164
|
def _close_interactive_stream(handle: TextIO | None) -> None:
|
|
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.18 → shellbrain-0.1.20}/app/core/policies/read_policy/context_pack_builder.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
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260226_0001_initial_schema.py
RENAMED
|
File without changes
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/migrations/versions/20260312_0002_add_hard_invariants.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
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/onboarding_assets/codex/shellbrain-usage-review/SKILL.md
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
|
|
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.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/associations_repo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/experiences_repo.py
RENAMED
|
File without changes
|
|
File without changes
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/relational/read_policy_repo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/semantic/keyword_retrieval_repo.py
RENAMED
|
File without changes
|
{shellbrain-0.1.18 → shellbrain-0.1.20}/app/periphery/db/repos/semantic/semantic_retrieval_repo.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
|
|
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
|