aria-code 0.132.0__tar.gz → 0.134.0__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 (861) hide show
  1. {aria_code-0.132.0/src/aria_code.egg-info → aria_code-0.134.0}/PKG-INFO +2 -2
  2. {aria_code-0.132.0 → aria_code-0.134.0}/README.md +1 -1
  3. {aria_code-0.132.0 → aria_code-0.134.0}/pyproject.toml +1 -1
  4. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/_version.py +1 -1
  5. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/exec_events.py +15 -0
  6. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/headless.py +9 -4
  7. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/agent_loop.py +66 -0
  8. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/baseline.py +77 -5
  9. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/delivery.py +1 -0
  10. {aria_code-0.132.0 → aria_code-0.134.0/src/aria_code.egg-info}/PKG-INFO +2 -2
  11. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code.egg-info/SOURCES.txt +1 -0
  12. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_baseline.py +61 -0
  13. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_exec_events.py +55 -1
  14. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_headless_command_approval.py +5 -1
  15. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_agent_loop.py +95 -0
  16. aria_code-0.134.0/tests/test_rust_stream.py +284 -0
  17. {aria_code-0.132.0 → aria_code-0.134.0}/LICENSE +0 -0
  18. {aria_code-0.132.0 → aria_code-0.134.0}/NOTICE +0 -0
  19. {aria_code-0.132.0 → aria_code-0.134.0}/setup.cfg +0 -0
  20. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/__init__.py +0 -0
  21. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/adk_apps/__init__.py +0 -0
  22. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
  23. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
  24. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
  25. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
  26. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/__init__.py +0 -0
  27. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/base.py +0 -0
  28. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/code_review.py +0 -0
  29. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/__init__.py +0 -0
  30. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
  31. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/critic.py +0 -0
  32. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/deepen.py +0 -0
  33. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/models.py +0 -0
  34. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/pipeline.py +0 -0
  35. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
  36. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/themes.py +0 -0
  37. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/deep/tiers.py +0 -0
  38. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/engineering/__init__.py +0 -0
  39. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/engineering/coder.py +0 -0
  40. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/engineering/tester.py +0 -0
  41. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/__init__.py +0 -0
  42. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
  43. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/catalyst.py +0 -0
  44. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
  45. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/debate.py +0 -0
  46. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/earnings.py +0 -0
  47. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/fundamental.py +0 -0
  48. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/macro.py +0 -0
  49. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/news.py +0 -0
  50. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/risk.py +0 -0
  51. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/sector.py +0 -0
  52. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/strategist.py +0 -0
  53. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
  54. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/synthesis.py +0 -0
  55. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/financial/technical.py +0 -0
  56. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/orchestrator.py +0 -0
  57. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/portfolio_agent.py +0 -0
  58. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/__init__.py +0 -0
  59. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
  60. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/business_match.py +0 -0
  61. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
  62. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
  63. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
  64. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
  65. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
  66. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
  67. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
  68. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/registry.py +0 -0
  69. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/signal_scheme.py +0 -0
  70. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/sports/__init__.py +0 -0
  71. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/sports/football_agent.py +0 -0
  72. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/supervisor.py +0 -0
  73. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/team.py +0 -0
  74. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
  75. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
  76. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
  77. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
  78. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
  79. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
  80. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
  81. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
  82. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
  83. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
  84. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
  85. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aliyun_data_client.py +0 -0
  86. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/README.md +0 -0
  87. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/__init__.py +0 -0
  88. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/README.md +0 -0
  89. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/__init__.py +0 -0
  90. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/approvals.py +0 -0
  91. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/conversation.py +0 -0
  92. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/digest.py +0 -0
  93. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/intake.py +0 -0
  94. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/registry.py +0 -0
  95. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/channels/tradingview.py +0 -0
  96. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/README.md +0 -0
  97. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/__init__.py +0 -0
  98. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/_optional.py +0 -0
  99. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
  100. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/broker_render.py +0 -0
  101. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/chat_turn.py +0 -0
  102. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
  103. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
  104. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
  105. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
  106. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
  107. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
  108. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
  109. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
  110. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
  111. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
  112. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
  113. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
  114. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
  115. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
  116. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
  117. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
  118. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
  119. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
  120. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
  121. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/market.py +0 -0
  122. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
  123. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
  124. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
  125. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
  126. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
  127. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
  128. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
  129. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
  130. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/report.py +0 -0
  131. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
  132. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
  133. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
  134. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/team.py +0 -0
  135. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
  136. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
  137. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
  138. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
  139. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
  140. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/config_paths.py +0 -0
  141. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/config_store.py +0 -0
  142. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/constants.py +0 -0
  143. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/context.py +0 -0
  144. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/deterministic.py +0 -0
  145. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/direct.py +0 -0
  146. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
  147. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
  148. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/football_reports.py +0 -0
  149. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
  150. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/google_login.py +0 -0
  151. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
  152. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
  153. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
  154. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
  155. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
  156. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
  157. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
  158. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/helpers.py +0 -0
  159. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/hooks.py +0 -0
  160. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/i18n.py +0 -0
  161. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/intent.py +0 -0
  162. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/intent_router.py +0 -0
  163. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
  164. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
  165. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
  166. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/main.py +0 -0
  167. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/market_hours.py +0 -0
  168. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
  169. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/market_universe.py +0 -0
  170. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/message_processing.py +0 -0
  171. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
  172. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
  173. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/model_probe.py +0 -0
  174. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/model_retirement.py +0 -0
  175. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/native_bridge.py +0 -0
  176. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
  177. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
  178. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
  179. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
  180. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/preflight.py +0 -0
  181. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/project_aria.py +0 -0
  182. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
  183. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
  184. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
  185. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
  186. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
  187. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
  188. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
  189. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
  190. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
  191. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/base.py +0 -0
  192. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
  193. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
  194. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
  195. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
  196. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
  197. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
  198. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
  199. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
  200. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
  201. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/release_download.py +0 -0
  202. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/review_runner.py +0 -0
  203. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
  204. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/sandbox.py +0 -0
  205. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/session_export.py +0 -0
  206. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
  207. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/session_store.py +0 -0
  208. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
  209. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/task_isolation.py +0 -0
  210. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
  211. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
  212. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
  213. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
  214. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
  215. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
  216. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/context.py +0 -0
  217. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
  218. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
  219. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
  220. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
  221. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
  222. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
  223. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/transactions.py +0 -0
  224. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
  225. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/update_check.py +0 -0
  226. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/updater.py +0 -0
  227. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
  228. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
  229. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/workflow_runner.py +0 -0
  230. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
  231. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/daemon/README.md +0 -0
  232. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/vscode/README.md +0 -0
  233. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/apps/vscode/package.json +0 -0
  234. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_cli.py +0 -0
  235. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_daemon.py +0 -0
  236. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_feishu_bot.py +0 -0
  237. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_mcp_server.py +0 -0
  238. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_relay_client.py +0 -0
  239. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_relay_server.py +0 -0
  240. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/aria_telegram_bot.py +0 -0
  241. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ariarc.py +0 -0
  242. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/artifacts.py +0 -0
  243. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/backtest_engine.py +0 -0
  244. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/backtest_report.py +0 -0
  245. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/__init__.py +0 -0
  246. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/automation.py +0 -0
  247. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/base.py +0 -0
  248. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/capabilities.py +0 -0
  249. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/cn/__init__.py +0 -0
  250. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
  251. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
  252. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
  253. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
  254. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
  255. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/config.py +0 -0
  256. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/intl/__init__.py +0 -0
  257. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
  258. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
  259. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
  260. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
  261. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/paper_broker.py +0 -0
  262. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/planning.py +0 -0
  263. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/registry.py +0 -0
  264. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/brokers/trading.py +0 -0
  265. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/canva_client.py +0 -0
  266. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/change_store.py +0 -0
  267. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/__init__.py +0 -0
  268. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
  269. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/aria_relay_client.py +0 -0
  270. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/canva_client.py +0 -0
  271. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/figma_client.py +0 -0
  272. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/football_data_client.py +0 -0
  273. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/kling_video_client.py +0 -0
  274. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/market_data_client.py +0 -0
  275. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/openai_image_client.py +0 -0
  276. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/runway_video_client.py +0 -0
  277. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
  278. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/cloud_memory.py +0 -0
  279. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/command_safety.py +0 -0
  280. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/computer_use_tools.py +0 -0
  281. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/dashboard_generator.py +0 -0
  282. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/data_analysis_tools.py +0 -0
  283. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/data_cleaner.py +0 -0
  284. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/data_service.py +0 -0
  285. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/__init__.py +0 -0
  286. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/base.py +0 -0
  287. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/router.py +0 -0
  288. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/__init__.py +0 -0
  289. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
  290. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
  291. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
  292. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
  293. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
  294. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
  295. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
  296. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
  297. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
  298. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/demo_player.py +0 -0
  299. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/doctor.py +0 -0
  300. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/domain/__init__.py +0 -0
  301. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/domain/backtest_engine.py +0 -0
  302. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/domain/backtest_report.py +0 -0
  303. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/domain/finance_formulas.py +0 -0
  304. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
  305. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/domain/strategy_vault.py +0 -0
  306. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/__init__.py +0 -0
  307. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/behavior.py +0 -0
  308. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/gap.py +0 -0
  309. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/harness.py +0 -0
  310. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/review_probe.py +0 -0
  311. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/runner.py +0 -0
  312. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/evals/summary.py +0 -0
  313. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/external_agent_runner.py +0 -0
  314. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/figma_client.py +0 -0
  315. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/file_analysis_tools.py +0 -0
  316. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/finance_formulas.py +0 -0
  317. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/football_data_client.py +0 -0
  318. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/image_gen_tools.py +0 -0
  319. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/intent_classifier.py +0 -0
  320. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/kling_video_client.py +0 -0
  321. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/licensing.py +0 -0
  322. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/local_finance_tools.py +0 -0
  323. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/local_image_provider.py +0 -0
  324. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/local_llm_provider.py +0 -0
  325. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/macro_tools.py +0 -0
  326. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/markdown_pdf.py +0 -0
  327. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/market_data_client.py +0 -0
  328. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/mcp_client.py +0 -0
  329. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/memory_manager.py +0 -0
  330. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/model_capability.py +0 -0
  331. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/notification_tools.py +0 -0
  332. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/openai_image_client.py +0 -0
  333. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/__init__.py +0 -0
  334. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
  335. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
  336. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
  337. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
  338. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
  339. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
  340. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
  341. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_core/export.py +0 -0
  342. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
  343. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_core/paths.py +0 -0
  344. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
  345. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
  346. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
  347. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
  348. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_infra/product.py +0 -0
  349. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
  350. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
  351. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
  352. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
  353. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
  354. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
  355. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
  356. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
  357. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
  358. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
  359. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
  360. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
  361. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
  362. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/cache.py +0 -0
  363. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/context.py +0 -0
  364. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
  365. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/data.py +0 -0
  366. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
  367. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/references.py +0 -0
  368. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/registry.py +0 -0
  369. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
  370. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
  371. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/settings.py +0 -0
  372. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_services/usage.py +0 -0
  373. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
  374. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
  375. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
  376. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
  377. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
  378. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
  379. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
  380. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
  381. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
  382. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
  383. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
  384. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
  385. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
  386. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
  387. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
  388. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
  389. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
  390. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
  391. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
  392. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
  393. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
  394. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
  395. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
  396. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
  397. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
  398. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
  399. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
  400. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
  401. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
  402. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
  403. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
  404. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
  405. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
  406. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
  407. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
  408. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/__init__.py +0 -0
  409. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/base.py +0 -0
  410. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/finance/__init__.py +0 -0
  411. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/logistics/__init__.py +0 -0
  412. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/payments/__init__.py +0 -0
  413. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/realty/__init__.py +0 -0
  414. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/registry.py +0 -0
  415. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/packs/rules.py +0 -0
  416. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/plan_utils.py +0 -0
  417. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/plugin_loader.py +0 -0
  418. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/portfolio_ledger.py +0 -0
  419. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/preview_server.py +0 -0
  420. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/privacy/__init__.py +0 -0
  421. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/privacy/feedback.py +0 -0
  422. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/project_review.py +0 -0
  423. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/project_review_api.py +0 -0
  424. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/project_review_server.py +0 -0
  425. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/project_tools.py +0 -0
  426. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/__init__.py +0 -0
  427. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/__init__.py +0 -0
  428. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/anthropic.py +0 -0
  429. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
  430. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/base.py +0 -0
  431. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/custom.py +0 -0
  432. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/ollama.py +0 -0
  433. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
  434. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/llm/registry.py +0 -0
  435. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/local_image_provider.py +0 -0
  436. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/local_llm_provider.py +0 -0
  437. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/providers/tool_messages.py +0 -0
  438. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/realty_data_tools.py +0 -0
  439. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/relay_store.py +0 -0
  440. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/report_exporters.py +0 -0
  441. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/report_generator.py +0 -0
  442. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/review_service.py +0 -0
  443. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/__init__.py +0 -0
  444. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/acceptance.py +0 -0
  445. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/approval.py +0 -0
  446. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/budget.py +0 -0
  447. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/checkpoints.py +0 -0
  448. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/contract.py +0 -0
  449. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/crash_report.py +0 -0
  450. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/events.py +0 -0
  451. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/gateway.py +0 -0
  452. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/lsp.py +0 -0
  453. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/native_index.py +0 -0
  454. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/orchestrator.py +0 -0
  455. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/processes.py +0 -0
  456. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/project_graph.py +0 -0
  457. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/repo_map.py +0 -0
  458. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/review.py +0 -0
  459. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/run_state.py +0 -0
  460. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/run_store.py +0 -0
  461. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/self_healing.py +0 -0
  462. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/semantic_diff.py +0 -0
  463. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/subagent.py +0 -0
  464. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/symbol_edit.py +0 -0
  465. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/task_ledger.py +0 -0
  466. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
  467. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/task_worktree.py +0 -0
  468. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/tool_executor.py +0 -0
  469. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/tool_policy.py +0 -0
  470. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/transactions.py +0 -0
  471. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/windows_job.py +0 -0
  472. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/workflows.py +0 -0
  473. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runtime/worktrees.py +0 -0
  474. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/runway_video_client.py +0 -0
  475. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/safety/__init__.py +0 -0
  476. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/safety/client_isolation.py +0 -0
  477. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/safety/permissions.py +0 -0
  478. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/safety/risk.py +0 -0
  479. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/safety/sandbox.py +0 -0
  480. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/safety/service.py +0 -0
  481. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/setup_wizard.py +0 -0
  482. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/spreadsheet_tools.py +0 -0
  483. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/strategy_vault.py +0 -0
  484. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/__init__.py +0 -0
  485. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/artifact_tools.py +0 -0
  486. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/broker_tools.py +0 -0
  487. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/build_quant_engine.py +0 -0
  488. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/code_audit_tools.py +0 -0
  489. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/computer_use_tools.py +0 -0
  490. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
  491. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
  492. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/extended_tools.py +0 -0
  493. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
  494. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/image_gen_tools.py +0 -0
  495. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/local_finance_tools.py +0 -0
  496. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/logistics_carriers.py +0 -0
  497. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/logistics_inventory.py +0 -0
  498. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/logistics_io.py +0 -0
  499. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
  500. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/logistics_tools.py +0 -0
  501. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/macro_tools.py +0 -0
  502. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/notification_tools.py +0 -0
  503. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/project_tools.py +0 -0
  504. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/realty_data_tools.py +0 -0
  505. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
  506. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/tools/stripe_tools.py +0 -0
  507. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/training/__init__.py +0 -0
  508. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/training/compare.py +0 -0
  509. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/training/sft_dataset.py +0 -0
  510. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/__init__.py +0 -0
  511. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/banner.py +0 -0
  512. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/completer.py +0 -0
  513. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/console.py +0 -0
  514. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/input_box.py +0 -0
  515. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/mentions.py +0 -0
  516. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/picker.py +0 -0
  517. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/__init__.py +0 -0
  518. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/actions.py +0 -0
  519. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/finance.py +0 -0
  520. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/market.py +0 -0
  521. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/output.py +0 -0
  522. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/responsive.py +0 -0
  523. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/render/team.py +0 -0
  524. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/robot.py +0 -0
  525. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/ui/startup_dashboard.py +0 -0
  526. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/utils/vscode_uri.py +0 -0
  527. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/video_analysis.py +0 -0
  528. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/video_editor.py +0 -0
  529. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace/__init__.py +0 -0
  530. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace/files.py +0 -0
  531. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace/verify.py +0 -0
  532. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace_changes.py +0 -0
  533. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace_context.py +0 -0
  534. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace_service.py +0 -0
  535. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code/workspace_tools.py +0 -0
  536. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
  537. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code.egg-info/entry_points.txt +0 -0
  538. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code.egg-info/requires.txt +0 -0
  539. {aria_code-0.132.0 → aria_code-0.134.0}/src/aria_code.egg-info/top_level.txt +0 -0
  540. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_action_view.py +0 -0
  541. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_adk_market_tools.py +0 -0
  542. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_agent_key_points_language.py +0 -0
  543. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_agent_team_fallback.py +0 -0
  544. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_analyze_file_tool.py +0 -0
  545. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_architecture_ledger_is_true.py +0 -0
  546. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_architecture_report.py +0 -0
  547. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_aria_cli_core.py +0 -0
  548. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_aria_mcp_server.py +0 -0
  549. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_aria_sdk.py +0 -0
  550. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_artifact_publishing.py +0 -0
  551. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_artifacts_and_reports.py +0 -0
  552. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ashare_prediction_cmds.py +0 -0
  553. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_background_processes.py +0 -0
  554. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_backtest_cmds.py +0 -0
  555. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_backtest_engine.py +0 -0
  556. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_backtest_report.py +0 -0
  557. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_backtest_runs_what_it_names.py +0 -0
  558. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
  559. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_broken_akshare_is_optional.py +0 -0
  560. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_broker_automation.py +0 -0
  561. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_broker_chat_confirm_gate.py +0 -0
  562. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_broker_planning.py +0 -0
  563. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_broker_safety.py +0 -0
  564. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_broker_tools.py +0 -0
  565. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_budget.py +0 -0
  566. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_business_workflow_cmds.py +0 -0
  567. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_callback_provider_cleanup.py +0 -0
  568. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_canva_client.py +0 -0
  569. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_canvas_cmds.py +0 -0
  570. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_card_approvals.py +0 -0
  571. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_change_contract.py +0 -0
  572. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_channel_intake.py +0 -0
  573. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_channels.py +0 -0
  574. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_chart_handlers.py +0 -0
  575. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_chat_bots_fail_closed.py +0 -0
  576. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_chat_routing.py +0 -0
  577. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_checkpoints_since.py +0 -0
  578. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ci_security_workflow.py +0 -0
  579. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_app_split.py +0 -0
  580. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_bootstrap.py +0 -0
  581. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_config_store.py +0 -0
  582. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_lifecycle_hooks.py +0 -0
  583. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_runtime_consumer.py +0 -0
  584. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_tool_executor_module.py +0 -0
  585. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cli_updater.py +0 -0
  586. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_client_isolation_guard.py +0 -0
  587. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_cloud_memory.py +0 -0
  588. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_code_audit_tools.py +0 -0
  589. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_code_review_agent.py +0 -0
  590. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_codegen_output.py +0 -0
  591. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_coder_tester_self_healing.py +0 -0
  592. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_coder_tool_safety.py +0 -0
  593. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_collaboration.py +0 -0
  594. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_command_loggers.py +0 -0
  595. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_command_safety.py +0 -0
  596. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_compare_strategies.py +0 -0
  597. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_completions_builder.py +0 -0
  598. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_config_paths.py +0 -0
  599. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_configured_provider.py +0 -0
  600. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_container_entrypoint.py +0 -0
  601. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_container_entrypoints.py +0 -0
  602. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_context_checkpoints.py +0 -0
  603. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_context_references.py +0 -0
  604. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_context_service.py +0 -0
  605. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_conversation_core.py +0 -0
  606. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_crash_report.py +0 -0
  607. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_credential_file_permissions.py +0 -0
  608. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_custom_providers.py +0 -0
  609. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_daemon_gateway_config.py +0 -0
  610. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_dashboard_generator.py +0 -0
  611. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_data_service.py +0 -0
  612. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_data_service_imports.py +0 -0
  613. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_data_without_model.py +0 -0
  614. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_datasource_routing.py +0 -0
  615. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_deep_analysis.py +0 -0
  616. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_degrades_without_quant_engine.py +0 -0
  617. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_delivery_report.py +0 -0
  618. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
  619. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_doctor.py +0 -0
  620. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_doctor_describes_the_current_install.py +0 -0
  621. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_doctor_npm_scope.py +0 -0
  622. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_doctor_sandbox.py +0 -0
  623. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_edit_and_command_safety.py +0 -0
  624. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_engine_boundary.py +0 -0
  625. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_english_output_group.py +0 -0
  626. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_enterprise_tool_honesty.py +0 -0
  627. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_env_switch_docs.py +0 -0
  628. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_eval_behavior.py +0 -0
  629. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_eval_hard_suite.py +0 -0
  630. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_eval_holdout.py +0 -0
  631. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_eval_summary.py +0 -0
  632. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_eval_task_bank.py +0 -0
  633. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_eval_trajectories.py +0 -0
  634. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_evals_harness.py +0 -0
  635. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_event_import_roots.py +0 -0
  636. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_extended_tools.py +0 -0
  637. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_feishu_swarm_config.py +0 -0
  638. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_file_links.py +0 -0
  639. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_finalize_release.py +0 -0
  640. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_finance_renderers.py +0 -0
  641. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_finance_service_catalog.py +0 -0
  642. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_first_run_output.py +0 -0
  643. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_first_run_works.py +0 -0
  644. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_football_agent.py +0 -0
  645. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_football_prediction_output.py +0 -0
  646. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_frozen_module_aliases.py +0 -0
  647. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_gemini_retirement.py +0 -0
  648. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_google_cloud_models.py +0 -0
  649. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_google_cloud_routing.py +0 -0
  650. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_google_login.py +0 -0
  651. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_google_search_provider.py +0 -0
  652. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_headless_is_agentic.py +0 -0
  653. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_honest_surfaces.py +0 -0
  654. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_image_gen_tools.py +0 -0
  655. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_image_inputs.py +0 -0
  656. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_import_aliasing.py +0 -0
  657. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_import_graph_budget.py +0 -0
  658. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_intent_router.py +0 -0
  659. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_intent_signals.py +0 -0
  660. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_kling_video_client.py +0 -0
  661. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_lazy_rebind.py +0 -0
  662. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_legacy_module_imports.py +0 -0
  663. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_license_consistency.py +0 -0
  664. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_licensing.py +0 -0
  665. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_linux_sandbox_integration.py +0 -0
  666. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_local_image_provider.py +0 -0
  667. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_local_workspace_execution.py +0 -0
  668. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_logistics_3pl.py +0 -0
  669. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_logistics_and_finance_agents.py +0 -0
  670. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_lsp.py +0 -0
  671. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_markdown_pdf.py +0 -0
  672. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_answers_in_english.py +0 -0
  673. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_data_client.py +0 -0
  674. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_history_inheritance.py +0 -0
  675. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_history_tool.py +0 -0
  676. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_hours.py +0 -0
  677. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_questions_on_backend.py +0 -0
  678. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_symbol_extraction.py +0 -0
  679. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_market_universe.py +0 -0
  680. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_mcp_circuit.py +0 -0
  681. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_mcp_client.py +0 -0
  682. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_mentions.py +0 -0
  683. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_model_capability_registry.py +0 -0
  684. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_model_choice_is_the_users.py +0 -0
  685. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_model_probe.py +0 -0
  686. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_model_selection_state.py +0 -0
  687. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_narrow_chinese_output.py +0 -0
  688. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_native_binary_entrypoints.py +0 -0
  689. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_native_bridge.py +0 -0
  690. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_native_index.py +0 -0
  691. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_native_installer.py +0 -0
  692. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_natural_language_routing.py +0 -0
  693. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_new_modules.py +0 -0
  694. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
  695. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_no_tools_route.py +0 -0
  696. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_no_uncommitted_imports.py +0 -0
  697. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_numeric_listings.py +0 -0
  698. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ollama_stream_imports.py +0 -0
  699. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ollama_stream_tools.py +0 -0
  700. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_openai_image_client.py +0 -0
  701. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_operations_suite.py +0 -0
  702. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_os_sandbox.py +0 -0
  703. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_output_discipline_prompt.py +0 -0
  704. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_output_rendering.py +0 -0
  705. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_packages_facade.py +0 -0
  706. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_packaging_constraints.py +0 -0
  707. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_packaging_manifest.py +0 -0
  708. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_packs_domains.py +0 -0
  709. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_pdf_report.py +0 -0
  710. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_pick_best_installed_model.py +0 -0
  711. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_plan_mode.py +0 -0
  712. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_platform_package_assembly.py +0 -0
  713. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_platform_packages.py +0 -0
  714. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_platform_publish.py +0 -0
  715. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_plotly_html_output.py +0 -0
  716. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_portfolio_language.py +0 -0
  717. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_portfolio_ledger.py +0 -0
  718. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_post_turn_context_decision.py +0 -0
  719. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_preflight.py +0 -0
  720. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_preview_server.py +0 -0
  721. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_privacy_feedback.py +0 -0
  722. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_project_aria.py +0 -0
  723. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_project_context_files.py +0 -0
  724. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_project_graph.py +0 -0
  725. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_project_review.py +0 -0
  726. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_project_review_api.py +0 -0
  727. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_prompt_assembly.py +0 -0
  728. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_prompt_dates.py +0 -0
  729. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_prompt_selection.py +0 -0
  730. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_provider_autoconfig.py +0 -0
  731. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_provider_error_classification.py +0 -0
  732. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_provider_error_messages.py +0 -0
  733. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_provider_integration.py +0 -0
  734. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_provider_registry.py +0 -0
  735. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_public_service_status.py +0 -0
  736. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_quant_engine_namespace.py +0 -0
  737. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_rebind_contract.py +0 -0
  738. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_rebind_namespace_contract.py +0 -0
  739. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_client_credentials.py +0 -0
  740. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_contract.py +0 -0
  741. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_event_verification.py +0 -0
  742. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_reliability.py +0 -0
  743. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_sends_for_clients.py +0 -0
  744. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_store.py +0 -0
  745. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_relay_url.py +0 -0
  746. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_badges.py +0 -0
  747. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_chain.py +0 -0
  748. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_commit_identity.py +0 -0
  749. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_download.py +0 -0
  750. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_push_is_atomic.py +0 -0
  751. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_reaches_the_registries.py +0 -0
  752. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_verification_waits.py +0 -0
  753. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_release_workflow_permissions.py +0 -0
  754. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_report_charts.py +0 -0
  755. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_report_generator.py +0 -0
  756. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_report_prompt_language.py +0 -0
  757. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_research_protocol.py +0 -0
  758. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_research_quality.py +0 -0
  759. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_responsive_rendering.py +0 -0
  760. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_review_gate.py +0 -0
  761. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_review_service.py +0 -0
  762. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_risk_approval.py +0 -0
  763. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_risk_assessment.py +0 -0
  764. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_risk_earnings_ops.py +0 -0
  765. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_robot_artwork.py +0 -0
  766. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_root_module_budget.py +0 -0
  767. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_rsi_without_pandas_ta.py +0 -0
  768. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_run_store_redaction.py +0 -0
  769. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_acceptance.py +0 -0
  770. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_approval.py +0 -0
  771. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_bridge.py +0 -0
  772. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_bridge_fallback.py +0 -0
  773. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_checkpoints.py +0 -0
  774. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_event_identity.py +0 -0
  775. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_gateway.py +0 -0
  776. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_repo_map.py +0 -0
  777. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_run_store.py +0 -0
  778. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_tool_executor.py +0 -0
  779. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runtime_worktrees.py +0 -0
  780. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_runway_video_client.py +0 -0
  781. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_rust_cli.py +0 -0
  782. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_rust_state.py +0 -0
  783. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_safety_permissions.py +0 -0
  784. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_safety_service.py +0 -0
  785. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_safety_service_adoption.py +0 -0
  786. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_semantic_diff.py +0 -0
  787. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_service_diagnostics_security.py +0 -0
  788. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_session_search.py +0 -0
  789. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_settings_service.py +0 -0
  790. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_shell_commands_as_written.py +0 -0
  791. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_shipper_digest.py +0 -0
  792. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_single_import_root.py +0 -0
  793. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_skill_agent_binding.py +0 -0
  794. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_skill_catalog.py +0 -0
  795. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_skill_loader.py +0 -0
  796. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_slash_popup.py +0 -0
  797. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_spreadsheet_tools.py +0 -0
  798. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_sse_http_roundtrip.py +0 -0
  799. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_sse_stream_contract.py +0 -0
  800. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_startup_dashboard.py +0 -0
  801. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_startup_keeps_cloud_model.py +0 -0
  802. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_startup_latency.py +0 -0
  803. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_status_language.py +0 -0
  804. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_streaming_pipeline.py +0 -0
  805. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_stripe_agent.py +0 -0
  806. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_subagent.py +0 -0
  807. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_subagent_workspace.py +0 -0
  808. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_supervisor_routing.py +0 -0
  809. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_symbol_edit.py +0 -0
  810. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_system_prompts.py +0 -0
  811. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_system_tools_output.py +0 -0
  812. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_task_isolation_turn.py +0 -0
  813. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_task_orchestrator.py +0 -0
  814. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_task_restore_startup.py +0 -0
  815. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_task_worktree.py +0 -0
  816. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_team_analysts.py +0 -0
  817. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_team_synthesis.py +0 -0
  818. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_terminal_mixins.py +0 -0
  819. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_terminal_snapshots.py +0 -0
  820. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_tls_trust_store.py +0 -0
  821. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_tool_policy.py +0 -0
  822. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
  823. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_tool_scope.py +0 -0
  824. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_tool_step_output.py +0 -0
  825. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_trading_service.py +0 -0
  826. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_tradingview_bridge.py +0 -0
  827. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_training_pipeline.py +0 -0
  828. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_transactions.py +0 -0
  829. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_transactions_turn.py +0 -0
  830. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_turn_planning.py +0 -0
  831. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ui_completer_references.py +0 -0
  832. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ui_console_theme.py +0 -0
  833. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ui_input_box.py +0 -0
  834. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ui_language_and_model.py +0 -0
  835. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_ui_robot_banner.py +0 -0
  836. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_update_health_routes.py +0 -0
  837. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_verification_hint.py +0 -0
  838. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_verification_policy.py +0 -0
  839. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_verification_runner_selection.py +0 -0
  840. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_version_consistency.py +0 -0
  841. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_version_counter.py +0 -0
  842. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_vertex_busy_retry.py +0 -0
  843. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_vertex_empty_rounds.py +0 -0
  844. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_vertex_models.py +0 -0
  845. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_vertexai_tool_history.py +0 -0
  846. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_video_analysis.py +0 -0
  847. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_video_editor.py +0 -0
  848. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_vscode_mcp.py +0 -0
  849. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_warehouse_agents.py +0 -0
  850. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_warehouse_cli_registration.py +0 -0
  851. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_warehouse_erp_client.py +0 -0
  852. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_warehouse_workflow.py +0 -0
  853. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_wheel_is_installable.py +0 -0
  854. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workflows.py +0 -0
  855. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workspace_changes.py +0 -0
  856. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workspace_context.py +0 -0
  857. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workspace_files.py +0 -0
  858. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workspace_scope.py +0 -0
  859. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workspace_service.py +0 -0
  860. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_workspace_verify.py +0 -0
  861. {aria_code-0.132.0 → aria_code-0.134.0}/tests/test_wrapped_indent.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aria-code
3
- Version: 0.132.0
3
+ Version: 0.134.0
4
4
  Summary: Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/artheras/aria-code
@@ -172,7 +172,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
172
172
  <p align="center">
173
173
  <a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
174
174
  <!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
175
- <a href="https://pypi.org/project/aria-code/0.132.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.132.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
175
+ <a href="https://pypi.org/project/aria-code/0.134.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.134.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
176
176
  <a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
177
177
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
178
178
  </p>
@@ -15,7 +15,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
15
15
  <p align="center">
16
16
  <a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
17
17
  <!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
18
- <a href="https://pypi.org/project/aria-code/0.132.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.132.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
18
+ <a href="https://pypi.org/project/aria-code/0.134.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.134.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
19
19
  <a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
20
20
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
21
21
  </p>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "aria-code"
7
- version = "0.132.0"
7
+ version = "0.134.0"
8
8
  description = "Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves"
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
@@ -17,4 +17,4 @@ from __future__ import annotations
17
17
 
18
18
  __all__ = ["__version__"]
19
19
 
20
- __version__ = "0.132.0"
20
+ __version__ = "0.134.0"
@@ -98,6 +98,21 @@ class ExecEvents:
98
98
 
99
99
  def __init__(self, out: TextIO | None):
100
100
  self.out = out
101
+ # Preserve the established JSONL contract unless a streaming consumer
102
+ # opts in. Never emit provider reasoning; only visible answer tokens.
103
+ import os
104
+ self.streaming = out is not None and os.environ.get("ARIA_EVENTS_STREAM", "").strip().lower() in (
105
+ "1", "true", "yes",
106
+ )
107
+
108
+ def text_delta(self, text: str) -> None:
109
+ if self.streaming and text:
110
+ self.emit("answer.delta", text=text)
111
+
112
+ def status(self, state: str, message: str) -> None:
113
+ if self.streaming:
114
+ self.emit("turn.status", state=_redact_activity_text(state, limit=80),
115
+ message=_redact_activity_text(message, limit=PARAM_CHARS))
101
116
 
102
117
  def emit(self, event_type: str, **fields: Any) -> None:
103
118
  if self.out is None:
@@ -11,7 +11,7 @@ on whichever module loaded last.
11
11
 
12
12
  from __future__ import annotations
13
13
 
14
- def _headless_approval(config: dict, auto_approve, always_allow):
14
+ def _headless_approval(config: dict, auto_approve, always_allow, *, on_denied=None):
15
15
  """Answer approvals with what the operator granted up front, and nothing more.
16
16
 
17
17
  ``auto_approve`` and ``always_allow`` are read at call time from the module
@@ -23,8 +23,10 @@ def _headless_approval(config: dict, auto_approve, always_allow):
23
23
 
24
24
  def decide(tool_name: str, params: dict):
25
25
  if not (auto_approve() or tool_name in (always_allow() or ())):
26
- return ApprovalDecision.deny("no one is here to approve it; pass --allow-tools or "
27
- "--dangerously-skip-permissions")
26
+ reason = "no one is here to approve it; pass --allow-tools or --dangerously-skip-permissions"
27
+ if on_denied is not None:
28
+ on_denied(tool_name, reason)
29
+ return ApprovalDecision.deny(reason)
28
30
  if tool_name == "run_command":
29
31
  return ApprovalDecision.allow(policy=config.get("command_policy", "safe"), user_approved=True)
30
32
  return ApprovalDecision.allow()
@@ -188,10 +190,13 @@ class HeadlessMixin:
188
190
  # stays, and the pre-approval answers it the way the REPL would.
189
191
  confirm_tools=frozenset(_CONFIRM_TOOLS),
190
192
  approval_callback=_headless_approval(
191
- self.config, lambda: _auto_approve_session, lambda: _session_always_allow),
193
+ self.config, lambda: _auto_approve_session, lambda: _session_always_allow,
194
+ on_denied=lambda tool, reason: events.status("approval_denied", f"{tool}: {reason}")),
192
195
  approval_applier=_apply_approval_decision,
193
196
  on_tool_call=events.tool_started,
194
197
  on_tool_result=events.tool_completed,
198
+ on_token=events.text_delta if events.streaming else None,
199
+ on_status=events.status if events.streaming else None,
195
200
  return_result=True,
196
201
  )
197
202
  _tools_used = list(getattr(_turn.final, "tools", []) or [])
@@ -1136,6 +1136,43 @@ TEXT_TOOL_CALL_DIRECTIVE = (
1136
1136
  _CODE_SPAN = re.compile(r"```.*?(?:```|\Z)|`[^`\n]*`", re.DOTALL)
1137
1137
 
1138
1138
 
1139
+ _MAX_PROMPT_ECHO_RETRIES = 1
1140
+
1141
+ # A reply after a tool round that is an instruction to the assistant rather
1142
+ # than an answer to the user: the model continued our follow-up message (the
1143
+ # reply even starts with the space that would separate the two) instead of
1144
+ # acting on it. Seen on Gemini: " Do not stop until all necessary actions have
1145
+ # been performed." ended a turn as its final answer with nothing changed.
1146
+ _PROMPT_ECHO_MAX_CHARS = 240
1147
+ _PROMPT_ECHO = re.compile(
1148
+ r"^(?:do not stop|don't stop|if you are (?:finished|done)|if the task is"
1149
+ r"|continue (?:using|with|the task)|use (?:the )?tools|you (?:must|should) (?:continue|now)"
1150
+ r"|make sure (?:to|you)|remember to)\b"
1151
+ r"|\b(?:necessary actions|your final (?:response|answer)|describe your findings"
1152
+ r"|continue using tools|\d+-\d+ sentences)\b",
1153
+ re.IGNORECASE,
1154
+ )
1155
+
1156
+ PROMPT_ECHO_DIRECTIVE = (
1157
+ "Your last reply was an instruction, not an answer: it reads like a "
1158
+ "continuation of the prompt, and the task is not finished. Carry on with "
1159
+ "the user's request — call the tools you need. When the work is actually "
1160
+ "done, reply with what you changed and how you checked it."
1161
+ )
1162
+
1163
+
1164
+ def looks_like_prompt_echo(text: str) -> bool:
1165
+ """True when a short final reply is an instruction aimed at the assistant.
1166
+
1167
+ Only short, single-paragraph replies qualify: a real answer that happens
1168
+ to say "make sure to run the tests" is longer, or follows a summary.
1169
+ """
1170
+ stripped = (text or "").strip()
1171
+ if not stripped or len(stripped) > _PROMPT_ECHO_MAX_CHARS or "\n\n" in stripped:
1172
+ return False
1173
+ return bool(_PROMPT_ECHO.search(_CODE_SPAN.sub("", stripped)))
1174
+
1175
+
1139
1176
  def looks_like_text_tool_calls(text: str) -> bool:
1140
1177
  """True when a reply with no real tool calls contains written-out ones.
1141
1178
 
@@ -1452,6 +1489,7 @@ async def run_agent(
1452
1489
  grounded_results = 1 if opts.evidence_already_grounded else 0
1453
1490
  stop_reason = "max_rounds"
1454
1491
  text_tool_call_retries = 0
1492
+ prompt_echo_retries = 0
1455
1493
 
1456
1494
  for round_num in range(opts.max_rounds):
1457
1495
  # ── 预算闸门 ─────────────────────────────────────────────────────────
@@ -1562,6 +1600,34 @@ async def run_agent(
1562
1600
  current_message = TEXT_TOOL_CALL_DIRECTIVE
1563
1601
  turn_state.reset_response()
1564
1602
  continue
1603
+ if (not pending and round_num > 0
1604
+ and looks_like_prompt_echo(result.get("response") or response_text)):
1605
+ # After a tool round the model "answered" by continuing our own
1606
+ # follow-up instead of acting on it. Accepting that ended tasks
1607
+ # as completed with nothing changed. One more round, then incomplete.
1608
+ prompt_echo_retries += 1
1609
+ if prompt_echo_retries > _MAX_PROMPT_ECHO_RETRIES:
1610
+ stop_reason = "prompt_echo"
1611
+ yield AgentEventStatus(
1612
+ state=stop_reason,
1613
+ message="Model replied with an instruction instead of an answer; task remains incomplete",
1614
+ )
1615
+ turn_state.append_response(
1616
+ "\n\nThe model replied with an instruction instead of an answer "
1617
+ "and did not continue the task."
1618
+ )
1619
+ break
1620
+ yield AgentEventStatus(
1621
+ state="prompt_echo",
1622
+ message="Model replied with an instruction instead of an answer; asking it to continue",
1623
+ )
1624
+ history = list(history) + [
1625
+ {"role": "user", "content": current_message},
1626
+ {"role": "assistant", "content": turn_state.total_response},
1627
+ ]
1628
+ current_message = PROMPT_ECHO_DIRECTIVE
1629
+ turn_state.reset_response()
1630
+ continue
1565
1631
  if not pending:
1566
1632
  # ── 验收闸门 ─────────────────────────────────────────────────────
1567
1633
  # 模型不再要工具 = 它认为做完了。这是唯一一个「宣称完成」的出口,
@@ -7,14 +7,18 @@ the failed command once more on the code as it was before the change and
7
7
  compares:
8
8
 
9
9
  * pytest: by test id (``FAILED tests/x.py::test_y``). Failures that also
10
- fail on the baseline are pre-existing; the rest are the change's.
10
+ fail on the baseline are pre-existing; the rest are the change's. The
11
+ baseline run continues past collection errors (see ``_keep_collecting``).
11
12
  * anything else: by exit status. A command that fails on the baseline too
12
13
  is pre-existing as a whole.
13
14
 
14
15
  "Before the change" is the task's starting snapshot when the turn runs in a
15
16
  task worktree. Otherwise it is the working tree now with this turn's edits
16
17
  undone from their checkpoints — edits a shell command made are not
17
- recorded, so they are in the baseline too.
18
+ recorded, so they are in the baseline too. Outside a git repository the
19
+ working tree is copied instead of checked out, when it is small enough
20
+ (``_COPY_MAX_FILES``/``_COPY_MAX_BYTES``); without a baseline every failure
21
+ counts as the change's, and the model is sent to "fix" unrelated code.
18
22
 
19
23
  It runs only after a failure, in a scratch worktree removed straight after,
20
24
  and each command at most once per turn.
@@ -24,7 +28,9 @@ from __future__ import annotations
24
28
 
25
29
  import inspect
26
30
  import logging
31
+ import os
27
32
  import re
33
+ import shutil
28
34
  import uuid
29
35
  from dataclasses import dataclass
30
36
  from pathlib import Path
@@ -36,6 +42,15 @@ logger = logging.getLogger(__name__)
36
42
 
37
43
  _PYTEST_FAILURE = re.compile(r"^(?:FAILED|ERROR)\s+(\S+?)(?:\s+-\s|$)", re.MULTILINE)
38
44
 
45
+ # A workspace outside git is copied for its baseline only up to this size; a
46
+ # turn started in a home directory must not copy the home directory.
47
+ _COPY_MAX_FILES = 5_000
48
+ _COPY_MAX_BYTES = 100 * 1024 * 1024
49
+ _COPY_SKIPPED = frozenset({
50
+ ".git", ".hg", ".svn", "node_modules", ".venv", "venv", "__pycache__",
51
+ ".mypy_cache", ".pytest_cache", ".ruff_cache", ".tox", ".nox",
52
+ })
53
+
39
54
  # ``(command, cwd) -> run result dict``, as the acceptance gate's runner returns.
40
55
  BaselineRunner = Callable[[str, str], Union[dict, Awaitable[dict]]]
41
56
 
@@ -69,6 +84,23 @@ def compare(after_output: str, after_failed: bool, before: Optional[tuple[int, s
69
84
  return Comparison(preexisting=True, note="failing before this change")
70
85
 
71
86
 
87
+ _PYTEST_COMMAND = re.compile(r"(?:^|[\s/])(?:py\.test|pytest)(?:\s|$)")
88
+
89
+
90
+ def _keep_collecting(command: str) -> str:
91
+ """Let a pytest baseline run past collection errors.
92
+
93
+ Before the change a test file often cannot even be imported — it tests the
94
+ function the task is about to add — and pytest then stops at collection,
95
+ running nothing else. A test that was already red elsewhere is missing from
96
+ that baseline, so after the change it would look new and be "repaired".
97
+ """
98
+ if (not _PYTEST_COMMAND.search(command) or "--continue-on-collection-errors" in command
99
+ or re.search(r"[|;&<>`$]", command)):
100
+ return command
101
+ return f"{command} --continue-on-collection-errors"
102
+
103
+
72
104
  class Baseline:
73
105
  def __init__(
74
106
  self,
@@ -92,7 +124,7 @@ class Baseline:
92
124
  """``(exit_code, output)`` of ``command`` before the change; None if unknown."""
93
125
  if command not in self._results:
94
126
  try:
95
- self._results[command] = await self._run(command)
127
+ self._results[command] = await self._run(_keep_collecting(command))
96
128
  except Exception as exc:
97
129
  logger.debug("baseline run failed: %s", exc)
98
130
  self._results[command] = None
@@ -100,10 +132,19 @@ class Baseline:
100
132
 
101
133
  async def _run(self, command: str) -> Optional[tuple[int, str]]:
102
134
  repo = repository_root(self.workspace)
135
+ destination = (self.scratch_root / f"baseline-{uuid.uuid4().hex[:8]}").resolve()
103
136
  if repo is None:
104
- return None
137
+ if self.base_commit or not self._copy(destination):
138
+ return None
139
+ try:
140
+ self._undo_turn(self.workspace, destination)
141
+ raw = self.run(command, str(destination))
142
+ if inspect.isawaitable(raw):
143
+ raw = await raw
144
+ finally:
145
+ shutil.rmtree(destination, ignore_errors=True)
146
+ return self._result(raw)
105
147
  commit = self.base_commit or snapshot(repo)[0]
106
- destination = (self.scratch_root / f"baseline-{uuid.uuid4().hex[:8]}").resolve()
107
148
  linked = checkout(repo, commit, destination)
108
149
  try:
109
150
  if not self.base_commit:
@@ -116,11 +157,42 @@ class Baseline:
116
157
  raw = await raw
117
158
  finally:
118
159
  remove_checkout(repo, destination, linked)
160
+ return self._result(raw)
161
+
162
+ @staticmethod
163
+ def _result(raw: Any) -> tuple[int, str]:
119
164
  from .acceptance import _read_run_result
120
165
 
121
166
  code, output, error = _read_run_result(raw)
122
167
  return (code if not error else 1, output)
123
168
 
169
+ def _copy(self, destination: Path) -> bool:
170
+ """Copy the workspace to ``destination``; False (and nothing left) when too big."""
171
+ files: list[tuple[Path, Path]] = []
172
+ total = 0
173
+ for directory, dirnames, filenames in os.walk(self.workspace):
174
+ dirnames[:] = [name for name in dirnames if name not in _COPY_SKIPPED]
175
+ for name in filenames:
176
+ source = Path(directory) / name
177
+ if source.is_symlink():
178
+ pass # copied as a link: it may point outside the workspace
179
+ elif source.is_file():
180
+ total += source.stat().st_size
181
+ else:
182
+ continue
183
+ files.append((source, destination / source.relative_to(self.workspace)))
184
+ if len(files) > _COPY_MAX_FILES or total > _COPY_MAX_BYTES:
185
+ return False
186
+ try:
187
+ for source, target in files:
188
+ target.parent.mkdir(parents=True, exist_ok=True)
189
+ shutil.copy2(source, target, follow_symlinks=False)
190
+ except OSError:
191
+ shutil.rmtree(destination, ignore_errors=True)
192
+ raise
193
+ destination.mkdir(parents=True, exist_ok=True)
194
+ return True
195
+
124
196
  def _undo_turn(self, repo: Path, destination: Path) -> None:
125
197
  """Put back what this turn's checkpointed edits replaced."""
126
198
  if self.undo_since is None:
@@ -357,6 +357,7 @@ class DeliveryLedger:
357
357
  "loop_guard": "Stopped repeating a failing call — look at the error above",
358
358
  "checks_failed": "Fix the failing checks",
359
359
  "text_tool_calls": "The model wrote tool calls as text — retry the turn",
360
+ "prompt_echo": "The model stopped without an answer — retry the turn",
360
361
  }.get(stop_reason, f"Stopped: {stop_reason}")
361
362
  elif verified is False and checks and all(c["passed"] or c.get("preexisting") for c in checks):
362
363
  # Red only where it was red before this change (runtime/baseline.py).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aria-code
3
- Version: 0.132.0
3
+ Version: 0.134.0
4
4
  Summary: Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/artheras/aria-code
@@ -172,7 +172,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
172
172
  <p align="center">
173
173
  <a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
174
174
  <!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
175
- <a href="https://pypi.org/project/aria-code/0.132.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.132.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
175
+ <a href="https://pypi.org/project/aria-code/0.134.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.134.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
176
176
  <a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
177
177
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
178
178
  </p>
@@ -777,6 +777,7 @@ tests/test_runtime_worktrees.py
777
777
  tests/test_runway_video_client.py
778
778
  tests/test_rust_cli.py
779
779
  tests/test_rust_state.py
780
+ tests/test_rust_stream.py
780
781
  tests/test_safety_permissions.py
781
782
  tests/test_safety_service.py
782
783
  tests/test_safety_service_adoption.py
@@ -122,3 +122,64 @@ def test_a_task_worktree_is_compared_with_its_starting_snapshot(repo, tmp_path):
122
122
 
123
123
  assert report.failures[0].new_failures == ("test_calc.py::test_add",)
124
124
  assert verdict_from_acceptance(gate.summary(), "") == FAILED
125
+
126
+
127
+ @pytest.fixture
128
+ def plain(tmp_path):
129
+ """The eval's fixture: no git, one test red before the task and unrelated to it."""
130
+ work = tmp_path / "plain"
131
+ work.mkdir()
132
+ (work / "legacy.py").write_text("def legacy_rate():\n return 0.15\n")
133
+ (work / "text.py").write_text("def shout(text):\n return text.upper()\n")
134
+ (work / "test_legacy.py").write_text(
135
+ "from legacy import legacy_rate\n\ndef test_legacy_rate():\n assert legacy_rate() == 0.2\n")
136
+ (work / "test_text.py").write_text(
137
+ "from text import slugify\n\ndef test_slugify():\n assert slugify('A b') == 'a-b'\n")
138
+ return work
139
+
140
+
141
+ def test_outside_git_the_workspace_is_copied_for_the_baseline(plain, tmp_path):
142
+ baseline = Baseline(plain, run=run_in, undo_since=CheckpointStore().max_sequence(),
143
+ session_id="s", scratch_root=tmp_path / "scratch")
144
+ edit(plain / "text.py", "def shout(text):\n return text.upper()\n\n"
145
+ "def slugify(text):\n return '-'.join(text.lower().split())\n")
146
+ gate = gate_for(plain, baseline)
147
+ gate.record_tool("write_file", {"success": True, "path": str(plain / "text.py")})
148
+
149
+ report = asyncio.run(gate.run())
150
+
151
+ assert not report.passed and not report.regressed # only test_legacy, red before too
152
+ assert report.failures[0].old_failures == ("test_legacy.py::test_legacy_rate",)
153
+ assert list((tmp_path / "scratch").iterdir()) == [] # the copy is removed
154
+
155
+
156
+ def test_outside_git_a_new_failure_still_counts(plain, tmp_path):
157
+ baseline = Baseline(plain, run=run_in, undo_since=CheckpointStore().max_sequence(),
158
+ session_id="s", scratch_root=tmp_path / "scratch")
159
+ edit(plain / "text.py", "def slugify(text):\n return text\n")
160
+ gate = gate_for(plain, baseline)
161
+ gate.record_tool("write_file", {"success": True, "path": str(plain / "text.py")})
162
+
163
+ report = asyncio.run(gate.run())
164
+
165
+ assert report.regressed
166
+ assert "test_text.py::test_slugify" in report.failures[0].new_failures
167
+
168
+
169
+ def test_a_large_workspace_outside_git_gets_no_baseline(plain, tmp_path, monkeypatch):
170
+ from aria_code.runtime import baseline as module
171
+
172
+ monkeypatch.setattr(module, "_COPY_MAX_FILES", 2)
173
+ baseline = Baseline(plain, run=run_in, scratch_root=tmp_path / "scratch")
174
+ assert asyncio.run(baseline.result(PYTEST)) is None
175
+ assert not (tmp_path / "scratch").exists() or list((tmp_path / "scratch").iterdir()) == []
176
+
177
+
178
+ def test_a_pytest_baseline_runs_past_collection_errors():
179
+ from aria_code.runtime.baseline import _keep_collecting
180
+
181
+ assert _keep_collecting("python -m pytest -q").endswith("--continue-on-collection-errors")
182
+ assert _keep_collecting("/venv/bin/pytest tests/x.py").endswith("--continue-on-collection-errors")
183
+ for unchanged in ("npm test", "pytest -q | tail -5", "make test",
184
+ "pytest --continue-on-collection-errors"):
185
+ assert _keep_collecting(unchanged) == unchanged
@@ -43,7 +43,61 @@ def test_a_file_body_is_reported_by_size():
43
43
 
44
44
  def test_no_stream_writes_nothing_and_odd_values_still_serialise():
45
45
  ExecEvents(None).emit("turn.started", prompt="x")
46
- assert json_safe({"p": Path("/a"), "s": {1}}) == {"p": "/a", "s": "{1}"}
46
+ path = Path("/a")
47
+ assert json_safe({"p": path, "s": {1}}) == {"p": str(path), "s": "{1}"}
48
+
49
+
50
+ def test_visible_answer_streaming_is_opt_in_and_status_is_redacted(monkeypatch):
51
+ monkeypatch.delenv("ARIA_EVENTS_STREAM", raising=False)
52
+ out = io.StringIO()
53
+ old = ExecEvents(out)
54
+ old.text_delta("invisible until completion")
55
+ old.status("thinking", "status")
56
+ assert not old.streaming and out.getvalue() == ""
57
+ monkeypatch.setenv("ARIA_EVENTS_STREAM", "1")
58
+ events = ExecEvents(out)
59
+ assert events.streaming and not ExecEvents(None).streaming
60
+ events.text_delta("你好\n```python\nprint(1)\n```\n")
61
+ events.status("working", "Authorization: Bearer abc123def456")
62
+ records = [json.loads(line) for line in out.getvalue().splitlines()]
63
+ assert records[0]["type"] == "answer.delta" and records[0]["text"].startswith("你好\n```")
64
+ assert records[1]["type"] == "turn.status" and "abc123def456" not in records[1]["message"]
65
+
66
+
67
+ @pytest.mark.asyncio
68
+ async def test_headless_runtime_streams_visible_text_and_retains_approval(monkeypatch):
69
+ from aria_code.aria_cli import ArtheraTerminal
70
+ from aria_code.apps.cli.providers import runtime_bridge
71
+
72
+ monkeypatch.setenv("ARIA_EVENTS_STREAM", "1")
73
+ terminal = ArtheraTerminal.__new__(ArtheraTerminal)
74
+ terminal.config = {"model": "google/gemini-3.5-flash", "permission_mode": "read-only"}
75
+ terminal.api_url = None
76
+ terminal.commands = SimpleNamespace(is_command=lambda _: False)
77
+ terminal._maybe_show_intent_preflight = lambda *a, **k: False
78
+ async def no_intercept(_):
79
+ return False
80
+ terminal._try_football_nl_intercept = no_intercept
81
+ namespace = terminal._run_prompt_turn.__func__.__globals__
82
+ monkeypatch.setitem(namespace, "_run_deterministic_chain", lambda *a, **k: {"success": False})
83
+ monkeypatch.setitem(namespace, "HAS_RICH", False)
84
+ monkeypatch.setitem(namespace, "_auto_approve_session", False)
85
+ monkeypatch.setitem(namespace, "_session_always_allow", set())
86
+ async def turn(**kwargs):
87
+ assert not kwargs["approval_callback"]("write_file", {"path": "a.py"}).approved
88
+ assert kwargs.get("on_thinking") is None
89
+ kwargs["on_token"]("你好")
90
+ kwargs["on_status"]("working", "Reading a project")
91
+ kwargs["on_token"]("世界")
92
+ return SimpleNamespace(ok=True, text="你好世界", error="", final=SimpleNamespace(provider="fake"))
93
+ monkeypatch.setattr(runtime_bridge, "run_chat_via_runtime", turn)
94
+ out = io.StringIO()
95
+ events = ExecEvents(out)
96
+ result = await terminal._run_prompt_turn("hello", quiet=True, events=events)
97
+ assert result["success"] and result["response"] == "你好世界"
98
+ records = [json.loads(line) for line in out.getvalue().splitlines()]
99
+ assert [e["type"] for e in records] == ["turn.status", "answer.delta", "turn.status", "answer.delta"]
100
+ assert records[0]["state"] == "approval_denied" and "write_file" in records[0]["message"]
47
101
 
48
102
 
49
103
  class _Terminal:
@@ -10,7 +10,9 @@ total) or stopped (no output file).
10
10
  from __future__ import annotations
11
11
 
12
12
  import inspect
13
+ import os
13
14
  import shlex
15
+ import subprocess
14
16
  import sys
15
17
 
16
18
  from aria_code.apps.cli.headless import _apply_approval_decision, _headless_approval
@@ -40,7 +42,9 @@ def test_an_approved_script_runs_under_the_safe_policy(tmp_path, monkeypatch):
40
42
 
41
43
  monkeypatch.setenv("ARIA_ARTIFACT_ROOT", str(tmp_path / "artifacts"))
42
44
  (tmp_path / "calc.py").write_text("print(2 + 3)\n")
43
- params = {"command": f"{shlex.quote(sys.executable)} calc.py", "policy": "safe", "cwd": str(tmp_path),
45
+ argv = [sys.executable, "calc.py"]
46
+ command = subprocess.list2cmdline(argv) if os.name == "nt" else shlex.join(argv)
47
+ params = {"command": command, "policy": "safe", "cwd": str(tmp_path),
44
48
  "permission_mode": "workspace-write", "network_enabled": False}
45
49
  blocked = tool_run_command(dict(params), has_rich=False)
46
50
  assert not blocked["success"] and "blocked by policy" in blocked["error"]
@@ -927,6 +927,101 @@ class MultiEditTests(unittest.TestCase):
927
927
  self.assertTrue(r.get("warning"))
928
928
 
929
929
 
930
+ class PromptEchoTests(unittest.TestCase):
931
+ """A reply that continues our follow-up instead of answering must not end the task."""
932
+
933
+ def _run(self, provider_fn, tools):
934
+ async def collect():
935
+ return [
936
+ event
937
+ async for event in run_agent(
938
+ "fix the failing test",
939
+ [],
940
+ provider_fn=provider_fn,
941
+ tool_executor=ToolExecutor(tools),
942
+ options=AgentOptions(max_rounds=6),
943
+ )
944
+ ]
945
+
946
+ return asyncio.run(collect())
947
+
948
+ @staticmethod
949
+ def _tools(ran):
950
+ def read_file(params):
951
+ ran.append(params["path"])
952
+ return {"success": True, "content": "x"}
953
+
954
+ return {"read_file": (read_file, "Read")}
955
+
956
+ @staticmethod
957
+ def _call(path):
958
+ return {"success": True, "response": "", "provider": "fake",
959
+ "tool_calls_pending": [{"tool": "read_file", "params": {"path": path}}]}
960
+
961
+ def test_detects_instructions_but_not_answers(self):
962
+ from aria_code.runtime.agent_loop import looks_like_prompt_echo
963
+
964
+ # Both replies ended real eval tasks as "completed" with nothing changed.
965
+ self.assertTrue(looks_like_prompt_echo(" Do not stop until all necessary actions have been performed."))
966
+ self.assertTrue(looks_like_prompt_echo(" If you are finished, describe your findings in 1-4 sentences."))
967
+ self.assertFalse(looks_like_prompt_echo("Fixed the off-by-one in slug.py; all 5 tests pass."))
968
+ self.assertFalse(looks_like_prompt_echo("Done. Make sure the cache directory is writable before deploying."))
969
+ self.assertFalse(looks_like_prompt_echo(
970
+ "Changed `risk.py` to annualise the ratio.\n\nMake sure to rerun the backtest; "
971
+ "if you are finished reviewing, it can be merged."))
972
+ self.assertFalse(looks_like_prompt_echo(""))
973
+
974
+ def test_an_echo_gets_one_more_round(self):
975
+ messages, ran = [], []
976
+
977
+ async def provider_fn(message, history, **kwargs):
978
+ messages.append(message)
979
+ if len(messages) == 1:
980
+ return self._call("a.py")
981
+ if len(messages) == 2:
982
+ return {"success": True, "provider": "fake",
983
+ "response": " Do not stop until all necessary actions have been performed."}
984
+ if len(messages) == 3:
985
+ return self._call("b.py")
986
+ return {"success": True, "response": "Fixed it; tests pass.", "provider": "fake"}
987
+
988
+ events = self._run(provider_fn, self._tools(ran))
989
+
990
+ self.assertTrue(any(isinstance(e, AgentEventStatus) and e.state == "prompt_echo" for e in events))
991
+ self.assertIn("not an answer", messages[2])
992
+ self.assertEqual([os.path.basename(p) for p in ran], ["a.py", "b.py"])
993
+ result = events[-1].result
994
+ self.assertTrue(result.success)
995
+ self.assertEqual(result.final_text, "Fixed it; tests pass.")
996
+
997
+ def test_a_persistent_echo_ends_the_turn_incomplete(self):
998
+ calls = []
999
+
1000
+ async def provider_fn(message, history, **kwargs):
1001
+ calls.append(message)
1002
+ if len(calls) == 1:
1003
+ return self._call("a.py")
1004
+ return {"success": True, "provider": "fake",
1005
+ "response": " If you are finished, describe your findings in 1-4 sentences."}
1006
+
1007
+ events = self._run(provider_fn, self._tools([]))
1008
+
1009
+ result = events[-1].result
1010
+ self.assertFalse(result.success)
1011
+ self.assertEqual(result.stop_reason, "prompt_echo")
1012
+ self.assertEqual(len(calls), 3)
1013
+
1014
+ def test_a_short_first_reply_is_left_alone(self):
1015
+ # No tool round yet: there is no follow-up of ours to have continued.
1016
+ async def provider_fn(message, history, **kwargs):
1017
+ return {"success": True, "provider": "fake",
1018
+ "response": "Make sure to run it with Python 3.11."}
1019
+
1020
+ events = self._run(provider_fn, {})
1021
+
1022
+ self.assertTrue(events[-1].result.success)
1023
+
1024
+
930
1025
  class TextToolCallTests(unittest.TestCase):
931
1026
  """A reply that writes tool calls as text ran nothing and must not end the task."""
932
1027