brian-core 2.0.0rc1__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.
- brian_core-2.0.0rc1/.gitignore +86 -0
- brian_core-2.0.0rc1/PKG-INFO +143 -0
- brian_core-2.0.0rc1/README.md +103 -0
- brian_core-2.0.0rc1/architecture/evolutions/0003-durable-kernel.patch +1061 -0
- brian_core-2.0.0rc1/architecture/evolutions/0004-agent-provider-context.patch +8193 -0
- brian_core-2.0.0rc1/architecture/evolutions/0005-tools-hitl-security.patch +2531 -0
- brian_core-2.0.0rc1/architecture/evolutions/0006-context-sessions-memory.patch +1076 -0
- brian_core-2.0.0rc1/architecture/evolutions/0008-api-lifecycle.patch +891 -0
- brian_core-2.0.0rc1/architecture/evolutions/0009-automation-workflows.patch +8589 -0
- brian_core-2.0.0rc1/architecture/evolutions/0010-extensions-mcp.patch +19758 -0
- brian_core-2.0.0rc1/architecture/evolutions/0011-hardening.patch +832 -0
- brian_core-2.0.0rc1/architecture/evolutions/0013-standalone-hosts.patch +290 -0
- brian_core-2.0.0rc1/architecture/mari-package-baseline.manifest.json +1 -0
- brian_core-2.0.0rc1/docs/CAPABILITIES.md +217 -0
- brian_core-2.0.0rc1/docs/README.md +16 -0
- brian_core-2.0.0rc1/docs/architecture-media-and-rag.md +160 -0
- brian_core-2.0.0rc1/docs/architecture-workbench.md +112 -0
- brian_core-2.0.0rc1/docs/brian-operator.md +451 -0
- brian_core-2.0.0rc1/docs/security-2026-07-27-voice-tool-rce.md +104 -0
- brian_core-2.0.0rc1/pyproject.toml +152 -0
- brian_core-2.0.0rc1/scripts/animate_bellcurve.py +77 -0
- brian_core-2.0.0rc1/scripts/apply_voice_agent_config.py +225 -0
- brian_core-2.0.0rc1/scripts/build_package_architecture.py +374 -0
- brian_core-2.0.0rc1/scripts/generate-brian-clients.py +283 -0
- brian_core-2.0.0rc1/scripts/install.sh +13 -0
- brian_core-2.0.0rc1/scripts/live_provider_smoke.py +142 -0
- brian_core-2.0.0rc1/scripts/notify.py +42 -0
- brian_core-2.0.0rc1/scripts/run_contract_profile.py +749 -0
- brian_core-2.0.0rc1/scripts/ttg_chat_client.py +195 -0
- brian_core-2.0.0rc1/scripts/verify_background_jobs_install.py +216 -0
- brian_core-2.0.0rc1/scripts/verify_distribution_artifacts.py +472 -0
- brian_core-2.0.0rc1/scripts/verify_fresh_install.py +339 -0
- brian_core-2.0.0rc1/scripts/verify_heartbeat_install.py +245 -0
- brian_core-2.0.0rc1/scripts/wp3_fault_worker.py +103 -0
- brian_core-2.0.0rc1/src/agent_api/__init__.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/app.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/auth.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/background_tasks.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/converters.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_chat.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_discovery.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_hooks.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_jobs.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_responses.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_runs.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_sessions.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_skills.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_sms.py +6 -0
- brian_core-2.0.0rc1/src/agent_api/routes_v2.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/__init__.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/async_bridge.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/codenames.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/__init__.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/manager.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/overflow.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/prompts.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/pruning.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/settings.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/summarization.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/tokens.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/context_management/types.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/conversation_title.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/hitl_policy.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/io_bridge.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/__init__.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/contracts.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/engine.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/events.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/interrupts.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/provider_gateway.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/repository.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/run_context.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/service.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/kernel/tool_executor.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/lessons.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/lifecycle.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/model.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/observability.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/platform_contracts.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/process_sessions.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/prompt_context.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/response_store.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/run_profiles.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/run_store.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/sandbox.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/session_recall.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/session_runner.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/session_save_policy.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/session_tree.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/skill_security.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/skill_store.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/soul_store.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/storage.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/tool_scope.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/voice_prompt.py +6 -0
- brian_core-2.0.0rc1/src/agent_runtime/workflows.py +6 -0
- brian_core-2.0.0rc1/src/api/__init__.py +6 -0
- brian_core-2.0.0rc1/src/api/base.py +6 -0
- brian_core-2.0.0rc1/src/api/client.py +6 -0
- brian_core-2.0.0rc1/src/api/content.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/__init__.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/anthropic.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/bedrock.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/completion.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/google.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/lmstudio.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/openai_compatible.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/registry.py +6 -0
- brian_core-2.0.0rc1/src/api/providers/responses.py +6 -0
- brian_core-2.0.0rc1/src/brian_client/__init__.py +6 -0
- brian_core-2.0.0rc1/src/brian_client/client.py +6 -0
- brian_core-2.0.0rc1/src/brian_core/README.md +7 -0
- brian_core-2.0.0rc1/src/brian_core/__init__.py +5 -0
- brian_core-2.0.0rc1/src/brian_core/__main__.py +6 -0
- brian_core-2.0.0rc1/src/brian_core/_version.py +3 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/__init__.py +6 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/app.py +395 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/approval_link.py +178 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/auth.py +55 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/background_tasks.py +240 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/converters.py +93 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/loop_watchdog.py +86 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_approval.py +164 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_artifacts.py +178 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_bench.py +674 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_capabilities.py +56 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_chat.py +899 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_discovery.py +473 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_hooks.py +123 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_jobs.py +184 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_media.py +177 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_projects.py +332 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_public_media.py +54 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_responses.py +308 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_runs.py +1312 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_sessions.py +638 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_skills.py +348 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_sms.py +213 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_v2.py +475 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/routes_workflow_defs.py +85 -0
- brian_core-2.0.0rc1/src/brian_core/agent_api/webauth.py +1879 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/__init__.py +10 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/agent_tracing.py +193 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/async_bridge.py +160 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/codenames.py +52 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/computer_session.py +226 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/__init__.py +29 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/manager.py +363 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/overflow.py +240 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/prompts.py +70 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/pruning.py +159 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/settings.py +59 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/summarization.py +358 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/tokens.py +273 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/types.py +177 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/conversation_title.py +123 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/daemon_pool.py +50 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/embeddings.py +295 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/extension_safety.py +326 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/fork_runner.py +347 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/gen_ai_semconv.py +176 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/hitl_policy.py +406 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/interrupt_reaper.py +70 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/io_bridge.py +180 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/__init__.py +38 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/approvals.py +197 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/contracts.py +356 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/durable_execution.py +349 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/durable_journal.py +1186 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/engine.py +268 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/events.py +29 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/interrupts.py +38 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/provider_gateway.py +352 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/repository.py +1137 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/run_context.py +56 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/service.py +470 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/tool_executor.py +350 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/learning_graph.py +194 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/lessons.py +199 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/lifecycle.py +520 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/maintenance.py +247 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/memory_index.py +876 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/model.py +478 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/observability.py +769 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/platform_contracts.py +1310 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/process_launcher.py +77 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/process_sessions.py +1160 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/prompt_context.py +166 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/redaction.py +209 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/remote_runner.py +724 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/response_store.py +135 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/run_profiles.py +845 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/run_store.py +967 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/sandbox.py +453 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/schema.py +227 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_recall.py +415 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_runner.py +436 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_save_policy.py +136 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_tree.py +591 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/skill_security.py +145 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/skill_store.py +1438 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/soul_store.py +99 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/storage.py +335 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/tool_scope.py +165 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/vector_index.py +576 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_attach.py +325 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_controls.py +335 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_deferred.py +224 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_prompt.py +366 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_settings.py +164 -0
- brian_core-2.0.0rc1/src/brian_core/agent_runtime/workflows.py +2607 -0
- brian_core-2.0.0rc1/src/brian_core/api/__init__.py +0 -0
- brian_core-2.0.0rc1/src/brian_core/api/base.py +314 -0
- brian_core-2.0.0rc1/src/brian_core/api/cache_planner.py +214 -0
- brian_core-2.0.0rc1/src/brian_core/api/client.py +25 -0
- brian_core-2.0.0rc1/src/brian_core/api/content.py +213 -0
- brian_core-2.0.0rc1/src/brian_core/api/guided_toolcalls.py +242 -0
- brian_core-2.0.0rc1/src/brian_core/api/model_metadata.py +45 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/__init__.py +0 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/anthropic.py +949 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/bedrock.py +1575 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/completion.py +1431 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/google.py +934 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/lmstudio.py +40 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/ollama.py +52 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/openai_compatible.py +123 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/registry.py +540 -0
- brian_core-2.0.0rc1/src/brian_core/api/providers/responses.py +1612 -0
- brian_core-2.0.0rc1/src/brian_core/api/reasoning.py +188 -0
- brian_core-2.0.0rc1/src/brian_core/api/vision.py +258 -0
- brian_core-2.0.0rc1/src/brian_core/brian_client/__init__.py +15 -0
- brian_core-2.0.0rc1/src/brian_core/brian_client/client.py +178 -0
- brian_core-2.0.0rc1/src/brian_core/cli.py +882 -0
- brian_core-2.0.0rc1/src/brian_core/compat.py +78 -0
- brian_core-2.0.0rc1/src/brian_core/config.py +795 -0
- brian_core-2.0.0rc1/src/brian_core/contracts/__init__.py +5 -0
- brian_core-2.0.0rc1/src/brian_core/contracts/v1/__init__.py +40 -0
- brian_core-2.0.0rc1/src/brian_core/env_file.py +91 -0
- brian_core-2.0.0rc1/src/brian_core/first_run.py +81 -0
- brian_core-2.0.0rc1/src/brian_core/loop.py +1385 -0
- brian_core-2.0.0rc1/src/brian_core/openapi/platform-v2.json +5921 -0
- brian_core-2.0.0rc1/src/brian_core/provenance.json +7 -0
- brian_core-2.0.0rc1/src/brian_core/py.typed +0 -0
- brian_core-2.0.0rc1/src/brian_core/resources/hooks.example.json +63 -0
- brian_core-2.0.0rc1/src/brian_core/resources/mcp_servers.example.json +67 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/__init__.py +9 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/agent_runner.py +335 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/cli.py +19 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/command_runner.py +336 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/db.py +104 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/models.py +52 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/safety.py +93 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/service.py +422 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/store.py +838 -0
- brian_core-2.0.0rc1/src/brian_core/scheduler/triggers.py +47 -0
- brian_core-2.0.0rc1/src/brian_core/sdk.py +41 -0
- brian_core-2.0.0rc1/src/brian_core/skills/api_mapping/SKILL.md +18 -0
- brian_core-2.0.0rc1/src/brian_core/skills/code_review/SKILL.md +18 -0
- brian_core-2.0.0rc1/src/brian_core/skills/debugging/SKILL.md +19 -0
- brian_core-2.0.0rc1/src/brian_core/skills/docker_ops/SKILL.md +18 -0
- brian_core-2.0.0rc1/src/brian_core/skills/fact_checking/SKILL.md +18 -0
- brian_core-2.0.0rc1/src/brian_core/skills/git_workflow/SKILL.md +19 -0
- brian_core-2.0.0rc1/src/brian_core/skills/mcp_ops/SKILL.md +18 -0
- brian_core-2.0.0rc1/src/brian_core/skills/research/SKILL.md +18 -0
- brian_core-2.0.0rc1/src/brian_core/state.py +195 -0
- brian_core-2.0.0rc1/src/brian_core/tools/__init__.py +0 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/agent.py +491 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/coordination.py +294 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/fork.py +663 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/remote.py +949 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/send_message.py +116 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/swarm.py +455 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/tasks.py +248 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/team.py +298 -0
- brian_core-2.0.0rc1/src/brian_core/tools/agents/workflow.py +249 -0
- brian_core-2.0.0rc1/src/brian_core/tools/base.py +340 -0
- brian_core-2.0.0rc1/src/brian_core/tools/charts/__init__.py +22 -0
- brian_core-2.0.0rc1/src/brian_core/tools/charts/chart_command.py +148 -0
- brian_core-2.0.0rc1/src/brian_core/tools/charts/commands.json +97 -0
- brian_core-2.0.0rc1/src/brian_core/tools/charts/protocol.py +109 -0
- brian_core-2.0.0rc1/src/brian_core/tools/charts/session.py +158 -0
- brian_core-2.0.0rc1/src/brian_core/tools/charts/snapshot.py +95 -0
- brian_core-2.0.0rc1/src/brian_core/tools/crm/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/crm/ttgcrm.py +375 -0
- brian_core-2.0.0rc1/src/brian_core/tools/data/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/data/mongo.py +197 -0
- brian_core-2.0.0rc1/src/brian_core/tools/data/supabase.py +163 -0
- brian_core-2.0.0rc1/src/brian_core/tools/data/ttg_ledger.py +120 -0
- brian_core-2.0.0rc1/src/brian_core/tools/data/wp_db.py +181 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/agent_terminal.py +481 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/background_jobs.py +330 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/bash.py +364 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/cloudflare.py +283 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/computer.py +458 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/powershell.py +143 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/proc.py +76 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/python_interpreter.py +487 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/runpod.py +246 -0
- brian_core-2.0.0rc1/src/brian_core/tools/execution/ssh.py +316 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/edit.py +185 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/notebook.py +251 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/read.py +154 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/read_document.py +554 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/safe_effects.py +188 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/undo.py +134 -0
- brian_core-2.0.0rc1/src/brian_core/tools/files/write.py +174 -0
- brian_core-2.0.0rc1/src/brian_core/tools/interaction/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/interaction/ask_user.py +103 -0
- brian_core-2.0.0rc1/src/brian_core/tools/interaction/brief.py +71 -0
- brian_core-2.0.0rc1/src/brian_core/tools/mcp/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/mcp/client.py +1878 -0
- brian_core-2.0.0rc1/src/brian_core/tools/mcp/list_resources.py +115 -0
- brian_core-2.0.0rc1/src/brian_core/tools/mcp/read_resource.py +131 -0
- brian_core-2.0.0rc1/src/brian_core/tools/mcp/tool.py +377 -0
- brian_core-2.0.0rc1/src/brian_core/tools/media/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/media/image_gen.py +211 -0
- brian_core-2.0.0rc1/src/brian_core/tools/media/video_edit.py +239 -0
- brian_core-2.0.0rc1/src/brian_core/tools/media/video_extend.py +160 -0
- brian_core-2.0.0rc1/src/brian_core/tools/media/video_gen.py +296 -0
- brian_core-2.0.0rc1/src/brian_core/tools/planning/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/planning/plan_mode.py +119 -0
- brian_core-2.0.0rc1/src/brian_core/tools/planning/todo.py +82 -0
- brian_core-2.0.0rc1/src/brian_core/tools/planning/worktree.py +227 -0
- brian_core-2.0.0rc1/src/brian_core/tools/registry.py +872 -0
- brian_core-2.0.0rc1/src/brian_core/tools/search/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/search/glob.py +110 -0
- brian_core-2.0.0rc1/src/brian_core/tools/search/grep.py +219 -0
- brian_core-2.0.0rc1/src/brian_core/tools/search/tool_search.py +122 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/background_task.py +303 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/concierge.py +308 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/config.py +227 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/contacts.py +250 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/cron.py +476 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/fast_mode.py +161 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/fleet_memory_projection.py +54 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/heartbeat.py +1543 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/heartbeat_phase_runner.py +74 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/maintenance.py +138 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/memory.py +844 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/memory_promotion.py +465 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/model_bench.py +235 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/notify.py +737 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/skill.py +411 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/sleep.py +66 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/voice_call_control.py +211 -0
- brian_core-2.0.0rc1/src/brian_core/tools/system/voice_config.py +167 -0
- brian_core-2.0.0rc1/src/brian_core/tools/web/__init__.py +1 -0
- brian_core-2.0.0rc1/src/brian_core/tools/web/browser.py +701 -0
- brian_core-2.0.0rc1/src/brian_core/tools/web/fetch.py +182 -0
- brian_core-2.0.0rc1/src/brian_core/tools/web/search.py +194 -0
- brian_core-2.0.0rc1/src/brian_core/tui/__init__.py +9 -0
- brian_core-2.0.0rc1/src/brian_core/tui/app.py +914 -0
- brian_core-2.0.0rc1/src/brian_core/tui/app.tcss +251 -0
- brian_core-2.0.0rc1/src/brian_core/tui/chat.py +220 -0
- brian_core-2.0.0rc1/src/brian_core/tui/commands.py +93 -0
- brian_core-2.0.0rc1/src/brian_core/tui/events.py +42 -0
- brian_core-2.0.0rc1/src/brian_core/tui/modals.py +360 -0
- brian_core-2.0.0rc1/src/brian_core/tui/runner.py +77 -0
- brian_core-2.0.0rc1/src/brian_core/tui/widgets.py +497 -0
- brian_core-2.0.0rc1/src/brian_core/utils/__init__.py +0 -0
- brian_core-2.0.0rc1/src/brian_core/utils/artifacts.py +542 -0
- brian_core-2.0.0rc1/src/brian_core/utils/context.py +148 -0
- brian_core-2.0.0rc1/src/brian_core/utils/display.py +348 -0
- brian_core-2.0.0rc1/src/brian_core/utils/env_compat.py +44 -0
- brian_core-2.0.0rc1/src/brian_core/utils/file_history.py +193 -0
- brian_core-2.0.0rc1/src/brian_core/utils/hooks.py +291 -0
- brian_core-2.0.0rc1/src/brian_core/utils/media_providers.py +1401 -0
- brian_core-2.0.0rc1/src/brian_core/utils/media_urls.py +70 -0
- brian_core-2.0.0rc1/src/brian_core/utils/ocr.py +199 -0
- brian_core-2.0.0rc1/src/brian_core/utils/project_documents.py +188 -0
- brian_core-2.0.0rc1/src/brian_core/utils/projects.py +248 -0
- brian_core-2.0.0rc1/src/brian_core/utils/ring_buffer.py +115 -0
- brian_core-2.0.0rc1/src/brian_core/utils/session.py +850 -0
- brian_core-2.0.0rc1/src/brian_core/utils/ssh_hosts.py +270 -0
- brian_core-2.0.0rc1/src/brian_core/utils/ttgcrm_client.py +182 -0
- brian_core-2.0.0rc1/src/brian_core/utils/video_edit.py +442 -0
- brian_core-2.0.0rc1/src/brian_core/utils/workflow_definitions.py +184 -0
- brian_core-2.0.0rc1/src/brian_core/utils/workspace.py +333 -0
- brian_core-2.0.0rc1/src/brian_core/utils/workspace_backup.py +131 -0
- brian_core-2.0.0rc1/src/config.py +6 -0
- brian_core-2.0.0rc1/src/loop.py +6 -0
- brian_core-2.0.0rc1/src/main.py +11 -0
- brian_core-2.0.0rc1/src/scheduler/__init__.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/agent_runner.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/cli.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/command_runner.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/db.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/models.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/service.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/store.py +6 -0
- brian_core-2.0.0rc1/src/scheduler/triggers.py +6 -0
- brian_core-2.0.0rc1/src/state.py +6 -0
- brian_core-2.0.0rc1/src/tools/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/agent.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/coordination.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/fork.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/remote.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/send_message.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/swarm.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/tasks.py +6 -0
- brian_core-2.0.0rc1/src/tools/agents/team.py +6 -0
- brian_core-2.0.0rc1/src/tools/base.py +6 -0
- brian_core-2.0.0rc1/src/tools/charts/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/charts/chart_command.py +6 -0
- brian_core-2.0.0rc1/src/tools/charts/protocol.py +6 -0
- brian_core-2.0.0rc1/src/tools/charts/session.py +6 -0
- brian_core-2.0.0rc1/src/tools/charts/snapshot.py +6 -0
- brian_core-2.0.0rc1/src/tools/execution/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/execution/agent_terminal.py +6 -0
- brian_core-2.0.0rc1/src/tools/execution/background_jobs.py +6 -0
- brian_core-2.0.0rc1/src/tools/execution/bash.py +6 -0
- brian_core-2.0.0rc1/src/tools/execution/powershell.py +6 -0
- brian_core-2.0.0rc1/src/tools/execution/proc.py +6 -0
- brian_core-2.0.0rc1/src/tools/files/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/files/edit.py +6 -0
- brian_core-2.0.0rc1/src/tools/files/notebook.py +6 -0
- brian_core-2.0.0rc1/src/tools/files/read.py +6 -0
- brian_core-2.0.0rc1/src/tools/files/undo.py +6 -0
- brian_core-2.0.0rc1/src/tools/files/write.py +6 -0
- brian_core-2.0.0rc1/src/tools/interaction/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/interaction/ask_user.py +6 -0
- brian_core-2.0.0rc1/src/tools/interaction/brief.py +6 -0
- brian_core-2.0.0rc1/src/tools/mcp/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/mcp/client.py +6 -0
- brian_core-2.0.0rc1/src/tools/mcp/list_resources.py +6 -0
- brian_core-2.0.0rc1/src/tools/mcp/read_resource.py +6 -0
- brian_core-2.0.0rc1/src/tools/mcp/tool.py +6 -0
- brian_core-2.0.0rc1/src/tools/planning/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/planning/plan_mode.py +6 -0
- brian_core-2.0.0rc1/src/tools/planning/todo.py +6 -0
- brian_core-2.0.0rc1/src/tools/planning/worktree.py +6 -0
- brian_core-2.0.0rc1/src/tools/registry.py +6 -0
- brian_core-2.0.0rc1/src/tools/search/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/search/glob.py +6 -0
- brian_core-2.0.0rc1/src/tools/search/grep.py +6 -0
- brian_core-2.0.0rc1/src/tools/search/tool_search.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/background_task.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/config.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/contacts.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/cron.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/fast_mode.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/fleet_memory_projection.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/heartbeat.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/memory.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/memory_promotion.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/notify.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/skill.py +6 -0
- brian_core-2.0.0rc1/src/tools/system/sleep.py +6 -0
- brian_core-2.0.0rc1/src/tools/web/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tools/web/fetch.py +6 -0
- brian_core-2.0.0rc1/src/tools/web/search.py +6 -0
- brian_core-2.0.0rc1/src/tui/__init__.py +6 -0
- brian_core-2.0.0rc1/src/tui/app.py +6 -0
- brian_core-2.0.0rc1/src/tui/chat.py +6 -0
- brian_core-2.0.0rc1/src/tui/commands.py +6 -0
- brian_core-2.0.0rc1/src/tui/events.py +6 -0
- brian_core-2.0.0rc1/src/tui/modals.py +6 -0
- brian_core-2.0.0rc1/src/tui/runner.py +6 -0
- brian_core-2.0.0rc1/src/tui/widgets.py +6 -0
- brian_core-2.0.0rc1/src/utils/__init__.py +6 -0
- brian_core-2.0.0rc1/src/utils/context.py +6 -0
- brian_core-2.0.0rc1/src/utils/display.py +6 -0
- brian_core-2.0.0rc1/src/utils/file_history.py +6 -0
- brian_core-2.0.0rc1/src/utils/hooks.py +6 -0
- brian_core-2.0.0rc1/src/utils/ring_buffer.py +6 -0
- brian_core-2.0.0rc1/src/utils/session.py +6 -0
- brian_core-2.0.0rc1/tests/__init__.py +1 -0
- brian_core-2.0.0rc1/tests/agent_api/test_learning_graph_route.py +46 -0
- brian_core-2.0.0rc1/tests/agent_api/test_model_capabilities_route.py +116 -0
- brian_core-2.0.0rc1/tests/agent_api/test_otel_lifespan.py +106 -0
- brian_core-2.0.0rc1/tests/agent_runtime/kernel/test_durable_journal_recycled_ids.py +157 -0
- brian_core-2.0.0rc1/tests/agent_runtime/kernel/test_provider_gateway.py +595 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_container_sandbox.py +75 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_daemon_pool.py +30 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_durable_subagents.py +222 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_ensure_tools_registered.py +91 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_hitl_bypass_freeze.py +73 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_learning_graph.py +51 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_memory_index.py +389 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_model_selection.py +601 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_prompt_cache_stability.py +157 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_span_shaping.py +562 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_token_calibration.py +125 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_agent_isolation.py +314 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_crash_recovery.py +148 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_edge_prompts.py +156 -0
- brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_history_handoff.py +243 -0
- brian_core-2.0.0rc1/tests/api/test_anthropic_provider.py +1098 -0
- brian_core-2.0.0rc1/tests/api/test_base_provider_contract.py +102 -0
- brian_core-2.0.0rc1/tests/api/test_bedrock_provider.py +1158 -0
- brian_core-2.0.0rc1/tests/api/test_cache_planner.py +222 -0
- brian_core-2.0.0rc1/tests/api/test_completion_guided.py +402 -0
- brian_core-2.0.0rc1/tests/api/test_completion_provider.py +949 -0
- brian_core-2.0.0rc1/tests/api/test_google_provider.py +1212 -0
- brian_core-2.0.0rc1/tests/api/test_guided_toolcalls.py +209 -0
- brian_core-2.0.0rc1/tests/api/test_multimodal_content.py +121 -0
- brian_core-2.0.0rc1/tests/api/test_openai_compatible_providers.py +430 -0
- brian_core-2.0.0rc1/tests/api/test_provider_client.py +111 -0
- brian_core-2.0.0rc1/tests/api/test_provider_config.py +168 -0
- brian_core-2.0.0rc1/tests/api/test_provider_registry.py +487 -0
- brian_core-2.0.0rc1/tests/api/test_providers.py +35 -0
- brian_core-2.0.0rc1/tests/api/test_reasoning.py +88 -0
- brian_core-2.0.0rc1/tests/api/test_reasoning_request_shaping.py +258 -0
- brian_core-2.0.0rc1/tests/api/test_responses_provider.py +1860 -0
- brian_core-2.0.0rc1/tests/api/test_stream_edge_case_matrix.py +1819 -0
- brian_core-2.0.0rc1/tests/api/test_toolcall_containment.py +370 -0
- brian_core-2.0.0rc1/tests/api/test_vision_gating.py +374 -0
- brian_core-2.0.0rc1/tests/conftest.py +4 -0
- brian_core-2.0.0rc1/tests/contracts/cases/__init__.py +0 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/__init__.py +0 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_026_agent_terminal.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_027_fork_agent.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_042_session_trees.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_043_memory_promotion.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_049_checkpoints.py +13 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_052_reconciliation.py +13 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_054_run_event_streaming.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_055_run_event_consumer.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_062_workflows.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_063_lifecycle_policy.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_064_event_sinks.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_065_recovery_workers.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_066_observability.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_072_run_profiles.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_075_lifecycle_policy.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_077_observability_tracing.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_078_workflows.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_079_background_jobs_tool.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_087_diagnostics_health.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/__init__.py +0 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_001_cli_entry.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_002_tui_entry.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_003_api_startup.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_004_scheduler_service.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_005_heartbeat.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_006_http_api_server.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_007_api_authentication.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_008_capability_discovery.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_009_model_discovery.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_010_toolset_and_mcp_discovery.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_014_agent_runs_management.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_029_tool_registry.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_030_durable_execution.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_031_hitl_interruptions.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_032_permission_scope.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_033_sandboxing.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_034_security_scanning.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_035_data_redaction.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_036_session_persistence.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_037_session_save_policy.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_038_memory_tool.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_039_soul_md.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_040_prompt_context.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_041_context_management.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_047_fault_tolerant_execution_kernel.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_048_lifecycle_policy_engine.py +16 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_050_persistence.py +13 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_051_cancellation.py +13 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_053_concurrency.py +13 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_057_scheduler_loop.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_058_command_runner.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_059_agent_runner.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_060_webhooks_inbound.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_061_webhooks_outbound.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_067_skills_lifecycle.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_068_mcp_integration.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_069_remote_agents.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_070_hitl_policy.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_071_durable_execution.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_073_platform_contracts.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_074_scheduler_service.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_076_event_sinks_webhooks.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_080_heartbeat_tool.py +18 -0
- brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_090_tool_access_modes.py +11 -0
- brian_core-2.0.0rc1/tests/contracts/evidence.schema.json +390 -0
- brian_core-2.0.0rc1/tests/contracts/manifest.json +4613 -0
- brian_core-2.0.0rc1/tests/contracts/test_contract_profile_runner.py +481 -0
- brian_core-2.0.0rc1/tests/contracts/test_distribution_artifacts.py +235 -0
- brian_core-2.0.0rc1/tests/contracts/test_evidence_schema.py +186 -0
- brian_core-2.0.0rc1/tests/contracts/test_package_architecture.py +338 -0
- brian_core-2.0.0rc1/tests/e2e/mock_provider.py +46 -0
- brian_core-2.0.0rc1/tests/e2e/test_advanced_loop.py +129 -0
- brian_core-2.0.0rc1/tests/e2e/test_agent_loop.py +103 -0
- brian_core-2.0.0rc1/tests/e2e/test_cli.py +35 -0
- brian_core-2.0.0rc1/tests/e2e/test_permission_modes.py +131 -0
- brian_core-2.0.0rc1/tests/e2e/test_tui.py +168 -0
- brian_core-2.0.0rc1/tests/real_path/__init__.py +0 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_026_agent_terminal.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_027_fork_agent.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_067_skills_lifecycle.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_068_mcp_integration.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_069_remote_agents.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_070_hitl_policy.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_071_durable_execution.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_072_run_profiles.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_073_platform_contracts.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp11-hardening/test_cap_087_diagnostics_health.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp11-hardening/test_cap_090_tool_access_modes.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_001_cli_entry.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_002_tui_entry.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_003_api_startup.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_004_scheduler_service.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_005_heartbeat.py +14 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/__init__.py +0 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_047_fault_tolerant_execution_kernel.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_049_checkpoints.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_050_persistence.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_051_cancellation.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_052_reconciliation.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_053_concurrency.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_029_tool_registry.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_030_durable_execution.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_031_hitl_interruptions.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_032_permission_scope.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_033_sandboxing.py +11 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_034_security_scanning.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_035_data_redaction.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_036_session_persistence.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_037_session_save_policy.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_038_memory_tool.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_039_soul_md.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_040_prompt_context.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_041_context_management.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_042_session_trees.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_043_memory_promotion.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_006_http_api_server.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_007_api_authentication.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_008_capability_discovery.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_009_model_discovery.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_010_toolset_and_mcp_discovery.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_014_agent_runs_management.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_048_lifecycle_policy_engine.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_054_run_event_streaming.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_055_run_event_consumer.py +16 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_057_scheduler_loop.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_058_command_runner.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_059_agent_runner.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_060_webhooks_inbound.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_061_webhooks_outbound.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_062_workflows.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_063_lifecycle_policy.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_064_event_sinks.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_065_recovery_workers.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_066_observability.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_074_scheduler_service.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_075_lifecycle_policy.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_076_event_sinks_webhooks.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_077_observability_tracing.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_078_workflows.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_079_background_jobs_tool.py +18 -0
- brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_080_heartbeat_tool.py +18 -0
- brian_core-2.0.0rc1/tests/test_api_bench.py +148 -0
- brian_core-2.0.0rc1/tests/test_api_chat.py +932 -0
- brian_core-2.0.0rc1/tests/test_api_discovery.py +37 -0
- brian_core-2.0.0rc1/tests/test_api_jobs_hooks.py +56 -0
- brian_core-2.0.0rc1/tests/test_api_responses.py +58 -0
- brian_core-2.0.0rc1/tests/test_api_runs.py +101 -0
- brian_core-2.0.0rc1/tests/test_api_session_search.py +102 -0
- brian_core-2.0.0rc1/tests/test_api_sessions.py +88 -0
- brian_core-2.0.0rc1/tests/test_api_sms.py +229 -0
- brian_core-2.0.0rc1/tests/test_api_webauth.py +200 -0
- brian_core-2.0.0rc1/tests/test_api_worker_pool.py +45 -0
- brian_core-2.0.0rc1/tests/test_approval_links.py +107 -0
- brian_core-2.0.0rc1/tests/test_async_bridge.py +47 -0
- brian_core-2.0.0rc1/tests/test_background_tasks.py +296 -0
- brian_core-2.0.0rc1/tests/test_bash_timeout_handoff.py +104 -0
- brian_core-2.0.0rc1/tests/test_brian_home.py +61 -0
- brian_core-2.0.0rc1/tests/test_browser_devtools.py +123 -0
- brian_core-2.0.0rc1/tests/test_cache_compaction_refresh.py +64 -0
- brian_core-2.0.0rc1/tests/test_cache_replay_benchmark.py +213 -0
- brian_core-2.0.0rc1/tests/test_cli_ensure_config.py +137 -0
- brian_core-2.0.0rc1/tests/test_cli_help_without_env.py +54 -0
- brian_core-2.0.0rc1/tests/test_cloudflare_tool.py +294 -0
- brian_core-2.0.0rc1/tests/test_compaction_persistence.py +122 -0
- brian_core-2.0.0rc1/tests/test_computer_session.py +138 -0
- brian_core-2.0.0rc1/tests/test_computer_tool.py +157 -0
- brian_core-2.0.0rc1/tests/test_concierge.py +194 -0
- brian_core-2.0.0rc1/tests/test_converter_roles.py +42 -0
- brian_core-2.0.0rc1/tests/test_crm_settings_api.py +164 -0
- brian_core-2.0.0rc1/tests/test_data_tools.py +199 -0
- brian_core-2.0.0rc1/tests/test_exit_hitl.py +34 -0
- brian_core-2.0.0rc1/tests/test_first_run.py +80 -0
- brian_core-2.0.0rc1/tests/test_generic_core_configuration.py +111 -0
- brian_core-2.0.0rc1/tests/test_hitl_policy.py +51 -0
- brian_core-2.0.0rc1/tests/test_interrupt_reaper.py +173 -0
- brian_core-2.0.0rc1/tests/test_loop_hook_failures.py +126 -0
- brian_core-2.0.0rc1/tests/test_loop_invalid_toolcalls.py +164 -0
- brian_core-2.0.0rc1/tests/test_loop_never_parallel.py +36 -0
- brian_core-2.0.0rc1/tests/test_loop_no_progress_guard.py +287 -0
- brian_core-2.0.0rc1/tests/test_loop_parallel_context.py +75 -0
- brian_core-2.0.0rc1/tests/test_loop_reasoning_replay.py +109 -0
- brian_core-2.0.0rc1/tests/test_loop_runtime_integration.py +130 -0
- brian_core-2.0.0rc1/tests/test_loop_stream_catchup.py +145 -0
- brian_core-2.0.0rc1/tests/test_loop_stream_preemption.py +226 -0
- brian_core-2.0.0rc1/tests/test_loop_tool_scope.py +191 -0
- brian_core-2.0.0rc1/tests/test_loop_transient_stream_retry.py +86 -0
- brian_core-2.0.0rc1/tests/test_maintenance.py +156 -0
- brian_core-2.0.0rc1/tests/test_mcp_concurrency_fix.py +228 -0
- brian_core-2.0.0rc1/tests/test_mcp_config.py +92 -0
- brian_core-2.0.0rc1/tests/test_mcp_watchdog.py +167 -0
- brian_core-2.0.0rc1/tests/test_media_i2v.py +267 -0
- brian_core-2.0.0rc1/tests/test_model_bench_tool.py +104 -0
- brian_core-2.0.0rc1/tests/test_notify_calls.py +184 -0
- brian_core-2.0.0rc1/tests/test_overflow_signatures.py +270 -0
- brian_core-2.0.0rc1/tests/test_response_store.py +33 -0
- brian_core-2.0.0rc1/tests/test_run_status_redaction_guard.py +69 -0
- brian_core-2.0.0rc1/tests/test_run_store.py +28 -0
- brian_core-2.0.0rc1/tests/test_runpod_tool.py +291 -0
- brian_core-2.0.0rc1/tests/test_runtime_model.py +19 -0
- brian_core-2.0.0rc1/tests/test_scheduler_command_runner.py +37 -0
- brian_core-2.0.0rc1/tests/test_scheduler_service.py +79 -0
- brian_core-2.0.0rc1/tests/test_scheduler_store.py +52 -0
- brian_core-2.0.0rc1/tests/test_sdk.py +68 -0
- brian_core-2.0.0rc1/tests/test_session_persistence.py +180 -0
- brian_core-2.0.0rc1/tests/test_session_save_policy.py +65 -0
- brian_core-2.0.0rc1/tests/test_skill_github_sync.py +44 -0
- brian_core-2.0.0rc1/tests/test_skill_management.py +73 -0
- brian_core-2.0.0rc1/tests/test_skill_security.py +23 -0
- brian_core-2.0.0rc1/tests/test_soul_prompt.py +49 -0
- brian_core-2.0.0rc1/tests/test_ssh_hosts_api.py +182 -0
- brian_core-2.0.0rc1/tests/test_ssh_tool.py +228 -0
- brian_core-2.0.0rc1/tests/test_tool_execution_deadline.py +54 -0
- brian_core-2.0.0rc1/tests/test_ttgcrm_tools.py +199 -0
- brian_core-2.0.0rc1/tests/test_tui_model_switch.py +368 -0
- brian_core-2.0.0rc1/tests/test_video_edit.py +200 -0
- brian_core-2.0.0rc1/tests/test_video_pending_resume.py +155 -0
- brian_core-2.0.0rc1/tests/test_voice_attach.py +391 -0
- brian_core-2.0.0rc1/tests/test_voice_config_tool.py +134 -0
- brian_core-2.0.0rc1/tests/test_voice_controls.py +327 -0
- brian_core-2.0.0rc1/tests/test_voice_settings_api.py +246 -0
- brian_core-2.0.0rc1/tests/test_voice_tool_scope.py +196 -0
- brian_core-2.0.0rc1/tests/test_workspace.py +139 -0
- brian_core-2.0.0rc1/tests/test_workspace_api.py +99 -0
- brian_core-2.0.0rc1/tests/test_workspace_notes.py +158 -0
- brian_core-2.0.0rc1/tests/tools/test_execution_tools.py +23 -0
- brian_core-2.0.0rc1/tests/tools/test_file_tools.py +51 -0
- brian_core-2.0.0rc1/tests/tools/test_file_write_artifacts.py +67 -0
- brian_core-2.0.0rc1/tests/tools/test_heartbeat_reflection.py +210 -0
- brian_core-2.0.0rc1/tests/tools/test_memory_tool.py +192 -0
- brian_core-2.0.0rc1/tests/tools/test_memory_tool_index.py +222 -0
- brian_core-2.0.0rc1/tests/tools/test_python_interpreter_files.py +133 -0
- brian_core-2.0.0rc1/tests/tools/test_read_document.py +394 -0
- brian_core-2.0.0rc1/tests/tools/test_swarm_tool.py +166 -0
- brian_core-2.0.0rc1/tests/tools/test_system_tools.py +38 -0
- brian_core-2.0.0rc1/tests/tools/test_team_tool.py +43 -0
- brian_core-2.0.0rc1/tests/tui/test_loop_guard_and_guided.py +106 -0
- brian_core-2.0.0rc1/tests/tui/test_sidebar.py +125 -0
- brian_core-2.0.0rc1/tests/utils/test_display_loop_guard.py +58 -0
- brian_core-2.0.0rc1/tests/utils/test_env_compat.py +41 -0
- brian_core-2.0.0rc1/tests/utils/test_session.py +55 -0
- brian_core-2.0.0rc1/tests/utils/test_session_cleanup.py +35 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_agent_terminal.py +205 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_durable_execution.py +619 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_fork_agent.py +352 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_hitl_policy.py +663 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_mcp_integration.py +545 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_platform_contracts.py +520 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_real_path.py +513 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_remote_agents.py +459 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_run_profiles.py +536 -0
- brian_core-2.0.0rc1/tests/wp10_cases/case_skills_lifecycle.py +333 -0
- brian_core-2.0.0rc1/tests/wp10_cases/wp10_installed_probe.py +380 -0
- brian_core-2.0.0rc1/tests/wp10_extensions_mcp_contract_harness.py +241 -0
- brian_core-2.0.0rc1/tests/wp11_cases/case_hardening.py +443 -0
- brian_core-2.0.0rc1/tests/wp11_cases/case_real_path.py +272 -0
- brian_core-2.0.0rc1/tests/wp11_cases/wp11_installed_probe.py +138 -0
- brian_core-2.0.0rc1/tests/wp11_hardening_contract_harness.py +243 -0
- brian_core-2.0.0rc1/tests/wp13_cases/case_real_path.py +130 -0
- brian_core-2.0.0rc1/tests/wp13_cases/case_standalone_hosts.py +276 -0
- brian_core-2.0.0rc1/tests/wp13_cases/wp13_installed_probe.py +483 -0
- brian_core-2.0.0rc1/tests/wp13_standalone_hosts_contract_harness.py +288 -0
- brian_core-2.0.0rc1/tests/wp3_kernel_contract_harness.py +501 -0
- brian_core-2.0.0rc1/tests/wp5_tools_hitl_security_contract_harness.py +818 -0
- brian_core-2.0.0rc1/tests/wp6_context_sessions_memory_contract_harness.py +1120 -0
- brian_core-2.0.0rc1/tests/wp8_api_lifecycle_contract_harness.py +2028 -0
- brian_core-2.0.0rc1/tests/wp9_automation_workflows_contract_harness.py +146 -0
- brian_core-2.0.0rc1/tests/wp9_cases/__init__.py +0 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_agent_runner.py +163 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_background_jobs.py +286 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_command_runner.py +113 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_event_outbox.py +106 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_heartbeat.py +277 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_inbound_webhook.py +140 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_lifecycle_policy.py +304 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_observability.py +200 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_real_path.py +546 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_scheduler_service.py +114 -0
- brian_core-2.0.0rc1/tests/wp9_cases/case_workflow.py +315 -0
- brian_core-2.0.0rc1/tests/wp9_cases/heartbeat_lock_holder.py +30 -0
- brian_core-2.0.0rc1/tests/wp9_cases/heartbeat_phase_sleeper.py +34 -0
- brian_core-2.0.0rc1/uv.lock +3849 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Environment - never commit API keys
|
|
2
|
+
.env
|
|
3
|
+
|
|
4
|
+
# Python
|
|
5
|
+
__pycache__/
|
|
6
|
+
*.py[cod]
|
|
7
|
+
*.pyo
|
|
8
|
+
.Python
|
|
9
|
+
*.egg-info/
|
|
10
|
+
dist/
|
|
11
|
+
build/
|
|
12
|
+
.eggs/
|
|
13
|
+
|
|
14
|
+
# Virtual environment - uv creates this automatically
|
|
15
|
+
.venv/
|
|
16
|
+
|
|
17
|
+
# IDE
|
|
18
|
+
.vscode/
|
|
19
|
+
.idea/
|
|
20
|
+
*.swp
|
|
21
|
+
*.swo
|
|
22
|
+
|
|
23
|
+
# OS
|
|
24
|
+
.DS_Store
|
|
25
|
+
Thumbs.db
|
|
26
|
+
|
|
27
|
+
# Agent runtime/session data
|
|
28
|
+
.agent_jobs.db
|
|
29
|
+
.agent_runs.db
|
|
30
|
+
.agent_cron.log
|
|
31
|
+
local/
|
|
32
|
+
.oauth_tokens.json
|
|
33
|
+
.tool_results/
|
|
34
|
+
.sessions/
|
|
35
|
+
.projects.json
|
|
36
|
+
.projects/
|
|
37
|
+
.artifacts/
|
|
38
|
+
.workflow-definitions.json
|
|
39
|
+
.file_history/
|
|
40
|
+
.task_graph_*.json
|
|
41
|
+
.agent_history
|
|
42
|
+
memory/sessions/
|
|
43
|
+
.skill_quarantine/
|
|
44
|
+
frontend/dist/
|
|
45
|
+
frontend/node_modules/
|
|
46
|
+
frontend/tsconfig.tsbuildinfo
|
|
47
|
+
|
|
48
|
+
# Local active configs
|
|
49
|
+
hooks.json
|
|
50
|
+
mcp_servers.json
|
|
51
|
+
|
|
52
|
+
# NOTE: uv.lock SHOULD be committed - it pins exact dependency versions
|
|
53
|
+
# for reproducible installs. Do NOT add uv.lock here.
|
|
54
|
+
|
|
55
|
+
# Web UI / local tooling
|
|
56
|
+
node_modules/
|
|
57
|
+
.pytest_cache/
|
|
58
|
+
.brian-skill-store.lock
|
|
59
|
+
.mari/
|
|
60
|
+
|
|
61
|
+
web/tsconfig.tsbuildinfo
|
|
62
|
+
.claude/worktrees/
|
|
63
|
+
|
|
64
|
+
mainDocs/.scratch/
|
|
65
|
+
|
|
66
|
+
# Runtime diagnostic log (loop.py _diag) — churns constantly, never commit
|
|
67
|
+
.diag_log.txt
|
|
68
|
+
|
|
69
|
+
# [FEATURE: durable-workspace] BRIAN's per-project working dirs + backups
|
|
70
|
+
workspace/
|
|
71
|
+
.backups/
|
|
72
|
+
|
|
73
|
+
# local secret dumps — never commit
|
|
74
|
+
env_export*.txt
|
|
75
|
+
|
|
76
|
+
# SQLite sidecars for ignored runtime dbs
|
|
77
|
+
.agent_runs.db-*
|
|
78
|
+
.agent_jobs.db-*
|
|
79
|
+
|
|
80
|
+
# live API keys for the ollama proxy rotator — blocked from commit
|
|
81
|
+
ollama_proxy/keys.json
|
|
82
|
+
|
|
83
|
+
# [FEATURE: model-bench] harness venv + run outputs are built/ephemeral
|
|
84
|
+
bench/harness/.venv/
|
|
85
|
+
bench/runs/
|
|
86
|
+
bench/results.json
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: brian-core
|
|
3
|
+
Version: 2.0.0rc1
|
|
4
|
+
Summary: A provider-neutral, fault-tolerant agent runtime
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Requires-Dist: anthropic>=0.50.0
|
|
7
|
+
Requires-Dist: apscheduler>=3.10.0
|
|
8
|
+
Requires-Dist: coverage>=7.15.0
|
|
9
|
+
Requires-Dist: ddgs>=9.0.0
|
|
10
|
+
Requires-Dist: fastapi>=0.138.1
|
|
11
|
+
Requires-Dist: fastembed>=0.8.0
|
|
12
|
+
Requires-Dist: httpx>=0.27.0
|
|
13
|
+
Requires-Dist: mcp<2,>=1.27
|
|
14
|
+
Requires-Dist: openai>=2.0.0
|
|
15
|
+
Requires-Dist: openpyxl>=3.1.0
|
|
16
|
+
Requires-Dist: paramiko>=3.4.0
|
|
17
|
+
Requires-Dist: playwright>=1.49.0
|
|
18
|
+
Requires-Dist: prompt-toolkit>=3.0.0
|
|
19
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
20
|
+
Requires-Dist: pymongo>=4.6.0
|
|
21
|
+
Requires-Dist: pymupdf>=1.24.0
|
|
22
|
+
Requires-Dist: pymysql>=1.1.0
|
|
23
|
+
Requires-Dist: pytesseract>=0.3.13
|
|
24
|
+
Requires-Dist: python-docx>=1.1.0
|
|
25
|
+
Requires-Dist: python-pptx>=1.0.0
|
|
26
|
+
Requires-Dist: rich>=15.0.0
|
|
27
|
+
Requires-Dist: sqlalchemy>=2.0.0
|
|
28
|
+
Requires-Dist: tavily-python>=0.5.0
|
|
29
|
+
Requires-Dist: textual>=8.0.0
|
|
30
|
+
Requires-Dist: uvicorn[standard]>=0.49.0
|
|
31
|
+
Provides-Extra: hosted
|
|
32
|
+
Requires-Dist: opentelemetry-api>=1.38.0; extra == 'hosted'
|
|
33
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.38.0; extra == 'hosted'
|
|
34
|
+
Requires-Dist: opentelemetry-sdk>=1.38.0; extra == 'hosted'
|
|
35
|
+
Requires-Dist: psycopg[binary]>=3.2.0; extra == 'hosted'
|
|
36
|
+
Provides-Extra: providers
|
|
37
|
+
Requires-Dist: boto3>=1.42.0; extra == 'providers'
|
|
38
|
+
Requires-Dist: google-genai>=1.56.0; extra == 'providers'
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# BRIAN
|
|
42
|
+
|
|
43
|
+
A self-hosted AI **harness**: a model plus the loop, tools, memory, and permissions that turn it into an agent you can actually run.
|
|
44
|
+
|
|
45
|
+
Package: `brian-core` `2.0.0rc1`. Command: **`brian`**. `agent` is a silent alias of the same program. Code lives under `src/brian_core`.
|
|
46
|
+
|
|
47
|
+
This checkout is `/srv/brian` on branch `brian`. It is **not** the live operator at `/srv/agent` (ab212.io) and not HeyBrian. Do not copy those trees’ `.env`, `memory/`, or sessions here.
|
|
48
|
+
|
|
49
|
+
## Install
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh && uv tool install brian-core && brian
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or run [`scripts/install.sh`](scripts/install.sh). First run asks for a provider and key, writes `~/.brian/.env` (mode 0600), then starts the REPL. Type `brian` from any folder — keys, USER.md, and sessions live in `~/.brian`. You still need your own LLM key. The wheel is code only; a stranger’s brain starts blank.
|
|
56
|
+
|
|
57
|
+
## Three doors
|
|
58
|
+
|
|
59
|
+
| Door | What it is |
|
|
60
|
+
|---|---|
|
|
61
|
+
| CLI | Type `brian` |
|
|
62
|
+
| HTTP API | `brian --api` — OpenAI-shaped chat plus durable runs |
|
|
63
|
+
| Agent SDK | `from brian_core.sdk import run` — same loop in-process, not HTTP |
|
|
64
|
+
|
|
65
|
+
`BrianClient` is an HTTP helper for the API. It is not the Agent SDK.
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
from brian_core.sdk import run, stream
|
|
69
|
+
|
|
70
|
+
print(run("list python files"))
|
|
71
|
+
for event in stream("list python files"):
|
|
72
|
+
...
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Run from this repo
|
|
76
|
+
|
|
77
|
+
Needs Git, Python 3.11+, and [uv](https://docs.astral.sh/uv/). Product home is still `~/.brian` (override with `BRIAN_HOME` or `BRIAN_ENV_FILE`). Tests may set `MEMORY_DIR`.
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cd /srv/brian # or clone the repo and check out this branch
|
|
81
|
+
uv sync
|
|
82
|
+
uv run brian --help
|
|
83
|
+
uv run brian # first run: provider + key into ~/.brian/.env
|
|
84
|
+
uv run brian "list python files" # one shot
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Package layout is `src/brian_core`. Optional extras: `providers`, `hosted`.
|
|
88
|
+
|
|
89
|
+
## Modes
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
uv run brian # interactive REPL
|
|
93
|
+
uv run brian "do this" # one shot
|
|
94
|
+
uv run brian --continue # last session
|
|
95
|
+
uv run brian --resume <session-id>
|
|
96
|
+
uv run brian --fork-session <id>
|
|
97
|
+
uv run brian --tui # full-screen terminal UI
|
|
98
|
+
uv run brian --api # FastAPI server
|
|
99
|
+
uv run brian --scheduler # durable job worker
|
|
100
|
+
uv run brian --heartbeat-only # memory maintenance, then exit
|
|
101
|
+
uv run brian --learning-graph
|
|
102
|
+
uv run brian --version
|
|
103
|
+
uv run agent --help # same CLI; do not teach this name
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
One execution mode per invocation. `--api` requires `API_SERVER_KEY`.
|
|
107
|
+
|
|
108
|
+
## HTTP API
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
uv run brian --api
|
|
112
|
+
curl -fsS http://127.0.0.1:8000/health
|
|
113
|
+
curl -fsS http://127.0.0.1:8000/v1/chat/completions \
|
|
114
|
+
-H "Authorization: Bearer $API_SERVER_KEY" \
|
|
115
|
+
-H "Content-Type: application/json" \
|
|
116
|
+
-d '{"model":"agent","messages":[{"role":"user","content":"Say hello."}]}'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Bearer `API_SERVER_KEY` on almost every route. Public: `/health`, `/v1/health`, throttled `POST /api/web/login`, Twilio-signed `POST /hooks/twilio/sms`.
|
|
120
|
+
|
|
121
|
+
| Endpoint | Purpose |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `POST /v1/chat/completions` | Chat, streaming or not |
|
|
124
|
+
| `POST /v1/runs` | Durable run that survives a closed tab |
|
|
125
|
+
| `GET /v1/runs/{id}/events` | SSE for that run |
|
|
126
|
+
| `POST /v1/runs/{id}/approval` | Human approval |
|
|
127
|
+
| `GET /v2/capabilities` | Machine-readable surface |
|
|
128
|
+
| `/api/sessions/*` | Session CRUD and chat |
|
|
129
|
+
| `/api/jobs/*` | Scheduler jobs |
|
|
130
|
+
|
|
131
|
+
Operator detail (SOUL, skills, MCP, session save): [`docs/brian-operator.md`](docs/brian-operator.md). What it can do in plain English: [`docs/CAPABILITIES.md`](docs/CAPABILITIES.md).
|
|
132
|
+
|
|
133
|
+
## Config
|
|
134
|
+
|
|
135
|
+
All settings are `.env` under `~/.brian` (or `BRIAN_ENV_FILE`). Names are in `env.example`. Required: `PROVIDER`, `MODEL`, and the key for that provider.
|
|
136
|
+
|
|
137
|
+
On first interactive start, if `~/.brian/memory/USER.md` is empty, the CLI asks a few profile questions after keys work.
|
|
138
|
+
|
|
139
|
+
## What this tree is for
|
|
140
|
+
|
|
141
|
+
Build the product **here**. Leave `/srv/agent` as production. Tests that need config use a **local** env, never the live one.
|
|
142
|
+
|
|
143
|
+
Working rules for agents: [`AGENTS.md`](AGENTS.md).
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# BRIAN
|
|
2
|
+
|
|
3
|
+
A self-hosted AI **harness**: a model plus the loop, tools, memory, and permissions that turn it into an agent you can actually run.
|
|
4
|
+
|
|
5
|
+
Package: `brian-core` `2.0.0rc1`. Command: **`brian`**. `agent` is a silent alias of the same program. Code lives under `src/brian_core`.
|
|
6
|
+
|
|
7
|
+
This checkout is `/srv/brian` on branch `brian`. It is **not** the live operator at `/srv/agent` (ab212.io) and not HeyBrian. Do not copy those trees’ `.env`, `memory/`, or sessions here.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh && uv tool install brian-core && brian
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Or run [`scripts/install.sh`](scripts/install.sh). First run asks for a provider and key, writes `~/.brian/.env` (mode 0600), then starts the REPL. Type `brian` from any folder — keys, USER.md, and sessions live in `~/.brian`. You still need your own LLM key. The wheel is code only; a stranger’s brain starts blank.
|
|
16
|
+
|
|
17
|
+
## Three doors
|
|
18
|
+
|
|
19
|
+
| Door | What it is |
|
|
20
|
+
|---|---|
|
|
21
|
+
| CLI | Type `brian` |
|
|
22
|
+
| HTTP API | `brian --api` — OpenAI-shaped chat plus durable runs |
|
|
23
|
+
| Agent SDK | `from brian_core.sdk import run` — same loop in-process, not HTTP |
|
|
24
|
+
|
|
25
|
+
`BrianClient` is an HTTP helper for the API. It is not the Agent SDK.
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
from brian_core.sdk import run, stream
|
|
29
|
+
|
|
30
|
+
print(run("list python files"))
|
|
31
|
+
for event in stream("list python files"):
|
|
32
|
+
...
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Run from this repo
|
|
36
|
+
|
|
37
|
+
Needs Git, Python 3.11+, and [uv](https://docs.astral.sh/uv/). Product home is still `~/.brian` (override with `BRIAN_HOME` or `BRIAN_ENV_FILE`). Tests may set `MEMORY_DIR`.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cd /srv/brian # or clone the repo and check out this branch
|
|
41
|
+
uv sync
|
|
42
|
+
uv run brian --help
|
|
43
|
+
uv run brian # first run: provider + key into ~/.brian/.env
|
|
44
|
+
uv run brian "list python files" # one shot
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Package layout is `src/brian_core`. Optional extras: `providers`, `hosted`.
|
|
48
|
+
|
|
49
|
+
## Modes
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
uv run brian # interactive REPL
|
|
53
|
+
uv run brian "do this" # one shot
|
|
54
|
+
uv run brian --continue # last session
|
|
55
|
+
uv run brian --resume <session-id>
|
|
56
|
+
uv run brian --fork-session <id>
|
|
57
|
+
uv run brian --tui # full-screen terminal UI
|
|
58
|
+
uv run brian --api # FastAPI server
|
|
59
|
+
uv run brian --scheduler # durable job worker
|
|
60
|
+
uv run brian --heartbeat-only # memory maintenance, then exit
|
|
61
|
+
uv run brian --learning-graph
|
|
62
|
+
uv run brian --version
|
|
63
|
+
uv run agent --help # same CLI; do not teach this name
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
One execution mode per invocation. `--api` requires `API_SERVER_KEY`.
|
|
67
|
+
|
|
68
|
+
## HTTP API
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv run brian --api
|
|
72
|
+
curl -fsS http://127.0.0.1:8000/health
|
|
73
|
+
curl -fsS http://127.0.0.1:8000/v1/chat/completions \
|
|
74
|
+
-H "Authorization: Bearer $API_SERVER_KEY" \
|
|
75
|
+
-H "Content-Type: application/json" \
|
|
76
|
+
-d '{"model":"agent","messages":[{"role":"user","content":"Say hello."}]}'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Bearer `API_SERVER_KEY` on almost every route. Public: `/health`, `/v1/health`, throttled `POST /api/web/login`, Twilio-signed `POST /hooks/twilio/sms`.
|
|
80
|
+
|
|
81
|
+
| Endpoint | Purpose |
|
|
82
|
+
|---|---|
|
|
83
|
+
| `POST /v1/chat/completions` | Chat, streaming or not |
|
|
84
|
+
| `POST /v1/runs` | Durable run that survives a closed tab |
|
|
85
|
+
| `GET /v1/runs/{id}/events` | SSE for that run |
|
|
86
|
+
| `POST /v1/runs/{id}/approval` | Human approval |
|
|
87
|
+
| `GET /v2/capabilities` | Machine-readable surface |
|
|
88
|
+
| `/api/sessions/*` | Session CRUD and chat |
|
|
89
|
+
| `/api/jobs/*` | Scheduler jobs |
|
|
90
|
+
|
|
91
|
+
Operator detail (SOUL, skills, MCP, session save): [`docs/brian-operator.md`](docs/brian-operator.md). What it can do in plain English: [`docs/CAPABILITIES.md`](docs/CAPABILITIES.md).
|
|
92
|
+
|
|
93
|
+
## Config
|
|
94
|
+
|
|
95
|
+
All settings are `.env` under `~/.brian` (or `BRIAN_ENV_FILE`). Names are in `env.example`. Required: `PROVIDER`, `MODEL`, and the key for that provider.
|
|
96
|
+
|
|
97
|
+
On first interactive start, if `~/.brian/memory/USER.md` is empty, the CLI asks a few profile questions after keys work.
|
|
98
|
+
|
|
99
|
+
## What this tree is for
|
|
100
|
+
|
|
101
|
+
Build the product **here**. Leave `/srv/agent` as production. Tests that need config use a **local** env, never the live one.
|
|
102
|
+
|
|
103
|
+
Working rules for agents: [`AGENTS.md`](AGENTS.md).
|