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.
Files changed (797) hide show
  1. brian_core-2.0.0rc1/.gitignore +86 -0
  2. brian_core-2.0.0rc1/PKG-INFO +143 -0
  3. brian_core-2.0.0rc1/README.md +103 -0
  4. brian_core-2.0.0rc1/architecture/evolutions/0003-durable-kernel.patch +1061 -0
  5. brian_core-2.0.0rc1/architecture/evolutions/0004-agent-provider-context.patch +8193 -0
  6. brian_core-2.0.0rc1/architecture/evolutions/0005-tools-hitl-security.patch +2531 -0
  7. brian_core-2.0.0rc1/architecture/evolutions/0006-context-sessions-memory.patch +1076 -0
  8. brian_core-2.0.0rc1/architecture/evolutions/0008-api-lifecycle.patch +891 -0
  9. brian_core-2.0.0rc1/architecture/evolutions/0009-automation-workflows.patch +8589 -0
  10. brian_core-2.0.0rc1/architecture/evolutions/0010-extensions-mcp.patch +19758 -0
  11. brian_core-2.0.0rc1/architecture/evolutions/0011-hardening.patch +832 -0
  12. brian_core-2.0.0rc1/architecture/evolutions/0013-standalone-hosts.patch +290 -0
  13. brian_core-2.0.0rc1/architecture/mari-package-baseline.manifest.json +1 -0
  14. brian_core-2.0.0rc1/docs/CAPABILITIES.md +217 -0
  15. brian_core-2.0.0rc1/docs/README.md +16 -0
  16. brian_core-2.0.0rc1/docs/architecture-media-and-rag.md +160 -0
  17. brian_core-2.0.0rc1/docs/architecture-workbench.md +112 -0
  18. brian_core-2.0.0rc1/docs/brian-operator.md +451 -0
  19. brian_core-2.0.0rc1/docs/security-2026-07-27-voice-tool-rce.md +104 -0
  20. brian_core-2.0.0rc1/pyproject.toml +152 -0
  21. brian_core-2.0.0rc1/scripts/animate_bellcurve.py +77 -0
  22. brian_core-2.0.0rc1/scripts/apply_voice_agent_config.py +225 -0
  23. brian_core-2.0.0rc1/scripts/build_package_architecture.py +374 -0
  24. brian_core-2.0.0rc1/scripts/generate-brian-clients.py +283 -0
  25. brian_core-2.0.0rc1/scripts/install.sh +13 -0
  26. brian_core-2.0.0rc1/scripts/live_provider_smoke.py +142 -0
  27. brian_core-2.0.0rc1/scripts/notify.py +42 -0
  28. brian_core-2.0.0rc1/scripts/run_contract_profile.py +749 -0
  29. brian_core-2.0.0rc1/scripts/ttg_chat_client.py +195 -0
  30. brian_core-2.0.0rc1/scripts/verify_background_jobs_install.py +216 -0
  31. brian_core-2.0.0rc1/scripts/verify_distribution_artifacts.py +472 -0
  32. brian_core-2.0.0rc1/scripts/verify_fresh_install.py +339 -0
  33. brian_core-2.0.0rc1/scripts/verify_heartbeat_install.py +245 -0
  34. brian_core-2.0.0rc1/scripts/wp3_fault_worker.py +103 -0
  35. brian_core-2.0.0rc1/src/agent_api/__init__.py +6 -0
  36. brian_core-2.0.0rc1/src/agent_api/app.py +6 -0
  37. brian_core-2.0.0rc1/src/agent_api/auth.py +6 -0
  38. brian_core-2.0.0rc1/src/agent_api/background_tasks.py +6 -0
  39. brian_core-2.0.0rc1/src/agent_api/converters.py +6 -0
  40. brian_core-2.0.0rc1/src/agent_api/routes_chat.py +6 -0
  41. brian_core-2.0.0rc1/src/agent_api/routes_discovery.py +6 -0
  42. brian_core-2.0.0rc1/src/agent_api/routes_hooks.py +6 -0
  43. brian_core-2.0.0rc1/src/agent_api/routes_jobs.py +6 -0
  44. brian_core-2.0.0rc1/src/agent_api/routes_responses.py +6 -0
  45. brian_core-2.0.0rc1/src/agent_api/routes_runs.py +6 -0
  46. brian_core-2.0.0rc1/src/agent_api/routes_sessions.py +6 -0
  47. brian_core-2.0.0rc1/src/agent_api/routes_skills.py +6 -0
  48. brian_core-2.0.0rc1/src/agent_api/routes_sms.py +6 -0
  49. brian_core-2.0.0rc1/src/agent_api/routes_v2.py +6 -0
  50. brian_core-2.0.0rc1/src/agent_runtime/__init__.py +6 -0
  51. brian_core-2.0.0rc1/src/agent_runtime/async_bridge.py +6 -0
  52. brian_core-2.0.0rc1/src/agent_runtime/codenames.py +6 -0
  53. brian_core-2.0.0rc1/src/agent_runtime/context_management/__init__.py +6 -0
  54. brian_core-2.0.0rc1/src/agent_runtime/context_management/manager.py +6 -0
  55. brian_core-2.0.0rc1/src/agent_runtime/context_management/overflow.py +6 -0
  56. brian_core-2.0.0rc1/src/agent_runtime/context_management/prompts.py +6 -0
  57. brian_core-2.0.0rc1/src/agent_runtime/context_management/pruning.py +6 -0
  58. brian_core-2.0.0rc1/src/agent_runtime/context_management/settings.py +6 -0
  59. brian_core-2.0.0rc1/src/agent_runtime/context_management/summarization.py +6 -0
  60. brian_core-2.0.0rc1/src/agent_runtime/context_management/tokens.py +6 -0
  61. brian_core-2.0.0rc1/src/agent_runtime/context_management/types.py +6 -0
  62. brian_core-2.0.0rc1/src/agent_runtime/conversation_title.py +6 -0
  63. brian_core-2.0.0rc1/src/agent_runtime/hitl_policy.py +6 -0
  64. brian_core-2.0.0rc1/src/agent_runtime/io_bridge.py +6 -0
  65. brian_core-2.0.0rc1/src/agent_runtime/kernel/__init__.py +6 -0
  66. brian_core-2.0.0rc1/src/agent_runtime/kernel/contracts.py +6 -0
  67. brian_core-2.0.0rc1/src/agent_runtime/kernel/engine.py +6 -0
  68. brian_core-2.0.0rc1/src/agent_runtime/kernel/events.py +6 -0
  69. brian_core-2.0.0rc1/src/agent_runtime/kernel/interrupts.py +6 -0
  70. brian_core-2.0.0rc1/src/agent_runtime/kernel/provider_gateway.py +6 -0
  71. brian_core-2.0.0rc1/src/agent_runtime/kernel/repository.py +6 -0
  72. brian_core-2.0.0rc1/src/agent_runtime/kernel/run_context.py +6 -0
  73. brian_core-2.0.0rc1/src/agent_runtime/kernel/service.py +6 -0
  74. brian_core-2.0.0rc1/src/agent_runtime/kernel/tool_executor.py +6 -0
  75. brian_core-2.0.0rc1/src/agent_runtime/lessons.py +6 -0
  76. brian_core-2.0.0rc1/src/agent_runtime/lifecycle.py +6 -0
  77. brian_core-2.0.0rc1/src/agent_runtime/model.py +6 -0
  78. brian_core-2.0.0rc1/src/agent_runtime/observability.py +6 -0
  79. brian_core-2.0.0rc1/src/agent_runtime/platform_contracts.py +6 -0
  80. brian_core-2.0.0rc1/src/agent_runtime/process_sessions.py +6 -0
  81. brian_core-2.0.0rc1/src/agent_runtime/prompt_context.py +6 -0
  82. brian_core-2.0.0rc1/src/agent_runtime/response_store.py +6 -0
  83. brian_core-2.0.0rc1/src/agent_runtime/run_profiles.py +6 -0
  84. brian_core-2.0.0rc1/src/agent_runtime/run_store.py +6 -0
  85. brian_core-2.0.0rc1/src/agent_runtime/sandbox.py +6 -0
  86. brian_core-2.0.0rc1/src/agent_runtime/session_recall.py +6 -0
  87. brian_core-2.0.0rc1/src/agent_runtime/session_runner.py +6 -0
  88. brian_core-2.0.0rc1/src/agent_runtime/session_save_policy.py +6 -0
  89. brian_core-2.0.0rc1/src/agent_runtime/session_tree.py +6 -0
  90. brian_core-2.0.0rc1/src/agent_runtime/skill_security.py +6 -0
  91. brian_core-2.0.0rc1/src/agent_runtime/skill_store.py +6 -0
  92. brian_core-2.0.0rc1/src/agent_runtime/soul_store.py +6 -0
  93. brian_core-2.0.0rc1/src/agent_runtime/storage.py +6 -0
  94. brian_core-2.0.0rc1/src/agent_runtime/tool_scope.py +6 -0
  95. brian_core-2.0.0rc1/src/agent_runtime/voice_prompt.py +6 -0
  96. brian_core-2.0.0rc1/src/agent_runtime/workflows.py +6 -0
  97. brian_core-2.0.0rc1/src/api/__init__.py +6 -0
  98. brian_core-2.0.0rc1/src/api/base.py +6 -0
  99. brian_core-2.0.0rc1/src/api/client.py +6 -0
  100. brian_core-2.0.0rc1/src/api/content.py +6 -0
  101. brian_core-2.0.0rc1/src/api/providers/__init__.py +6 -0
  102. brian_core-2.0.0rc1/src/api/providers/anthropic.py +6 -0
  103. brian_core-2.0.0rc1/src/api/providers/bedrock.py +6 -0
  104. brian_core-2.0.0rc1/src/api/providers/completion.py +6 -0
  105. brian_core-2.0.0rc1/src/api/providers/google.py +6 -0
  106. brian_core-2.0.0rc1/src/api/providers/lmstudio.py +6 -0
  107. brian_core-2.0.0rc1/src/api/providers/openai_compatible.py +6 -0
  108. brian_core-2.0.0rc1/src/api/providers/registry.py +6 -0
  109. brian_core-2.0.0rc1/src/api/providers/responses.py +6 -0
  110. brian_core-2.0.0rc1/src/brian_client/__init__.py +6 -0
  111. brian_core-2.0.0rc1/src/brian_client/client.py +6 -0
  112. brian_core-2.0.0rc1/src/brian_core/README.md +7 -0
  113. brian_core-2.0.0rc1/src/brian_core/__init__.py +5 -0
  114. brian_core-2.0.0rc1/src/brian_core/__main__.py +6 -0
  115. brian_core-2.0.0rc1/src/brian_core/_version.py +3 -0
  116. brian_core-2.0.0rc1/src/brian_core/agent_api/__init__.py +6 -0
  117. brian_core-2.0.0rc1/src/brian_core/agent_api/app.py +395 -0
  118. brian_core-2.0.0rc1/src/brian_core/agent_api/approval_link.py +178 -0
  119. brian_core-2.0.0rc1/src/brian_core/agent_api/auth.py +55 -0
  120. brian_core-2.0.0rc1/src/brian_core/agent_api/background_tasks.py +240 -0
  121. brian_core-2.0.0rc1/src/brian_core/agent_api/converters.py +93 -0
  122. brian_core-2.0.0rc1/src/brian_core/agent_api/loop_watchdog.py +86 -0
  123. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_approval.py +164 -0
  124. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_artifacts.py +178 -0
  125. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_bench.py +674 -0
  126. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_capabilities.py +56 -0
  127. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_chat.py +899 -0
  128. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_discovery.py +473 -0
  129. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_hooks.py +123 -0
  130. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_jobs.py +184 -0
  131. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_media.py +177 -0
  132. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_projects.py +332 -0
  133. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_public_media.py +54 -0
  134. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_responses.py +308 -0
  135. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_runs.py +1312 -0
  136. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_sessions.py +638 -0
  137. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_skills.py +348 -0
  138. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_sms.py +213 -0
  139. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_v2.py +475 -0
  140. brian_core-2.0.0rc1/src/brian_core/agent_api/routes_workflow_defs.py +85 -0
  141. brian_core-2.0.0rc1/src/brian_core/agent_api/webauth.py +1879 -0
  142. brian_core-2.0.0rc1/src/brian_core/agent_runtime/__init__.py +10 -0
  143. brian_core-2.0.0rc1/src/brian_core/agent_runtime/agent_tracing.py +193 -0
  144. brian_core-2.0.0rc1/src/brian_core/agent_runtime/async_bridge.py +160 -0
  145. brian_core-2.0.0rc1/src/brian_core/agent_runtime/codenames.py +52 -0
  146. brian_core-2.0.0rc1/src/brian_core/agent_runtime/computer_session.py +226 -0
  147. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/__init__.py +29 -0
  148. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/manager.py +363 -0
  149. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/overflow.py +240 -0
  150. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/prompts.py +70 -0
  151. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/pruning.py +159 -0
  152. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/settings.py +59 -0
  153. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/summarization.py +358 -0
  154. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/tokens.py +273 -0
  155. brian_core-2.0.0rc1/src/brian_core/agent_runtime/context_management/types.py +177 -0
  156. brian_core-2.0.0rc1/src/brian_core/agent_runtime/conversation_title.py +123 -0
  157. brian_core-2.0.0rc1/src/brian_core/agent_runtime/daemon_pool.py +50 -0
  158. brian_core-2.0.0rc1/src/brian_core/agent_runtime/embeddings.py +295 -0
  159. brian_core-2.0.0rc1/src/brian_core/agent_runtime/extension_safety.py +326 -0
  160. brian_core-2.0.0rc1/src/brian_core/agent_runtime/fork_runner.py +347 -0
  161. brian_core-2.0.0rc1/src/brian_core/agent_runtime/gen_ai_semconv.py +176 -0
  162. brian_core-2.0.0rc1/src/brian_core/agent_runtime/hitl_policy.py +406 -0
  163. brian_core-2.0.0rc1/src/brian_core/agent_runtime/interrupt_reaper.py +70 -0
  164. brian_core-2.0.0rc1/src/brian_core/agent_runtime/io_bridge.py +180 -0
  165. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/__init__.py +38 -0
  166. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/approvals.py +197 -0
  167. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/contracts.py +356 -0
  168. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/durable_execution.py +349 -0
  169. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/durable_journal.py +1186 -0
  170. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/engine.py +268 -0
  171. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/events.py +29 -0
  172. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/interrupts.py +38 -0
  173. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/provider_gateway.py +352 -0
  174. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/repository.py +1137 -0
  175. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/run_context.py +56 -0
  176. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/service.py +470 -0
  177. brian_core-2.0.0rc1/src/brian_core/agent_runtime/kernel/tool_executor.py +350 -0
  178. brian_core-2.0.0rc1/src/brian_core/agent_runtime/learning_graph.py +194 -0
  179. brian_core-2.0.0rc1/src/brian_core/agent_runtime/lessons.py +199 -0
  180. brian_core-2.0.0rc1/src/brian_core/agent_runtime/lifecycle.py +520 -0
  181. brian_core-2.0.0rc1/src/brian_core/agent_runtime/maintenance.py +247 -0
  182. brian_core-2.0.0rc1/src/brian_core/agent_runtime/memory_index.py +876 -0
  183. brian_core-2.0.0rc1/src/brian_core/agent_runtime/model.py +478 -0
  184. brian_core-2.0.0rc1/src/brian_core/agent_runtime/observability.py +769 -0
  185. brian_core-2.0.0rc1/src/brian_core/agent_runtime/platform_contracts.py +1310 -0
  186. brian_core-2.0.0rc1/src/brian_core/agent_runtime/process_launcher.py +77 -0
  187. brian_core-2.0.0rc1/src/brian_core/agent_runtime/process_sessions.py +1160 -0
  188. brian_core-2.0.0rc1/src/brian_core/agent_runtime/prompt_context.py +166 -0
  189. brian_core-2.0.0rc1/src/brian_core/agent_runtime/redaction.py +209 -0
  190. brian_core-2.0.0rc1/src/brian_core/agent_runtime/remote_runner.py +724 -0
  191. brian_core-2.0.0rc1/src/brian_core/agent_runtime/response_store.py +135 -0
  192. brian_core-2.0.0rc1/src/brian_core/agent_runtime/run_profiles.py +845 -0
  193. brian_core-2.0.0rc1/src/brian_core/agent_runtime/run_store.py +967 -0
  194. brian_core-2.0.0rc1/src/brian_core/agent_runtime/sandbox.py +453 -0
  195. brian_core-2.0.0rc1/src/brian_core/agent_runtime/schema.py +227 -0
  196. brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_recall.py +415 -0
  197. brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_runner.py +436 -0
  198. brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_save_policy.py +136 -0
  199. brian_core-2.0.0rc1/src/brian_core/agent_runtime/session_tree.py +591 -0
  200. brian_core-2.0.0rc1/src/brian_core/agent_runtime/skill_security.py +145 -0
  201. brian_core-2.0.0rc1/src/brian_core/agent_runtime/skill_store.py +1438 -0
  202. brian_core-2.0.0rc1/src/brian_core/agent_runtime/soul_store.py +99 -0
  203. brian_core-2.0.0rc1/src/brian_core/agent_runtime/storage.py +335 -0
  204. brian_core-2.0.0rc1/src/brian_core/agent_runtime/tool_scope.py +165 -0
  205. brian_core-2.0.0rc1/src/brian_core/agent_runtime/vector_index.py +576 -0
  206. brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_attach.py +325 -0
  207. brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_controls.py +335 -0
  208. brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_deferred.py +224 -0
  209. brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_prompt.py +366 -0
  210. brian_core-2.0.0rc1/src/brian_core/agent_runtime/voice_settings.py +164 -0
  211. brian_core-2.0.0rc1/src/brian_core/agent_runtime/workflows.py +2607 -0
  212. brian_core-2.0.0rc1/src/brian_core/api/__init__.py +0 -0
  213. brian_core-2.0.0rc1/src/brian_core/api/base.py +314 -0
  214. brian_core-2.0.0rc1/src/brian_core/api/cache_planner.py +214 -0
  215. brian_core-2.0.0rc1/src/brian_core/api/client.py +25 -0
  216. brian_core-2.0.0rc1/src/brian_core/api/content.py +213 -0
  217. brian_core-2.0.0rc1/src/brian_core/api/guided_toolcalls.py +242 -0
  218. brian_core-2.0.0rc1/src/brian_core/api/model_metadata.py +45 -0
  219. brian_core-2.0.0rc1/src/brian_core/api/providers/__init__.py +0 -0
  220. brian_core-2.0.0rc1/src/brian_core/api/providers/anthropic.py +949 -0
  221. brian_core-2.0.0rc1/src/brian_core/api/providers/bedrock.py +1575 -0
  222. brian_core-2.0.0rc1/src/brian_core/api/providers/completion.py +1431 -0
  223. brian_core-2.0.0rc1/src/brian_core/api/providers/google.py +934 -0
  224. brian_core-2.0.0rc1/src/brian_core/api/providers/lmstudio.py +40 -0
  225. brian_core-2.0.0rc1/src/brian_core/api/providers/ollama.py +52 -0
  226. brian_core-2.0.0rc1/src/brian_core/api/providers/openai_compatible.py +123 -0
  227. brian_core-2.0.0rc1/src/brian_core/api/providers/registry.py +540 -0
  228. brian_core-2.0.0rc1/src/brian_core/api/providers/responses.py +1612 -0
  229. brian_core-2.0.0rc1/src/brian_core/api/reasoning.py +188 -0
  230. brian_core-2.0.0rc1/src/brian_core/api/vision.py +258 -0
  231. brian_core-2.0.0rc1/src/brian_core/brian_client/__init__.py +15 -0
  232. brian_core-2.0.0rc1/src/brian_core/brian_client/client.py +178 -0
  233. brian_core-2.0.0rc1/src/brian_core/cli.py +882 -0
  234. brian_core-2.0.0rc1/src/brian_core/compat.py +78 -0
  235. brian_core-2.0.0rc1/src/brian_core/config.py +795 -0
  236. brian_core-2.0.0rc1/src/brian_core/contracts/__init__.py +5 -0
  237. brian_core-2.0.0rc1/src/brian_core/contracts/v1/__init__.py +40 -0
  238. brian_core-2.0.0rc1/src/brian_core/env_file.py +91 -0
  239. brian_core-2.0.0rc1/src/brian_core/first_run.py +81 -0
  240. brian_core-2.0.0rc1/src/brian_core/loop.py +1385 -0
  241. brian_core-2.0.0rc1/src/brian_core/openapi/platform-v2.json +5921 -0
  242. brian_core-2.0.0rc1/src/brian_core/provenance.json +7 -0
  243. brian_core-2.0.0rc1/src/brian_core/py.typed +0 -0
  244. brian_core-2.0.0rc1/src/brian_core/resources/hooks.example.json +63 -0
  245. brian_core-2.0.0rc1/src/brian_core/resources/mcp_servers.example.json +67 -0
  246. brian_core-2.0.0rc1/src/brian_core/scheduler/__init__.py +9 -0
  247. brian_core-2.0.0rc1/src/brian_core/scheduler/agent_runner.py +335 -0
  248. brian_core-2.0.0rc1/src/brian_core/scheduler/cli.py +19 -0
  249. brian_core-2.0.0rc1/src/brian_core/scheduler/command_runner.py +336 -0
  250. brian_core-2.0.0rc1/src/brian_core/scheduler/db.py +104 -0
  251. brian_core-2.0.0rc1/src/brian_core/scheduler/models.py +52 -0
  252. brian_core-2.0.0rc1/src/brian_core/scheduler/safety.py +93 -0
  253. brian_core-2.0.0rc1/src/brian_core/scheduler/service.py +422 -0
  254. brian_core-2.0.0rc1/src/brian_core/scheduler/store.py +838 -0
  255. brian_core-2.0.0rc1/src/brian_core/scheduler/triggers.py +47 -0
  256. brian_core-2.0.0rc1/src/brian_core/sdk.py +41 -0
  257. brian_core-2.0.0rc1/src/brian_core/skills/api_mapping/SKILL.md +18 -0
  258. brian_core-2.0.0rc1/src/brian_core/skills/code_review/SKILL.md +18 -0
  259. brian_core-2.0.0rc1/src/brian_core/skills/debugging/SKILL.md +19 -0
  260. brian_core-2.0.0rc1/src/brian_core/skills/docker_ops/SKILL.md +18 -0
  261. brian_core-2.0.0rc1/src/brian_core/skills/fact_checking/SKILL.md +18 -0
  262. brian_core-2.0.0rc1/src/brian_core/skills/git_workflow/SKILL.md +19 -0
  263. brian_core-2.0.0rc1/src/brian_core/skills/mcp_ops/SKILL.md +18 -0
  264. brian_core-2.0.0rc1/src/brian_core/skills/research/SKILL.md +18 -0
  265. brian_core-2.0.0rc1/src/brian_core/state.py +195 -0
  266. brian_core-2.0.0rc1/src/brian_core/tools/__init__.py +0 -0
  267. brian_core-2.0.0rc1/src/brian_core/tools/agents/__init__.py +1 -0
  268. brian_core-2.0.0rc1/src/brian_core/tools/agents/agent.py +491 -0
  269. brian_core-2.0.0rc1/src/brian_core/tools/agents/coordination.py +294 -0
  270. brian_core-2.0.0rc1/src/brian_core/tools/agents/fork.py +663 -0
  271. brian_core-2.0.0rc1/src/brian_core/tools/agents/remote.py +949 -0
  272. brian_core-2.0.0rc1/src/brian_core/tools/agents/send_message.py +116 -0
  273. brian_core-2.0.0rc1/src/brian_core/tools/agents/swarm.py +455 -0
  274. brian_core-2.0.0rc1/src/brian_core/tools/agents/tasks.py +248 -0
  275. brian_core-2.0.0rc1/src/brian_core/tools/agents/team.py +298 -0
  276. brian_core-2.0.0rc1/src/brian_core/tools/agents/workflow.py +249 -0
  277. brian_core-2.0.0rc1/src/brian_core/tools/base.py +340 -0
  278. brian_core-2.0.0rc1/src/brian_core/tools/charts/__init__.py +22 -0
  279. brian_core-2.0.0rc1/src/brian_core/tools/charts/chart_command.py +148 -0
  280. brian_core-2.0.0rc1/src/brian_core/tools/charts/commands.json +97 -0
  281. brian_core-2.0.0rc1/src/brian_core/tools/charts/protocol.py +109 -0
  282. brian_core-2.0.0rc1/src/brian_core/tools/charts/session.py +158 -0
  283. brian_core-2.0.0rc1/src/brian_core/tools/charts/snapshot.py +95 -0
  284. brian_core-2.0.0rc1/src/brian_core/tools/crm/__init__.py +1 -0
  285. brian_core-2.0.0rc1/src/brian_core/tools/crm/ttgcrm.py +375 -0
  286. brian_core-2.0.0rc1/src/brian_core/tools/data/__init__.py +1 -0
  287. brian_core-2.0.0rc1/src/brian_core/tools/data/mongo.py +197 -0
  288. brian_core-2.0.0rc1/src/brian_core/tools/data/supabase.py +163 -0
  289. brian_core-2.0.0rc1/src/brian_core/tools/data/ttg_ledger.py +120 -0
  290. brian_core-2.0.0rc1/src/brian_core/tools/data/wp_db.py +181 -0
  291. brian_core-2.0.0rc1/src/brian_core/tools/execution/__init__.py +1 -0
  292. brian_core-2.0.0rc1/src/brian_core/tools/execution/agent_terminal.py +481 -0
  293. brian_core-2.0.0rc1/src/brian_core/tools/execution/background_jobs.py +330 -0
  294. brian_core-2.0.0rc1/src/brian_core/tools/execution/bash.py +364 -0
  295. brian_core-2.0.0rc1/src/brian_core/tools/execution/cloudflare.py +283 -0
  296. brian_core-2.0.0rc1/src/brian_core/tools/execution/computer.py +458 -0
  297. brian_core-2.0.0rc1/src/brian_core/tools/execution/powershell.py +143 -0
  298. brian_core-2.0.0rc1/src/brian_core/tools/execution/proc.py +76 -0
  299. brian_core-2.0.0rc1/src/brian_core/tools/execution/python_interpreter.py +487 -0
  300. brian_core-2.0.0rc1/src/brian_core/tools/execution/runpod.py +246 -0
  301. brian_core-2.0.0rc1/src/brian_core/tools/execution/ssh.py +316 -0
  302. brian_core-2.0.0rc1/src/brian_core/tools/files/__init__.py +1 -0
  303. brian_core-2.0.0rc1/src/brian_core/tools/files/edit.py +185 -0
  304. brian_core-2.0.0rc1/src/brian_core/tools/files/notebook.py +251 -0
  305. brian_core-2.0.0rc1/src/brian_core/tools/files/read.py +154 -0
  306. brian_core-2.0.0rc1/src/brian_core/tools/files/read_document.py +554 -0
  307. brian_core-2.0.0rc1/src/brian_core/tools/files/safe_effects.py +188 -0
  308. brian_core-2.0.0rc1/src/brian_core/tools/files/undo.py +134 -0
  309. brian_core-2.0.0rc1/src/brian_core/tools/files/write.py +174 -0
  310. brian_core-2.0.0rc1/src/brian_core/tools/interaction/__init__.py +1 -0
  311. brian_core-2.0.0rc1/src/brian_core/tools/interaction/ask_user.py +103 -0
  312. brian_core-2.0.0rc1/src/brian_core/tools/interaction/brief.py +71 -0
  313. brian_core-2.0.0rc1/src/brian_core/tools/mcp/__init__.py +1 -0
  314. brian_core-2.0.0rc1/src/brian_core/tools/mcp/client.py +1878 -0
  315. brian_core-2.0.0rc1/src/brian_core/tools/mcp/list_resources.py +115 -0
  316. brian_core-2.0.0rc1/src/brian_core/tools/mcp/read_resource.py +131 -0
  317. brian_core-2.0.0rc1/src/brian_core/tools/mcp/tool.py +377 -0
  318. brian_core-2.0.0rc1/src/brian_core/tools/media/__init__.py +1 -0
  319. brian_core-2.0.0rc1/src/brian_core/tools/media/image_gen.py +211 -0
  320. brian_core-2.0.0rc1/src/brian_core/tools/media/video_edit.py +239 -0
  321. brian_core-2.0.0rc1/src/brian_core/tools/media/video_extend.py +160 -0
  322. brian_core-2.0.0rc1/src/brian_core/tools/media/video_gen.py +296 -0
  323. brian_core-2.0.0rc1/src/brian_core/tools/planning/__init__.py +1 -0
  324. brian_core-2.0.0rc1/src/brian_core/tools/planning/plan_mode.py +119 -0
  325. brian_core-2.0.0rc1/src/brian_core/tools/planning/todo.py +82 -0
  326. brian_core-2.0.0rc1/src/brian_core/tools/planning/worktree.py +227 -0
  327. brian_core-2.0.0rc1/src/brian_core/tools/registry.py +872 -0
  328. brian_core-2.0.0rc1/src/brian_core/tools/search/__init__.py +1 -0
  329. brian_core-2.0.0rc1/src/brian_core/tools/search/glob.py +110 -0
  330. brian_core-2.0.0rc1/src/brian_core/tools/search/grep.py +219 -0
  331. brian_core-2.0.0rc1/src/brian_core/tools/search/tool_search.py +122 -0
  332. brian_core-2.0.0rc1/src/brian_core/tools/system/__init__.py +1 -0
  333. brian_core-2.0.0rc1/src/brian_core/tools/system/background_task.py +303 -0
  334. brian_core-2.0.0rc1/src/brian_core/tools/system/concierge.py +308 -0
  335. brian_core-2.0.0rc1/src/brian_core/tools/system/config.py +227 -0
  336. brian_core-2.0.0rc1/src/brian_core/tools/system/contacts.py +250 -0
  337. brian_core-2.0.0rc1/src/brian_core/tools/system/cron.py +476 -0
  338. brian_core-2.0.0rc1/src/brian_core/tools/system/fast_mode.py +161 -0
  339. brian_core-2.0.0rc1/src/brian_core/tools/system/fleet_memory_projection.py +54 -0
  340. brian_core-2.0.0rc1/src/brian_core/tools/system/heartbeat.py +1543 -0
  341. brian_core-2.0.0rc1/src/brian_core/tools/system/heartbeat_phase_runner.py +74 -0
  342. brian_core-2.0.0rc1/src/brian_core/tools/system/maintenance.py +138 -0
  343. brian_core-2.0.0rc1/src/brian_core/tools/system/memory.py +844 -0
  344. brian_core-2.0.0rc1/src/brian_core/tools/system/memory_promotion.py +465 -0
  345. brian_core-2.0.0rc1/src/brian_core/tools/system/model_bench.py +235 -0
  346. brian_core-2.0.0rc1/src/brian_core/tools/system/notify.py +737 -0
  347. brian_core-2.0.0rc1/src/brian_core/tools/system/skill.py +411 -0
  348. brian_core-2.0.0rc1/src/brian_core/tools/system/sleep.py +66 -0
  349. brian_core-2.0.0rc1/src/brian_core/tools/system/voice_call_control.py +211 -0
  350. brian_core-2.0.0rc1/src/brian_core/tools/system/voice_config.py +167 -0
  351. brian_core-2.0.0rc1/src/brian_core/tools/web/__init__.py +1 -0
  352. brian_core-2.0.0rc1/src/brian_core/tools/web/browser.py +701 -0
  353. brian_core-2.0.0rc1/src/brian_core/tools/web/fetch.py +182 -0
  354. brian_core-2.0.0rc1/src/brian_core/tools/web/search.py +194 -0
  355. brian_core-2.0.0rc1/src/brian_core/tui/__init__.py +9 -0
  356. brian_core-2.0.0rc1/src/brian_core/tui/app.py +914 -0
  357. brian_core-2.0.0rc1/src/brian_core/tui/app.tcss +251 -0
  358. brian_core-2.0.0rc1/src/brian_core/tui/chat.py +220 -0
  359. brian_core-2.0.0rc1/src/brian_core/tui/commands.py +93 -0
  360. brian_core-2.0.0rc1/src/brian_core/tui/events.py +42 -0
  361. brian_core-2.0.0rc1/src/brian_core/tui/modals.py +360 -0
  362. brian_core-2.0.0rc1/src/brian_core/tui/runner.py +77 -0
  363. brian_core-2.0.0rc1/src/brian_core/tui/widgets.py +497 -0
  364. brian_core-2.0.0rc1/src/brian_core/utils/__init__.py +0 -0
  365. brian_core-2.0.0rc1/src/brian_core/utils/artifacts.py +542 -0
  366. brian_core-2.0.0rc1/src/brian_core/utils/context.py +148 -0
  367. brian_core-2.0.0rc1/src/brian_core/utils/display.py +348 -0
  368. brian_core-2.0.0rc1/src/brian_core/utils/env_compat.py +44 -0
  369. brian_core-2.0.0rc1/src/brian_core/utils/file_history.py +193 -0
  370. brian_core-2.0.0rc1/src/brian_core/utils/hooks.py +291 -0
  371. brian_core-2.0.0rc1/src/brian_core/utils/media_providers.py +1401 -0
  372. brian_core-2.0.0rc1/src/brian_core/utils/media_urls.py +70 -0
  373. brian_core-2.0.0rc1/src/brian_core/utils/ocr.py +199 -0
  374. brian_core-2.0.0rc1/src/brian_core/utils/project_documents.py +188 -0
  375. brian_core-2.0.0rc1/src/brian_core/utils/projects.py +248 -0
  376. brian_core-2.0.0rc1/src/brian_core/utils/ring_buffer.py +115 -0
  377. brian_core-2.0.0rc1/src/brian_core/utils/session.py +850 -0
  378. brian_core-2.0.0rc1/src/brian_core/utils/ssh_hosts.py +270 -0
  379. brian_core-2.0.0rc1/src/brian_core/utils/ttgcrm_client.py +182 -0
  380. brian_core-2.0.0rc1/src/brian_core/utils/video_edit.py +442 -0
  381. brian_core-2.0.0rc1/src/brian_core/utils/workflow_definitions.py +184 -0
  382. brian_core-2.0.0rc1/src/brian_core/utils/workspace.py +333 -0
  383. brian_core-2.0.0rc1/src/brian_core/utils/workspace_backup.py +131 -0
  384. brian_core-2.0.0rc1/src/config.py +6 -0
  385. brian_core-2.0.0rc1/src/loop.py +6 -0
  386. brian_core-2.0.0rc1/src/main.py +11 -0
  387. brian_core-2.0.0rc1/src/scheduler/__init__.py +6 -0
  388. brian_core-2.0.0rc1/src/scheduler/agent_runner.py +6 -0
  389. brian_core-2.0.0rc1/src/scheduler/cli.py +6 -0
  390. brian_core-2.0.0rc1/src/scheduler/command_runner.py +6 -0
  391. brian_core-2.0.0rc1/src/scheduler/db.py +6 -0
  392. brian_core-2.0.0rc1/src/scheduler/models.py +6 -0
  393. brian_core-2.0.0rc1/src/scheduler/service.py +6 -0
  394. brian_core-2.0.0rc1/src/scheduler/store.py +6 -0
  395. brian_core-2.0.0rc1/src/scheduler/triggers.py +6 -0
  396. brian_core-2.0.0rc1/src/state.py +6 -0
  397. brian_core-2.0.0rc1/src/tools/__init__.py +6 -0
  398. brian_core-2.0.0rc1/src/tools/agents/__init__.py +6 -0
  399. brian_core-2.0.0rc1/src/tools/agents/agent.py +6 -0
  400. brian_core-2.0.0rc1/src/tools/agents/coordination.py +6 -0
  401. brian_core-2.0.0rc1/src/tools/agents/fork.py +6 -0
  402. brian_core-2.0.0rc1/src/tools/agents/remote.py +6 -0
  403. brian_core-2.0.0rc1/src/tools/agents/send_message.py +6 -0
  404. brian_core-2.0.0rc1/src/tools/agents/swarm.py +6 -0
  405. brian_core-2.0.0rc1/src/tools/agents/tasks.py +6 -0
  406. brian_core-2.0.0rc1/src/tools/agents/team.py +6 -0
  407. brian_core-2.0.0rc1/src/tools/base.py +6 -0
  408. brian_core-2.0.0rc1/src/tools/charts/__init__.py +6 -0
  409. brian_core-2.0.0rc1/src/tools/charts/chart_command.py +6 -0
  410. brian_core-2.0.0rc1/src/tools/charts/protocol.py +6 -0
  411. brian_core-2.0.0rc1/src/tools/charts/session.py +6 -0
  412. brian_core-2.0.0rc1/src/tools/charts/snapshot.py +6 -0
  413. brian_core-2.0.0rc1/src/tools/execution/__init__.py +6 -0
  414. brian_core-2.0.0rc1/src/tools/execution/agent_terminal.py +6 -0
  415. brian_core-2.0.0rc1/src/tools/execution/background_jobs.py +6 -0
  416. brian_core-2.0.0rc1/src/tools/execution/bash.py +6 -0
  417. brian_core-2.0.0rc1/src/tools/execution/powershell.py +6 -0
  418. brian_core-2.0.0rc1/src/tools/execution/proc.py +6 -0
  419. brian_core-2.0.0rc1/src/tools/files/__init__.py +6 -0
  420. brian_core-2.0.0rc1/src/tools/files/edit.py +6 -0
  421. brian_core-2.0.0rc1/src/tools/files/notebook.py +6 -0
  422. brian_core-2.0.0rc1/src/tools/files/read.py +6 -0
  423. brian_core-2.0.0rc1/src/tools/files/undo.py +6 -0
  424. brian_core-2.0.0rc1/src/tools/files/write.py +6 -0
  425. brian_core-2.0.0rc1/src/tools/interaction/__init__.py +6 -0
  426. brian_core-2.0.0rc1/src/tools/interaction/ask_user.py +6 -0
  427. brian_core-2.0.0rc1/src/tools/interaction/brief.py +6 -0
  428. brian_core-2.0.0rc1/src/tools/mcp/__init__.py +6 -0
  429. brian_core-2.0.0rc1/src/tools/mcp/client.py +6 -0
  430. brian_core-2.0.0rc1/src/tools/mcp/list_resources.py +6 -0
  431. brian_core-2.0.0rc1/src/tools/mcp/read_resource.py +6 -0
  432. brian_core-2.0.0rc1/src/tools/mcp/tool.py +6 -0
  433. brian_core-2.0.0rc1/src/tools/planning/__init__.py +6 -0
  434. brian_core-2.0.0rc1/src/tools/planning/plan_mode.py +6 -0
  435. brian_core-2.0.0rc1/src/tools/planning/todo.py +6 -0
  436. brian_core-2.0.0rc1/src/tools/planning/worktree.py +6 -0
  437. brian_core-2.0.0rc1/src/tools/registry.py +6 -0
  438. brian_core-2.0.0rc1/src/tools/search/__init__.py +6 -0
  439. brian_core-2.0.0rc1/src/tools/search/glob.py +6 -0
  440. brian_core-2.0.0rc1/src/tools/search/grep.py +6 -0
  441. brian_core-2.0.0rc1/src/tools/search/tool_search.py +6 -0
  442. brian_core-2.0.0rc1/src/tools/system/__init__.py +6 -0
  443. brian_core-2.0.0rc1/src/tools/system/background_task.py +6 -0
  444. brian_core-2.0.0rc1/src/tools/system/config.py +6 -0
  445. brian_core-2.0.0rc1/src/tools/system/contacts.py +6 -0
  446. brian_core-2.0.0rc1/src/tools/system/cron.py +6 -0
  447. brian_core-2.0.0rc1/src/tools/system/fast_mode.py +6 -0
  448. brian_core-2.0.0rc1/src/tools/system/fleet_memory_projection.py +6 -0
  449. brian_core-2.0.0rc1/src/tools/system/heartbeat.py +6 -0
  450. brian_core-2.0.0rc1/src/tools/system/memory.py +6 -0
  451. brian_core-2.0.0rc1/src/tools/system/memory_promotion.py +6 -0
  452. brian_core-2.0.0rc1/src/tools/system/notify.py +6 -0
  453. brian_core-2.0.0rc1/src/tools/system/skill.py +6 -0
  454. brian_core-2.0.0rc1/src/tools/system/sleep.py +6 -0
  455. brian_core-2.0.0rc1/src/tools/web/__init__.py +6 -0
  456. brian_core-2.0.0rc1/src/tools/web/fetch.py +6 -0
  457. brian_core-2.0.0rc1/src/tools/web/search.py +6 -0
  458. brian_core-2.0.0rc1/src/tui/__init__.py +6 -0
  459. brian_core-2.0.0rc1/src/tui/app.py +6 -0
  460. brian_core-2.0.0rc1/src/tui/chat.py +6 -0
  461. brian_core-2.0.0rc1/src/tui/commands.py +6 -0
  462. brian_core-2.0.0rc1/src/tui/events.py +6 -0
  463. brian_core-2.0.0rc1/src/tui/modals.py +6 -0
  464. brian_core-2.0.0rc1/src/tui/runner.py +6 -0
  465. brian_core-2.0.0rc1/src/tui/widgets.py +6 -0
  466. brian_core-2.0.0rc1/src/utils/__init__.py +6 -0
  467. brian_core-2.0.0rc1/src/utils/context.py +6 -0
  468. brian_core-2.0.0rc1/src/utils/display.py +6 -0
  469. brian_core-2.0.0rc1/src/utils/file_history.py +6 -0
  470. brian_core-2.0.0rc1/src/utils/hooks.py +6 -0
  471. brian_core-2.0.0rc1/src/utils/ring_buffer.py +6 -0
  472. brian_core-2.0.0rc1/src/utils/session.py +6 -0
  473. brian_core-2.0.0rc1/tests/__init__.py +1 -0
  474. brian_core-2.0.0rc1/tests/agent_api/test_learning_graph_route.py +46 -0
  475. brian_core-2.0.0rc1/tests/agent_api/test_model_capabilities_route.py +116 -0
  476. brian_core-2.0.0rc1/tests/agent_api/test_otel_lifespan.py +106 -0
  477. brian_core-2.0.0rc1/tests/agent_runtime/kernel/test_durable_journal_recycled_ids.py +157 -0
  478. brian_core-2.0.0rc1/tests/agent_runtime/kernel/test_provider_gateway.py +595 -0
  479. brian_core-2.0.0rc1/tests/agent_runtime/test_container_sandbox.py +75 -0
  480. brian_core-2.0.0rc1/tests/agent_runtime/test_daemon_pool.py +30 -0
  481. brian_core-2.0.0rc1/tests/agent_runtime/test_durable_subagents.py +222 -0
  482. brian_core-2.0.0rc1/tests/agent_runtime/test_ensure_tools_registered.py +91 -0
  483. brian_core-2.0.0rc1/tests/agent_runtime/test_hitl_bypass_freeze.py +73 -0
  484. brian_core-2.0.0rc1/tests/agent_runtime/test_learning_graph.py +51 -0
  485. brian_core-2.0.0rc1/tests/agent_runtime/test_memory_index.py +389 -0
  486. brian_core-2.0.0rc1/tests/agent_runtime/test_model_selection.py +601 -0
  487. brian_core-2.0.0rc1/tests/agent_runtime/test_prompt_cache_stability.py +157 -0
  488. brian_core-2.0.0rc1/tests/agent_runtime/test_span_shaping.py +562 -0
  489. brian_core-2.0.0rc1/tests/agent_runtime/test_token_calibration.py +125 -0
  490. brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_agent_isolation.py +314 -0
  491. brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_crash_recovery.py +148 -0
  492. brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_edge_prompts.py +156 -0
  493. brian_core-2.0.0rc1/tests/agent_runtime/test_workflow_history_handoff.py +243 -0
  494. brian_core-2.0.0rc1/tests/api/test_anthropic_provider.py +1098 -0
  495. brian_core-2.0.0rc1/tests/api/test_base_provider_contract.py +102 -0
  496. brian_core-2.0.0rc1/tests/api/test_bedrock_provider.py +1158 -0
  497. brian_core-2.0.0rc1/tests/api/test_cache_planner.py +222 -0
  498. brian_core-2.0.0rc1/tests/api/test_completion_guided.py +402 -0
  499. brian_core-2.0.0rc1/tests/api/test_completion_provider.py +949 -0
  500. brian_core-2.0.0rc1/tests/api/test_google_provider.py +1212 -0
  501. brian_core-2.0.0rc1/tests/api/test_guided_toolcalls.py +209 -0
  502. brian_core-2.0.0rc1/tests/api/test_multimodal_content.py +121 -0
  503. brian_core-2.0.0rc1/tests/api/test_openai_compatible_providers.py +430 -0
  504. brian_core-2.0.0rc1/tests/api/test_provider_client.py +111 -0
  505. brian_core-2.0.0rc1/tests/api/test_provider_config.py +168 -0
  506. brian_core-2.0.0rc1/tests/api/test_provider_registry.py +487 -0
  507. brian_core-2.0.0rc1/tests/api/test_providers.py +35 -0
  508. brian_core-2.0.0rc1/tests/api/test_reasoning.py +88 -0
  509. brian_core-2.0.0rc1/tests/api/test_reasoning_request_shaping.py +258 -0
  510. brian_core-2.0.0rc1/tests/api/test_responses_provider.py +1860 -0
  511. brian_core-2.0.0rc1/tests/api/test_stream_edge_case_matrix.py +1819 -0
  512. brian_core-2.0.0rc1/tests/api/test_toolcall_containment.py +370 -0
  513. brian_core-2.0.0rc1/tests/api/test_vision_gating.py +374 -0
  514. brian_core-2.0.0rc1/tests/conftest.py +4 -0
  515. brian_core-2.0.0rc1/tests/contracts/cases/__init__.py +0 -0
  516. brian_core-2.0.0rc1/tests/contracts/cases/advanced/__init__.py +0 -0
  517. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_026_agent_terminal.py +11 -0
  518. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_027_fork_agent.py +11 -0
  519. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_042_session_trees.py +16 -0
  520. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_043_memory_promotion.py +16 -0
  521. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_049_checkpoints.py +13 -0
  522. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_052_reconciliation.py +13 -0
  523. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_054_run_event_streaming.py +16 -0
  524. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_055_run_event_consumer.py +16 -0
  525. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_062_workflows.py +18 -0
  526. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_063_lifecycle_policy.py +18 -0
  527. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_064_event_sinks.py +18 -0
  528. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_065_recovery_workers.py +18 -0
  529. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_066_observability.py +18 -0
  530. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_072_run_profiles.py +11 -0
  531. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_075_lifecycle_policy.py +18 -0
  532. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_077_observability_tracing.py +18 -0
  533. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_078_workflows.py +18 -0
  534. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_079_background_jobs_tool.py +18 -0
  535. brian_core-2.0.0rc1/tests/contracts/cases/advanced/test_cap_087_diagnostics_health.py +11 -0
  536. brian_core-2.0.0rc1/tests/contracts/cases/shared/__init__.py +0 -0
  537. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_001_cli_entry.py +11 -0
  538. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_002_tui_entry.py +11 -0
  539. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_003_api_startup.py +11 -0
  540. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_004_scheduler_service.py +11 -0
  541. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_005_heartbeat.py +11 -0
  542. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_006_http_api_server.py +16 -0
  543. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_007_api_authentication.py +16 -0
  544. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_008_capability_discovery.py +16 -0
  545. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_009_model_discovery.py +16 -0
  546. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_010_toolset_and_mcp_discovery.py +16 -0
  547. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_014_agent_runs_management.py +16 -0
  548. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_029_tool_registry.py +16 -0
  549. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_030_durable_execution.py +16 -0
  550. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_031_hitl_interruptions.py +16 -0
  551. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_032_permission_scope.py +16 -0
  552. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_033_sandboxing.py +11 -0
  553. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_034_security_scanning.py +16 -0
  554. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_035_data_redaction.py +16 -0
  555. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_036_session_persistence.py +16 -0
  556. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_037_session_save_policy.py +16 -0
  557. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_038_memory_tool.py +16 -0
  558. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_039_soul_md.py +16 -0
  559. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_040_prompt_context.py +16 -0
  560. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_041_context_management.py +16 -0
  561. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_047_fault_tolerant_execution_kernel.py +16 -0
  562. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_048_lifecycle_policy_engine.py +16 -0
  563. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_050_persistence.py +13 -0
  564. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_051_cancellation.py +13 -0
  565. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_053_concurrency.py +13 -0
  566. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_057_scheduler_loop.py +18 -0
  567. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_058_command_runner.py +18 -0
  568. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_059_agent_runner.py +18 -0
  569. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_060_webhooks_inbound.py +18 -0
  570. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_061_webhooks_outbound.py +18 -0
  571. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_067_skills_lifecycle.py +11 -0
  572. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_068_mcp_integration.py +11 -0
  573. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_069_remote_agents.py +11 -0
  574. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_070_hitl_policy.py +11 -0
  575. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_071_durable_execution.py +11 -0
  576. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_073_platform_contracts.py +11 -0
  577. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_074_scheduler_service.py +18 -0
  578. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_076_event_sinks_webhooks.py +18 -0
  579. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_080_heartbeat_tool.py +18 -0
  580. brian_core-2.0.0rc1/tests/contracts/cases/shared/test_cap_090_tool_access_modes.py +11 -0
  581. brian_core-2.0.0rc1/tests/contracts/evidence.schema.json +390 -0
  582. brian_core-2.0.0rc1/tests/contracts/manifest.json +4613 -0
  583. brian_core-2.0.0rc1/tests/contracts/test_contract_profile_runner.py +481 -0
  584. brian_core-2.0.0rc1/tests/contracts/test_distribution_artifacts.py +235 -0
  585. brian_core-2.0.0rc1/tests/contracts/test_evidence_schema.py +186 -0
  586. brian_core-2.0.0rc1/tests/contracts/test_package_architecture.py +338 -0
  587. brian_core-2.0.0rc1/tests/e2e/mock_provider.py +46 -0
  588. brian_core-2.0.0rc1/tests/e2e/test_advanced_loop.py +129 -0
  589. brian_core-2.0.0rc1/tests/e2e/test_agent_loop.py +103 -0
  590. brian_core-2.0.0rc1/tests/e2e/test_cli.py +35 -0
  591. brian_core-2.0.0rc1/tests/e2e/test_permission_modes.py +131 -0
  592. brian_core-2.0.0rc1/tests/e2e/test_tui.py +168 -0
  593. brian_core-2.0.0rc1/tests/real_path/__init__.py +0 -0
  594. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_026_agent_terminal.py +11 -0
  595. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_027_fork_agent.py +11 -0
  596. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_067_skills_lifecycle.py +11 -0
  597. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_068_mcp_integration.py +11 -0
  598. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_069_remote_agents.py +11 -0
  599. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_070_hitl_policy.py +11 -0
  600. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_071_durable_execution.py +11 -0
  601. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_072_run_profiles.py +11 -0
  602. brian_core-2.0.0rc1/tests/real_path/wp10-extensions-mcp/test_cap_073_platform_contracts.py +11 -0
  603. brian_core-2.0.0rc1/tests/real_path/wp11-hardening/test_cap_087_diagnostics_health.py +14 -0
  604. brian_core-2.0.0rc1/tests/real_path/wp11-hardening/test_cap_090_tool_access_modes.py +14 -0
  605. brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_001_cli_entry.py +14 -0
  606. brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_002_tui_entry.py +14 -0
  607. brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_003_api_startup.py +14 -0
  608. brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_004_scheduler_service.py +14 -0
  609. brian_core-2.0.0rc1/tests/real_path/wp13-standalone-hosts/test_cap_005_heartbeat.py +14 -0
  610. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/__init__.py +0 -0
  611. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_047_fault_tolerant_execution_kernel.py +16 -0
  612. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_049_checkpoints.py +16 -0
  613. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_050_persistence.py +16 -0
  614. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_051_cancellation.py +16 -0
  615. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_052_reconciliation.py +16 -0
  616. brian_core-2.0.0rc1/tests/real_path/wp3-kernel/test_cap_053_concurrency.py +16 -0
  617. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_029_tool_registry.py +16 -0
  618. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_030_durable_execution.py +16 -0
  619. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_031_hitl_interruptions.py +16 -0
  620. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_032_permission_scope.py +16 -0
  621. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_033_sandboxing.py +11 -0
  622. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_034_security_scanning.py +16 -0
  623. brian_core-2.0.0rc1/tests/real_path/wp5-tools-hitl-security/test_cap_035_data_redaction.py +16 -0
  624. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_036_session_persistence.py +16 -0
  625. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_037_session_save_policy.py +16 -0
  626. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_038_memory_tool.py +16 -0
  627. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_039_soul_md.py +16 -0
  628. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_040_prompt_context.py +16 -0
  629. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_041_context_management.py +16 -0
  630. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_042_session_trees.py +16 -0
  631. brian_core-2.0.0rc1/tests/real_path/wp6-context-sessions-memory/test_cap_043_memory_promotion.py +16 -0
  632. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_006_http_api_server.py +16 -0
  633. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_007_api_authentication.py +16 -0
  634. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_008_capability_discovery.py +16 -0
  635. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_009_model_discovery.py +16 -0
  636. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_010_toolset_and_mcp_discovery.py +16 -0
  637. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_014_agent_runs_management.py +16 -0
  638. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_048_lifecycle_policy_engine.py +16 -0
  639. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_054_run_event_streaming.py +16 -0
  640. brian_core-2.0.0rc1/tests/real_path/wp8-api-lifecycle/test_cap_055_run_event_consumer.py +16 -0
  641. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_057_scheduler_loop.py +18 -0
  642. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_058_command_runner.py +18 -0
  643. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_059_agent_runner.py +18 -0
  644. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_060_webhooks_inbound.py +18 -0
  645. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_061_webhooks_outbound.py +18 -0
  646. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_062_workflows.py +18 -0
  647. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_063_lifecycle_policy.py +18 -0
  648. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_064_event_sinks.py +18 -0
  649. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_065_recovery_workers.py +18 -0
  650. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_066_observability.py +18 -0
  651. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_074_scheduler_service.py +18 -0
  652. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_075_lifecycle_policy.py +18 -0
  653. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_076_event_sinks_webhooks.py +18 -0
  654. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_077_observability_tracing.py +18 -0
  655. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_078_workflows.py +18 -0
  656. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_079_background_jobs_tool.py +18 -0
  657. brian_core-2.0.0rc1/tests/real_path/wp9-automation-workflows/test_cap_080_heartbeat_tool.py +18 -0
  658. brian_core-2.0.0rc1/tests/test_api_bench.py +148 -0
  659. brian_core-2.0.0rc1/tests/test_api_chat.py +932 -0
  660. brian_core-2.0.0rc1/tests/test_api_discovery.py +37 -0
  661. brian_core-2.0.0rc1/tests/test_api_jobs_hooks.py +56 -0
  662. brian_core-2.0.0rc1/tests/test_api_responses.py +58 -0
  663. brian_core-2.0.0rc1/tests/test_api_runs.py +101 -0
  664. brian_core-2.0.0rc1/tests/test_api_session_search.py +102 -0
  665. brian_core-2.0.0rc1/tests/test_api_sessions.py +88 -0
  666. brian_core-2.0.0rc1/tests/test_api_sms.py +229 -0
  667. brian_core-2.0.0rc1/tests/test_api_webauth.py +200 -0
  668. brian_core-2.0.0rc1/tests/test_api_worker_pool.py +45 -0
  669. brian_core-2.0.0rc1/tests/test_approval_links.py +107 -0
  670. brian_core-2.0.0rc1/tests/test_async_bridge.py +47 -0
  671. brian_core-2.0.0rc1/tests/test_background_tasks.py +296 -0
  672. brian_core-2.0.0rc1/tests/test_bash_timeout_handoff.py +104 -0
  673. brian_core-2.0.0rc1/tests/test_brian_home.py +61 -0
  674. brian_core-2.0.0rc1/tests/test_browser_devtools.py +123 -0
  675. brian_core-2.0.0rc1/tests/test_cache_compaction_refresh.py +64 -0
  676. brian_core-2.0.0rc1/tests/test_cache_replay_benchmark.py +213 -0
  677. brian_core-2.0.0rc1/tests/test_cli_ensure_config.py +137 -0
  678. brian_core-2.0.0rc1/tests/test_cli_help_without_env.py +54 -0
  679. brian_core-2.0.0rc1/tests/test_cloudflare_tool.py +294 -0
  680. brian_core-2.0.0rc1/tests/test_compaction_persistence.py +122 -0
  681. brian_core-2.0.0rc1/tests/test_computer_session.py +138 -0
  682. brian_core-2.0.0rc1/tests/test_computer_tool.py +157 -0
  683. brian_core-2.0.0rc1/tests/test_concierge.py +194 -0
  684. brian_core-2.0.0rc1/tests/test_converter_roles.py +42 -0
  685. brian_core-2.0.0rc1/tests/test_crm_settings_api.py +164 -0
  686. brian_core-2.0.0rc1/tests/test_data_tools.py +199 -0
  687. brian_core-2.0.0rc1/tests/test_exit_hitl.py +34 -0
  688. brian_core-2.0.0rc1/tests/test_first_run.py +80 -0
  689. brian_core-2.0.0rc1/tests/test_generic_core_configuration.py +111 -0
  690. brian_core-2.0.0rc1/tests/test_hitl_policy.py +51 -0
  691. brian_core-2.0.0rc1/tests/test_interrupt_reaper.py +173 -0
  692. brian_core-2.0.0rc1/tests/test_loop_hook_failures.py +126 -0
  693. brian_core-2.0.0rc1/tests/test_loop_invalid_toolcalls.py +164 -0
  694. brian_core-2.0.0rc1/tests/test_loop_never_parallel.py +36 -0
  695. brian_core-2.0.0rc1/tests/test_loop_no_progress_guard.py +287 -0
  696. brian_core-2.0.0rc1/tests/test_loop_parallel_context.py +75 -0
  697. brian_core-2.0.0rc1/tests/test_loop_reasoning_replay.py +109 -0
  698. brian_core-2.0.0rc1/tests/test_loop_runtime_integration.py +130 -0
  699. brian_core-2.0.0rc1/tests/test_loop_stream_catchup.py +145 -0
  700. brian_core-2.0.0rc1/tests/test_loop_stream_preemption.py +226 -0
  701. brian_core-2.0.0rc1/tests/test_loop_tool_scope.py +191 -0
  702. brian_core-2.0.0rc1/tests/test_loop_transient_stream_retry.py +86 -0
  703. brian_core-2.0.0rc1/tests/test_maintenance.py +156 -0
  704. brian_core-2.0.0rc1/tests/test_mcp_concurrency_fix.py +228 -0
  705. brian_core-2.0.0rc1/tests/test_mcp_config.py +92 -0
  706. brian_core-2.0.0rc1/tests/test_mcp_watchdog.py +167 -0
  707. brian_core-2.0.0rc1/tests/test_media_i2v.py +267 -0
  708. brian_core-2.0.0rc1/tests/test_model_bench_tool.py +104 -0
  709. brian_core-2.0.0rc1/tests/test_notify_calls.py +184 -0
  710. brian_core-2.0.0rc1/tests/test_overflow_signatures.py +270 -0
  711. brian_core-2.0.0rc1/tests/test_response_store.py +33 -0
  712. brian_core-2.0.0rc1/tests/test_run_status_redaction_guard.py +69 -0
  713. brian_core-2.0.0rc1/tests/test_run_store.py +28 -0
  714. brian_core-2.0.0rc1/tests/test_runpod_tool.py +291 -0
  715. brian_core-2.0.0rc1/tests/test_runtime_model.py +19 -0
  716. brian_core-2.0.0rc1/tests/test_scheduler_command_runner.py +37 -0
  717. brian_core-2.0.0rc1/tests/test_scheduler_service.py +79 -0
  718. brian_core-2.0.0rc1/tests/test_scheduler_store.py +52 -0
  719. brian_core-2.0.0rc1/tests/test_sdk.py +68 -0
  720. brian_core-2.0.0rc1/tests/test_session_persistence.py +180 -0
  721. brian_core-2.0.0rc1/tests/test_session_save_policy.py +65 -0
  722. brian_core-2.0.0rc1/tests/test_skill_github_sync.py +44 -0
  723. brian_core-2.0.0rc1/tests/test_skill_management.py +73 -0
  724. brian_core-2.0.0rc1/tests/test_skill_security.py +23 -0
  725. brian_core-2.0.0rc1/tests/test_soul_prompt.py +49 -0
  726. brian_core-2.0.0rc1/tests/test_ssh_hosts_api.py +182 -0
  727. brian_core-2.0.0rc1/tests/test_ssh_tool.py +228 -0
  728. brian_core-2.0.0rc1/tests/test_tool_execution_deadline.py +54 -0
  729. brian_core-2.0.0rc1/tests/test_ttgcrm_tools.py +199 -0
  730. brian_core-2.0.0rc1/tests/test_tui_model_switch.py +368 -0
  731. brian_core-2.0.0rc1/tests/test_video_edit.py +200 -0
  732. brian_core-2.0.0rc1/tests/test_video_pending_resume.py +155 -0
  733. brian_core-2.0.0rc1/tests/test_voice_attach.py +391 -0
  734. brian_core-2.0.0rc1/tests/test_voice_config_tool.py +134 -0
  735. brian_core-2.0.0rc1/tests/test_voice_controls.py +327 -0
  736. brian_core-2.0.0rc1/tests/test_voice_settings_api.py +246 -0
  737. brian_core-2.0.0rc1/tests/test_voice_tool_scope.py +196 -0
  738. brian_core-2.0.0rc1/tests/test_workspace.py +139 -0
  739. brian_core-2.0.0rc1/tests/test_workspace_api.py +99 -0
  740. brian_core-2.0.0rc1/tests/test_workspace_notes.py +158 -0
  741. brian_core-2.0.0rc1/tests/tools/test_execution_tools.py +23 -0
  742. brian_core-2.0.0rc1/tests/tools/test_file_tools.py +51 -0
  743. brian_core-2.0.0rc1/tests/tools/test_file_write_artifacts.py +67 -0
  744. brian_core-2.0.0rc1/tests/tools/test_heartbeat_reflection.py +210 -0
  745. brian_core-2.0.0rc1/tests/tools/test_memory_tool.py +192 -0
  746. brian_core-2.0.0rc1/tests/tools/test_memory_tool_index.py +222 -0
  747. brian_core-2.0.0rc1/tests/tools/test_python_interpreter_files.py +133 -0
  748. brian_core-2.0.0rc1/tests/tools/test_read_document.py +394 -0
  749. brian_core-2.0.0rc1/tests/tools/test_swarm_tool.py +166 -0
  750. brian_core-2.0.0rc1/tests/tools/test_system_tools.py +38 -0
  751. brian_core-2.0.0rc1/tests/tools/test_team_tool.py +43 -0
  752. brian_core-2.0.0rc1/tests/tui/test_loop_guard_and_guided.py +106 -0
  753. brian_core-2.0.0rc1/tests/tui/test_sidebar.py +125 -0
  754. brian_core-2.0.0rc1/tests/utils/test_display_loop_guard.py +58 -0
  755. brian_core-2.0.0rc1/tests/utils/test_env_compat.py +41 -0
  756. brian_core-2.0.0rc1/tests/utils/test_session.py +55 -0
  757. brian_core-2.0.0rc1/tests/utils/test_session_cleanup.py +35 -0
  758. brian_core-2.0.0rc1/tests/wp10_cases/case_agent_terminal.py +205 -0
  759. brian_core-2.0.0rc1/tests/wp10_cases/case_durable_execution.py +619 -0
  760. brian_core-2.0.0rc1/tests/wp10_cases/case_fork_agent.py +352 -0
  761. brian_core-2.0.0rc1/tests/wp10_cases/case_hitl_policy.py +663 -0
  762. brian_core-2.0.0rc1/tests/wp10_cases/case_mcp_integration.py +545 -0
  763. brian_core-2.0.0rc1/tests/wp10_cases/case_platform_contracts.py +520 -0
  764. brian_core-2.0.0rc1/tests/wp10_cases/case_real_path.py +513 -0
  765. brian_core-2.0.0rc1/tests/wp10_cases/case_remote_agents.py +459 -0
  766. brian_core-2.0.0rc1/tests/wp10_cases/case_run_profiles.py +536 -0
  767. brian_core-2.0.0rc1/tests/wp10_cases/case_skills_lifecycle.py +333 -0
  768. brian_core-2.0.0rc1/tests/wp10_cases/wp10_installed_probe.py +380 -0
  769. brian_core-2.0.0rc1/tests/wp10_extensions_mcp_contract_harness.py +241 -0
  770. brian_core-2.0.0rc1/tests/wp11_cases/case_hardening.py +443 -0
  771. brian_core-2.0.0rc1/tests/wp11_cases/case_real_path.py +272 -0
  772. brian_core-2.0.0rc1/tests/wp11_cases/wp11_installed_probe.py +138 -0
  773. brian_core-2.0.0rc1/tests/wp11_hardening_contract_harness.py +243 -0
  774. brian_core-2.0.0rc1/tests/wp13_cases/case_real_path.py +130 -0
  775. brian_core-2.0.0rc1/tests/wp13_cases/case_standalone_hosts.py +276 -0
  776. brian_core-2.0.0rc1/tests/wp13_cases/wp13_installed_probe.py +483 -0
  777. brian_core-2.0.0rc1/tests/wp13_standalone_hosts_contract_harness.py +288 -0
  778. brian_core-2.0.0rc1/tests/wp3_kernel_contract_harness.py +501 -0
  779. brian_core-2.0.0rc1/tests/wp5_tools_hitl_security_contract_harness.py +818 -0
  780. brian_core-2.0.0rc1/tests/wp6_context_sessions_memory_contract_harness.py +1120 -0
  781. brian_core-2.0.0rc1/tests/wp8_api_lifecycle_contract_harness.py +2028 -0
  782. brian_core-2.0.0rc1/tests/wp9_automation_workflows_contract_harness.py +146 -0
  783. brian_core-2.0.0rc1/tests/wp9_cases/__init__.py +0 -0
  784. brian_core-2.0.0rc1/tests/wp9_cases/case_agent_runner.py +163 -0
  785. brian_core-2.0.0rc1/tests/wp9_cases/case_background_jobs.py +286 -0
  786. brian_core-2.0.0rc1/tests/wp9_cases/case_command_runner.py +113 -0
  787. brian_core-2.0.0rc1/tests/wp9_cases/case_event_outbox.py +106 -0
  788. brian_core-2.0.0rc1/tests/wp9_cases/case_heartbeat.py +277 -0
  789. brian_core-2.0.0rc1/tests/wp9_cases/case_inbound_webhook.py +140 -0
  790. brian_core-2.0.0rc1/tests/wp9_cases/case_lifecycle_policy.py +304 -0
  791. brian_core-2.0.0rc1/tests/wp9_cases/case_observability.py +200 -0
  792. brian_core-2.0.0rc1/tests/wp9_cases/case_real_path.py +546 -0
  793. brian_core-2.0.0rc1/tests/wp9_cases/case_scheduler_service.py +114 -0
  794. brian_core-2.0.0rc1/tests/wp9_cases/case_workflow.py +315 -0
  795. brian_core-2.0.0rc1/tests/wp9_cases/heartbeat_lock_holder.py +30 -0
  796. brian_core-2.0.0rc1/tests/wp9_cases/heartbeat_phase_sleeper.py +34 -0
  797. 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).