aria-code 0.140.0__tar.gz → 0.141.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 (869) hide show
  1. {aria_code-0.140.0/src/aria_code.egg-info → aria_code-0.141.0}/PKG-INFO +2 -2
  2. {aria_code-0.140.0 → aria_code-0.141.0}/README.md +1 -1
  3. {aria_code-0.140.0 → aria_code-0.141.0}/pyproject.toml +1 -1
  4. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/_version.py +1 -1
  5. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/app_server.py +31 -3
  6. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/chat_turn.py +4 -3
  7. aria_code-0.141.0/src/aria_code/apps/cli/conversation_policy.py +21 -0
  8. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/exec_events.py +5 -0
  9. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/native_branding.py +1 -1
  10. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prompts/coding.py +4 -2
  11. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prompts/select.py +9 -0
  12. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +12 -4
  13. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tool_scope.py +8 -1
  14. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/agent_loop.py +15 -1
  15. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/tool_executor.py +4 -0
  16. {aria_code-0.140.0 → aria_code-0.141.0/src/aria_code.egg-info}/PKG-INFO +2 -2
  17. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code.egg-info/SOURCES.txt +2 -0
  18. aria_code-0.141.0/tests/test_conversation_policy.py +94 -0
  19. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_exec_events.py +9 -0
  20. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_app.py +86 -11
  21. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_branding.py +1 -1
  22. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_output_discipline_prompt.py +8 -3
  23. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_bridge.py +1 -1
  24. {aria_code-0.140.0 → aria_code-0.141.0}/LICENSE +0 -0
  25. {aria_code-0.140.0 → aria_code-0.141.0}/NOTICE +0 -0
  26. {aria_code-0.140.0 → aria_code-0.141.0}/setup.cfg +0 -0
  27. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/__init__.py +0 -0
  28. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/adk_apps/__init__.py +0 -0
  29. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
  30. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
  31. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
  32. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
  33. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/__init__.py +0 -0
  34. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/base.py +0 -0
  35. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/code_review.py +0 -0
  36. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/__init__.py +0 -0
  37. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
  38. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/critic.py +0 -0
  39. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/deepen.py +0 -0
  40. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/models.py +0 -0
  41. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/pipeline.py +0 -0
  42. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
  43. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/themes.py +0 -0
  44. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/deep/tiers.py +0 -0
  45. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/engineering/__init__.py +0 -0
  46. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/engineering/coder.py +0 -0
  47. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/engineering/tester.py +0 -0
  48. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/__init__.py +0 -0
  49. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
  50. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/catalyst.py +0 -0
  51. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
  52. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/debate.py +0 -0
  53. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/earnings.py +0 -0
  54. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/fundamental.py +0 -0
  55. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/macro.py +0 -0
  56. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/news.py +0 -0
  57. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/risk.py +0 -0
  58. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/sector.py +0 -0
  59. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/strategist.py +0 -0
  60. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
  61. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/synthesis.py +0 -0
  62. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/financial/technical.py +0 -0
  63. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/orchestrator.py +0 -0
  64. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/portfolio_agent.py +0 -0
  65. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/__init__.py +0 -0
  66. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
  67. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/business_match.py +0 -0
  68. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
  69. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
  70. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
  71. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
  72. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
  73. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
  74. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
  75. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/registry.py +0 -0
  76. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/signal_scheme.py +0 -0
  77. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/sports/__init__.py +0 -0
  78. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/sports/football_agent.py +0 -0
  79. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/supervisor.py +0 -0
  80. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/team.py +0 -0
  81. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
  82. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
  83. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
  84. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
  85. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
  86. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
  87. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
  88. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
  89. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
  90. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
  91. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
  92. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aliyun_data_client.py +0 -0
  93. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/README.md +0 -0
  94. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/__init__.py +0 -0
  95. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/README.md +0 -0
  96. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/__init__.py +0 -0
  97. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/approvals.py +0 -0
  98. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/conversation.py +0 -0
  99. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/digest.py +0 -0
  100. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/intake.py +0 -0
  101. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/registry.py +0 -0
  102. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/channels/tradingview.py +0 -0
  103. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/README.md +0 -0
  104. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/__init__.py +0 -0
  105. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/_optional.py +0 -0
  106. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
  107. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/broker_render.py +0 -0
  108. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
  109. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
  110. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
  111. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
  112. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
  113. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
  114. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
  115. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
  116. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
  117. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
  118. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
  119. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
  120. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
  121. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
  122. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
  123. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
  124. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
  125. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
  126. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
  127. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/market.py +0 -0
  128. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
  129. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
  130. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
  131. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
  132. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
  133. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
  134. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
  135. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
  136. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/report.py +0 -0
  137. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
  138. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
  139. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
  140. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/team.py +0 -0
  141. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
  142. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
  143. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
  144. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
  145. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
  146. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/config_paths.py +0 -0
  147. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/config_store.py +0 -0
  148. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/constants.py +0 -0
  149. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/context.py +0 -0
  150. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/deterministic.py +0 -0
  151. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/direct.py +0 -0
  152. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
  153. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
  154. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/football_reports.py +0 -0
  155. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
  156. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/google_login.py +0 -0
  157. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
  158. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
  159. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
  160. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
  161. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
  162. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
  163. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
  164. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/headless.py +0 -0
  165. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/helpers.py +0 -0
  166. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/hooks.py +0 -0
  167. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/i18n.py +0 -0
  168. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/intent.py +0 -0
  169. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/intent_router.py +0 -0
  170. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
  171. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
  172. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
  173. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/main.py +0 -0
  174. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/market_hours.py +0 -0
  175. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
  176. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/market_universe.py +0 -0
  177. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/message_processing.py +0 -0
  178. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
  179. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
  180. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/model_probe.py +0 -0
  181. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/model_retirement.py +0 -0
  182. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/native_bridge.py +0 -0
  183. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/native_entry.py +0 -0
  184. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
  185. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
  186. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
  187. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
  188. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/preflight.py +0 -0
  189. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/project_aria.py +0 -0
  190. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
  191. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
  192. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
  193. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
  194. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
  195. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
  196. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
  197. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/base.py +0 -0
  198. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
  199. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
  200. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
  201. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
  202. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
  203. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
  204. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
  205. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
  206. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/release_download.py +0 -0
  207. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/review_runner.py +0 -0
  208. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
  209. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/sandbox.py +0 -0
  210. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/session_export.py +0 -0
  211. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
  212. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/session_store.py +0 -0
  213. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
  214. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/task_isolation.py +0 -0
  215. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
  216. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
  217. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
  218. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
  219. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
  220. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/context.py +0 -0
  221. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
  222. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
  223. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
  224. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
  225. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
  226. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
  227. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/transactions.py +0 -0
  228. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
  229. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/update_check.py +0 -0
  230. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/updater.py +0 -0
  231. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
  232. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
  233. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/workflow_runner.py +0 -0
  234. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
  235. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/daemon/README.md +0 -0
  236. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/vscode/README.md +0 -0
  237. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/apps/vscode/package.json +0 -0
  238. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_cli.py +0 -0
  239. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_daemon.py +0 -0
  240. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_feishu_bot.py +0 -0
  241. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_mcp_server.py +0 -0
  242. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_relay_client.py +0 -0
  243. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_relay_server.py +0 -0
  244. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/aria_telegram_bot.py +0 -0
  245. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ariarc.py +0 -0
  246. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/artifacts.py +0 -0
  247. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/backtest_engine.py +0 -0
  248. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/backtest_report.py +0 -0
  249. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/__init__.py +0 -0
  250. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/automation.py +0 -0
  251. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/base.py +0 -0
  252. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/capabilities.py +0 -0
  253. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/cn/__init__.py +0 -0
  254. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
  255. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
  256. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
  257. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
  258. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
  259. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/config.py +0 -0
  260. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/intl/__init__.py +0 -0
  261. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
  262. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
  263. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
  264. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
  265. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/paper_broker.py +0 -0
  266. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/planning.py +0 -0
  267. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/registry.py +0 -0
  268. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/brokers/trading.py +0 -0
  269. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/canva_client.py +0 -0
  270. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/change_store.py +0 -0
  271. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/__init__.py +0 -0
  272. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
  273. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/aria_relay_client.py +0 -0
  274. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/canva_client.py +0 -0
  275. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/figma_client.py +0 -0
  276. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/football_data_client.py +0 -0
  277. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/kling_video_client.py +0 -0
  278. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/market_data_client.py +0 -0
  279. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/openai_image_client.py +0 -0
  280. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/runway_video_client.py +0 -0
  281. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
  282. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/cloud_memory.py +0 -0
  283. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/command_safety.py +0 -0
  284. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/computer_use_tools.py +0 -0
  285. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/dashboard_generator.py +0 -0
  286. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/data_analysis_tools.py +0 -0
  287. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/data_cleaner.py +0 -0
  288. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/data_service.py +0 -0
  289. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/__init__.py +0 -0
  290. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/base.py +0 -0
  291. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/router.py +0 -0
  292. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/__init__.py +0 -0
  293. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
  294. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
  295. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
  296. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
  297. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
  298. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
  299. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
  300. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
  301. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
  302. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/demo_player.py +0 -0
  303. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/doctor.py +0 -0
  304. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/domain/__init__.py +0 -0
  305. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/domain/backtest_engine.py +0 -0
  306. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/domain/backtest_report.py +0 -0
  307. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/domain/finance_formulas.py +0 -0
  308. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
  309. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/domain/strategy_vault.py +0 -0
  310. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/__init__.py +0 -0
  311. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/behavior.py +0 -0
  312. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/gap.py +0 -0
  313. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/harness.py +0 -0
  314. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/review_probe.py +0 -0
  315. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/runner.py +0 -0
  316. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/evals/summary.py +0 -0
  317. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/external_agent_runner.py +0 -0
  318. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/figma_client.py +0 -0
  319. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/file_analysis_tools.py +0 -0
  320. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/finance_formulas.py +0 -0
  321. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/football_data_client.py +0 -0
  322. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/image_gen_tools.py +0 -0
  323. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/intent_classifier.py +0 -0
  324. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/kling_video_client.py +0 -0
  325. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/licensing.py +0 -0
  326. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/local_finance_tools.py +0 -0
  327. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/local_image_provider.py +0 -0
  328. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/local_llm_provider.py +0 -0
  329. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/macro_tools.py +0 -0
  330. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/markdown_pdf.py +0 -0
  331. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/market_data_client.py +0 -0
  332. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/mcp_client.py +0 -0
  333. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/memory_manager.py +0 -0
  334. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/model_capability.py +0 -0
  335. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/notification_tools.py +0 -0
  336. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/openai_image_client.py +0 -0
  337. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/__init__.py +0 -0
  338. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
  339. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
  340. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
  341. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
  342. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
  343. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
  344. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
  345. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_core/export.py +0 -0
  346. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
  347. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_core/paths.py +0 -0
  348. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
  349. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
  350. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
  351. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
  352. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_infra/product.py +0 -0
  353. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
  354. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
  355. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
  356. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
  357. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
  358. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
  359. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
  360. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
  361. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
  362. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
  363. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
  364. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
  365. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
  366. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/cache.py +0 -0
  367. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/context.py +0 -0
  368. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
  369. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/data.py +0 -0
  370. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
  371. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/references.py +0 -0
  372. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/registry.py +0 -0
  373. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
  374. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
  375. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/settings.py +0 -0
  376. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_services/usage.py +0 -0
  377. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
  378. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
  379. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
  380. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
  381. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
  382. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
  383. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
  384. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
  385. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
  386. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
  387. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
  388. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
  389. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
  390. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
  391. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
  392. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
  393. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
  394. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
  395. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
  396. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
  397. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
  398. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
  399. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
  400. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
  401. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
  402. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
  403. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
  404. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
  405. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
  406. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
  407. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
  408. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
  409. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
  410. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
  411. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
  412. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/__init__.py +0 -0
  413. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/base.py +0 -0
  414. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/finance/__init__.py +0 -0
  415. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/logistics/__init__.py +0 -0
  416. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/payments/__init__.py +0 -0
  417. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/realty/__init__.py +0 -0
  418. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/registry.py +0 -0
  419. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/packs/rules.py +0 -0
  420. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/plan_utils.py +0 -0
  421. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/plugin_loader.py +0 -0
  422. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/portfolio_ledger.py +0 -0
  423. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/preview_server.py +0 -0
  424. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/privacy/__init__.py +0 -0
  425. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/privacy/feedback.py +0 -0
  426. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/project_review.py +0 -0
  427. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/project_review_api.py +0 -0
  428. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/project_review_server.py +0 -0
  429. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/project_tools.py +0 -0
  430. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/__init__.py +0 -0
  431. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/__init__.py +0 -0
  432. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/anthropic.py +0 -0
  433. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
  434. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/base.py +0 -0
  435. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/custom.py +0 -0
  436. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/ollama.py +0 -0
  437. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
  438. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/llm/registry.py +0 -0
  439. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/local_image_provider.py +0 -0
  440. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/local_llm_provider.py +0 -0
  441. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/providers/tool_messages.py +0 -0
  442. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/realty_data_tools.py +0 -0
  443. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/relay_store.py +0 -0
  444. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/report_exporters.py +0 -0
  445. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/report_generator.py +0 -0
  446. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/review_service.py +0 -0
  447. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/__init__.py +0 -0
  448. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/acceptance.py +0 -0
  449. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/approval.py +0 -0
  450. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/baseline.py +0 -0
  451. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/budget.py +0 -0
  452. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/checkpoints.py +0 -0
  453. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/contract.py +0 -0
  454. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/crash_report.py +0 -0
  455. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/delivery.py +0 -0
  456. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/events.py +0 -0
  457. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/gateway.py +0 -0
  458. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/lsp.py +0 -0
  459. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/native_index.py +0 -0
  460. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/orchestrator.py +0 -0
  461. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/processes.py +0 -0
  462. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/project_graph.py +0 -0
  463. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/repo_map.py +0 -0
  464. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/review.py +0 -0
  465. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/run_state.py +0 -0
  466. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/run_store.py +0 -0
  467. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/self_healing.py +0 -0
  468. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/semantic_diff.py +0 -0
  469. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/subagent.py +0 -0
  470. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/symbol_edit.py +0 -0
  471. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/task_ledger.py +0 -0
  472. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
  473. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/task_worktree.py +0 -0
  474. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/tool_policy.py +0 -0
  475. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/transactions.py +0 -0
  476. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/windows_job.py +0 -0
  477. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/workflows.py +0 -0
  478. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runtime/worktrees.py +0 -0
  479. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/runway_video_client.py +0 -0
  480. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/safety/__init__.py +0 -0
  481. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/safety/client_isolation.py +0 -0
  482. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/safety/permissions.py +0 -0
  483. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/safety/risk.py +0 -0
  484. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/safety/sandbox.py +0 -0
  485. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/safety/service.py +0 -0
  486. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/setup_wizard.py +0 -0
  487. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/spreadsheet_tools.py +0 -0
  488. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/strategy_vault.py +0 -0
  489. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/__init__.py +0 -0
  490. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/artifact_tools.py +0 -0
  491. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/broker_tools.py +0 -0
  492. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/build_quant_engine.py +0 -0
  493. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/code_audit_tools.py +0 -0
  494. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/computer_use_tools.py +0 -0
  495. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
  496. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
  497. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/extended_tools.py +0 -0
  498. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
  499. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/image_gen_tools.py +0 -0
  500. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/local_finance_tools.py +0 -0
  501. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/logistics_carriers.py +0 -0
  502. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/logistics_inventory.py +0 -0
  503. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/logistics_io.py +0 -0
  504. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
  505. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/logistics_tools.py +0 -0
  506. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/macro_tools.py +0 -0
  507. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/notification_tools.py +0 -0
  508. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/project_tools.py +0 -0
  509. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/realty_data_tools.py +0 -0
  510. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
  511. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/tools/stripe_tools.py +0 -0
  512. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/training/__init__.py +0 -0
  513. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/training/compare.py +0 -0
  514. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/training/sft_dataset.py +0 -0
  515. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/__init__.py +0 -0
  516. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/banner.py +0 -0
  517. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/completer.py +0 -0
  518. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/console.py +0 -0
  519. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/input_box.py +0 -0
  520. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/mentions.py +0 -0
  521. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/picker.py +0 -0
  522. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/__init__.py +0 -0
  523. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/actions.py +0 -0
  524. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/finance.py +0 -0
  525. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/market.py +0 -0
  526. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/output.py +0 -0
  527. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/responsive.py +0 -0
  528. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/render/team.py +0 -0
  529. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/robot.py +0 -0
  530. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/ui/startup_dashboard.py +0 -0
  531. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/utils/vscode_uri.py +0 -0
  532. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/video_analysis.py +0 -0
  533. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/video_editor.py +0 -0
  534. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace/__init__.py +0 -0
  535. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace/files.py +0 -0
  536. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace/verify.py +0 -0
  537. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace_changes.py +0 -0
  538. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace_context.py +0 -0
  539. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace_service.py +0 -0
  540. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code/workspace_tools.py +0 -0
  541. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
  542. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code.egg-info/entry_points.txt +0 -0
  543. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code.egg-info/requires.txt +0 -0
  544. {aria_code-0.140.0 → aria_code-0.141.0}/src/aria_code.egg-info/top_level.txt +0 -0
  545. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_action_view.py +0 -0
  546. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_adk_market_tools.py +0 -0
  547. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_agent_key_points_language.py +0 -0
  548. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_agent_team_fallback.py +0 -0
  549. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_analyze_file_tool.py +0 -0
  550. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_architecture_ledger_is_true.py +0 -0
  551. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_architecture_report.py +0 -0
  552. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_aria_cli_core.py +0 -0
  553. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_aria_mcp_server.py +0 -0
  554. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_aria_sdk.py +0 -0
  555. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_artifact_publishing.py +0 -0
  556. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_artifacts_and_reports.py +0 -0
  557. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ashare_prediction_cmds.py +0 -0
  558. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_background_processes.py +0 -0
  559. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_backtest_cmds.py +0 -0
  560. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_backtest_engine.py +0 -0
  561. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_backtest_report.py +0 -0
  562. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_backtest_runs_what_it_names.py +0 -0
  563. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_baseline.py +0 -0
  564. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
  565. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_broken_akshare_is_optional.py +0 -0
  566. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_broker_automation.py +0 -0
  567. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_broker_chat_confirm_gate.py +0 -0
  568. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_broker_planning.py +0 -0
  569. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_broker_safety.py +0 -0
  570. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_broker_tools.py +0 -0
  571. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_budget.py +0 -0
  572. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_business_workflow_cmds.py +0 -0
  573. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_callback_provider_cleanup.py +0 -0
  574. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_canva_client.py +0 -0
  575. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_canvas_cmds.py +0 -0
  576. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_card_approvals.py +0 -0
  577. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_change_contract.py +0 -0
  578. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_channel_intake.py +0 -0
  579. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_channels.py +0 -0
  580. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_chart_handlers.py +0 -0
  581. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_chat_bots_fail_closed.py +0 -0
  582. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_chat_routing.py +0 -0
  583. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_checkpoints_since.py +0 -0
  584. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ci_security_workflow.py +0 -0
  585. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_app_split.py +0 -0
  586. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_bootstrap.py +0 -0
  587. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_config_store.py +0 -0
  588. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_lifecycle_hooks.py +0 -0
  589. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_runtime_consumer.py +0 -0
  590. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_tool_executor_module.py +0 -0
  591. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cli_updater.py +0 -0
  592. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_client_isolation_guard.py +0 -0
  593. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_cloud_memory.py +0 -0
  594. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_code_audit_tools.py +0 -0
  595. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_code_review_agent.py +0 -0
  596. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_codegen_output.py +0 -0
  597. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_coder_tester_self_healing.py +0 -0
  598. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_coder_tool_safety.py +0 -0
  599. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_collaboration.py +0 -0
  600. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_command_loggers.py +0 -0
  601. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_command_safety.py +0 -0
  602. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_compare_strategies.py +0 -0
  603. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_completions_builder.py +0 -0
  604. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_config_paths.py +0 -0
  605. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_configured_provider.py +0 -0
  606. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_container_entrypoint.py +0 -0
  607. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_container_entrypoints.py +0 -0
  608. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_context_checkpoints.py +0 -0
  609. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_context_references.py +0 -0
  610. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_context_service.py +0 -0
  611. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_conversation_core.py +0 -0
  612. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_crash_report.py +0 -0
  613. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_credential_file_permissions.py +0 -0
  614. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_custom_providers.py +0 -0
  615. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_daemon_gateway_config.py +0 -0
  616. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_dashboard_generator.py +0 -0
  617. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_data_service.py +0 -0
  618. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_data_service_imports.py +0 -0
  619. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_data_without_model.py +0 -0
  620. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_datasource_routing.py +0 -0
  621. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_deep_analysis.py +0 -0
  622. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_degrades_without_quant_engine.py +0 -0
  623. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_delivery_report.py +0 -0
  624. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
  625. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_doctor.py +0 -0
  626. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_doctor_describes_the_current_install.py +0 -0
  627. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_doctor_npm_scope.py +0 -0
  628. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_doctor_sandbox.py +0 -0
  629. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_edit_and_command_safety.py +0 -0
  630. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_engine_boundary.py +0 -0
  631. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_english_output_group.py +0 -0
  632. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_enterprise_tool_honesty.py +0 -0
  633. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_env_switch_docs.py +0 -0
  634. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_eval_behavior.py +0 -0
  635. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_eval_hard_suite.py +0 -0
  636. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_eval_holdout.py +0 -0
  637. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_eval_summary.py +0 -0
  638. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_eval_task_bank.py +0 -0
  639. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_eval_trajectories.py +0 -0
  640. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_evals_harness.py +0 -0
  641. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_event_import_roots.py +0 -0
  642. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_extended_tools.py +0 -0
  643. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_feishu_swarm_config.py +0 -0
  644. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_file_links.py +0 -0
  645. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_finalize_release.py +0 -0
  646. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_finance_renderers.py +0 -0
  647. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_finance_service_catalog.py +0 -0
  648. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_first_run_output.py +0 -0
  649. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_first_run_works.py +0 -0
  650. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_football_agent.py +0 -0
  651. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_football_prediction_output.py +0 -0
  652. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_frozen_module_aliases.py +0 -0
  653. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_gemini_retirement.py +0 -0
  654. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_google_cloud_models.py +0 -0
  655. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_google_cloud_routing.py +0 -0
  656. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_google_login.py +0 -0
  657. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_google_search_provider.py +0 -0
  658. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_headless_command_approval.py +0 -0
  659. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_headless_is_agentic.py +0 -0
  660. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_honest_surfaces.py +0 -0
  661. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_image_gen_tools.py +0 -0
  662. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_image_inputs.py +0 -0
  663. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_import_aliasing.py +0 -0
  664. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_import_graph_budget.py +0 -0
  665. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_intent_router.py +0 -0
  666. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_intent_signals.py +0 -0
  667. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_kling_video_client.py +0 -0
  668. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_lazy_rebind.py +0 -0
  669. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_legacy_module_imports.py +0 -0
  670. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_license_consistency.py +0 -0
  671. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_licensing.py +0 -0
  672. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_linux_sandbox_integration.py +0 -0
  673. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_local_image_provider.py +0 -0
  674. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_local_workspace_execution.py +0 -0
  675. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_logistics_3pl.py +0 -0
  676. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_logistics_and_finance_agents.py +0 -0
  677. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_lsp.py +0 -0
  678. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_markdown_pdf.py +0 -0
  679. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_answers_in_english.py +0 -0
  680. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_data_client.py +0 -0
  681. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_history_inheritance.py +0 -0
  682. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_history_tool.py +0 -0
  683. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_hours.py +0 -0
  684. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_questions_on_backend.py +0 -0
  685. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_symbol_extraction.py +0 -0
  686. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_market_universe.py +0 -0
  687. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_mcp_circuit.py +0 -0
  688. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_mcp_client.py +0 -0
  689. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_mentions.py +0 -0
  690. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_model_capability_registry.py +0 -0
  691. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_model_choice_is_the_users.py +0 -0
  692. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_model_probe.py +0 -0
  693. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_model_selection_state.py +0 -0
  694. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_narrow_chinese_output.py +0 -0
  695. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_binary_entrypoints.py +0 -0
  696. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_bridge.py +0 -0
  697. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_entry.py +0 -0
  698. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_index.py +0 -0
  699. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_native_installer.py +0 -0
  700. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_natural_language_routing.py +0 -0
  701. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_new_modules.py +0 -0
  702. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
  703. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_no_tools_route.py +0 -0
  704. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_no_uncommitted_imports.py +0 -0
  705. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_numeric_listings.py +0 -0
  706. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ollama_stream_imports.py +0 -0
  707. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ollama_stream_tools.py +0 -0
  708. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_openai_image_client.py +0 -0
  709. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_operations_suite.py +0 -0
  710. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_os_sandbox.py +0 -0
  711. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_output_rendering.py +0 -0
  712. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_packages_facade.py +0 -0
  713. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_packaging_constraints.py +0 -0
  714. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_packaging_manifest.py +0 -0
  715. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_packs_domains.py +0 -0
  716. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_pdf_report.py +0 -0
  717. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_pick_best_installed_model.py +0 -0
  718. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_plan_mode.py +0 -0
  719. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_platform_package_assembly.py +0 -0
  720. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_platform_packages.py +0 -0
  721. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_platform_publish.py +0 -0
  722. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_plotly_html_output.py +0 -0
  723. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_portfolio_language.py +0 -0
  724. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_portfolio_ledger.py +0 -0
  725. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_post_turn_context_decision.py +0 -0
  726. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_preflight.py +0 -0
  727. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_preview_server.py +0 -0
  728. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_privacy_feedback.py +0 -0
  729. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_project_aria.py +0 -0
  730. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_project_context_files.py +0 -0
  731. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_project_graph.py +0 -0
  732. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_project_review.py +0 -0
  733. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_project_review_api.py +0 -0
  734. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_prompt_assembly.py +0 -0
  735. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_prompt_dates.py +0 -0
  736. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_prompt_selection.py +0 -0
  737. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_provider_autoconfig.py +0 -0
  738. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_provider_error_classification.py +0 -0
  739. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_provider_error_messages.py +0 -0
  740. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_provider_integration.py +0 -0
  741. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_provider_registry.py +0 -0
  742. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_public_service_status.py +0 -0
  743. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_quant_engine_namespace.py +0 -0
  744. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_rebind_contract.py +0 -0
  745. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_rebind_namespace_contract.py +0 -0
  746. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_client_credentials.py +0 -0
  747. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_contract.py +0 -0
  748. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_event_verification.py +0 -0
  749. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_reliability.py +0 -0
  750. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_sends_for_clients.py +0 -0
  751. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_store.py +0 -0
  752. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_relay_url.py +0 -0
  753. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_badges.py +0 -0
  754. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_chain.py +0 -0
  755. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_commit_identity.py +0 -0
  756. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_download.py +0 -0
  757. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_push_is_atomic.py +0 -0
  758. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_reaches_the_registries.py +0 -0
  759. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_verification_waits.py +0 -0
  760. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_release_workflow_permissions.py +0 -0
  761. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_report_charts.py +0 -0
  762. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_report_generator.py +0 -0
  763. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_report_prompt_language.py +0 -0
  764. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_research_protocol.py +0 -0
  765. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_research_quality.py +0 -0
  766. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_responsive_rendering.py +0 -0
  767. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_review_gate.py +0 -0
  768. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_review_service.py +0 -0
  769. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_risk_approval.py +0 -0
  770. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_risk_assessment.py +0 -0
  771. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_risk_earnings_ops.py +0 -0
  772. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_robot_artwork.py +0 -0
  773. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_root_module_budget.py +0 -0
  774. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_rsi_without_pandas_ta.py +0 -0
  775. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_run_store_redaction.py +0 -0
  776. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_acceptance.py +0 -0
  777. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_agent_loop.py +0 -0
  778. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_approval.py +0 -0
  779. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_bridge_fallback.py +0 -0
  780. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_checkpoints.py +0 -0
  781. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_event_identity.py +0 -0
  782. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_gateway.py +0 -0
  783. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_repo_map.py +0 -0
  784. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_run_store.py +0 -0
  785. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_tool_executor.py +0 -0
  786. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runtime_worktrees.py +0 -0
  787. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_runway_video_client.py +0 -0
  788. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_rust_cli.py +0 -0
  789. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_rust_state.py +0 -0
  790. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_rust_stream.py +0 -0
  791. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_safety_permissions.py +0 -0
  792. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_safety_service.py +0 -0
  793. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_safety_service_adoption.py +0 -0
  794. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_semantic_diff.py +0 -0
  795. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_service_diagnostics_security.py +0 -0
  796. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_session_search.py +0 -0
  797. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_settings_service.py +0 -0
  798. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_shell_commands_as_written.py +0 -0
  799. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_shipper_digest.py +0 -0
  800. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_single_import_root.py +0 -0
  801. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_skill_agent_binding.py +0 -0
  802. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_skill_catalog.py +0 -0
  803. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_skill_loader.py +0 -0
  804. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_slash_popup.py +0 -0
  805. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_spreadsheet_tools.py +0 -0
  806. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_sse_http_roundtrip.py +0 -0
  807. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_sse_stream_contract.py +0 -0
  808. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_startup_dashboard.py +0 -0
  809. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_startup_keeps_cloud_model.py +0 -0
  810. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_startup_latency.py +0 -0
  811. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_status_language.py +0 -0
  812. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_streaming_pipeline.py +0 -0
  813. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_stripe_agent.py +0 -0
  814. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_subagent.py +0 -0
  815. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_subagent_workspace.py +0 -0
  816. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_supervisor_routing.py +0 -0
  817. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_symbol_edit.py +0 -0
  818. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_system_prompts.py +0 -0
  819. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_system_tools_output.py +0 -0
  820. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_task_isolation_turn.py +0 -0
  821. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_task_orchestrator.py +0 -0
  822. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_task_restore_startup.py +0 -0
  823. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_task_worktree.py +0 -0
  824. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_team_analysts.py +0 -0
  825. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_team_synthesis.py +0 -0
  826. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_terminal_mixins.py +0 -0
  827. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_terminal_snapshots.py +0 -0
  828. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_tls_trust_store.py +0 -0
  829. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_tool_policy.py +0 -0
  830. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
  831. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_tool_scope.py +0 -0
  832. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_tool_step_output.py +0 -0
  833. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_trading_service.py +0 -0
  834. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_tradingview_bridge.py +0 -0
  835. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_training_pipeline.py +0 -0
  836. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_transactions.py +0 -0
  837. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_transactions_turn.py +0 -0
  838. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_turn_planning.py +0 -0
  839. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ui_completer_references.py +0 -0
  840. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ui_console_theme.py +0 -0
  841. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ui_input_box.py +0 -0
  842. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ui_language_and_model.py +0 -0
  843. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_ui_robot_banner.py +0 -0
  844. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_update_health_routes.py +0 -0
  845. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_verification_hint.py +0 -0
  846. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_verification_policy.py +0 -0
  847. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_verification_runner_selection.py +0 -0
  848. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_version_consistency.py +0 -0
  849. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_version_counter.py +0 -0
  850. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_vertex_busy_retry.py +0 -0
  851. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_vertex_empty_rounds.py +0 -0
  852. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_vertex_models.py +0 -0
  853. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_vertexai_tool_history.py +0 -0
  854. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_video_analysis.py +0 -0
  855. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_video_editor.py +0 -0
  856. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_vscode_mcp.py +0 -0
  857. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_warehouse_agents.py +0 -0
  858. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_warehouse_cli_registration.py +0 -0
  859. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_warehouse_erp_client.py +0 -0
  860. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_warehouse_workflow.py +0 -0
  861. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_wheel_is_installable.py +0 -0
  862. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workflows.py +0 -0
  863. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workspace_changes.py +0 -0
  864. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workspace_context.py +0 -0
  865. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workspace_files.py +0 -0
  866. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workspace_scope.py +0 -0
  867. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workspace_service.py +0 -0
  868. {aria_code-0.140.0 → aria_code-0.141.0}/tests/test_workspace_verify.py +0 -0
  869. {aria_code-0.140.0 → aria_code-0.141.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.140.0
3
+ Version: 0.141.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.140.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.140.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.141.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.141.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.140.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.140.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.141.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.141.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.140.0"
7
+ version = "0.141.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.140.0"
20
+ __version__ = "0.141.0"
@@ -108,7 +108,8 @@ class Server:
108
108
  choices = [[str(label), str(help_text)] for label, help_text in options]
109
109
  answer = self.ask("approval.requested", title=str(title or "Approval / selection"),
110
110
  choices=choices, selected=selected,
111
- shortcuts=kwargs.get("shortcuts", {}))
111
+ shortcuts=kwargs.get("shortcuts", {}),
112
+ context=getattr(self, "approval_context", ""))
112
113
  chosen = answer.get("choice", -1)
113
114
  if type(chosen) is not int or not -1 <= chosen < len(choices):
114
115
  raise ValueError("Invalid menu response")
@@ -225,6 +226,22 @@ class Server:
225
226
  self.stop_spinner()
226
227
 
227
228
  cli.TerminalRuntimeEventConsumer = Consumer
229
+ approval_base = cli.TerminalApprovalEventConsumer
230
+ class Approvals(approval_base):
231
+ async def approve(self, tool_name, tool_params, **kwargs):
232
+ from aria_code.apps.cli.exec_events import _param_view
233
+ params = _param_view(tool_params)
234
+ zh = str(server.terminal.config.get("ui_lang", "en")).startswith("zh")
235
+ context = [("工具" if zh else "Tool") + ": " + tool_name]
236
+ for key, en, cn in (("path", "File", "文件"), ("command", "Command", "命令"), ("directory", "Directory", "目录")):
237
+ if isinstance(params.get(key), str):
238
+ context.append((cn if zh else en) + ": " + params[key])
239
+ server.approval_context = "\n".join(context)
240
+ try:
241
+ return await super().approve(tool_name, tool_params, **kwargs)
242
+ finally:
243
+ server.approval_context = ""
244
+ cli.TerminalApprovalEventConsumer = Approvals
228
245
  config = cli.load_config()
229
246
  config["_session_workspace_root"] = str(Path.cwd().resolve())
230
247
  config["_session_write_roots"] = [str(Path(p).expanduser().resolve()) for p in self.options.add_dir]
@@ -265,6 +282,9 @@ class Server:
265
282
 
266
283
  def make_terminal(self, config):
267
284
  terminal = self.cli.ArtheraTerminal(config)
285
+ # The host draws its own turn footer. Keep this presentation flag out
286
+ # of saved user settings and retain normal Python CLI behaviour.
287
+ terminal._native_frontend = True
268
288
  execute = terminal.tool_executor.execute_local
269
289
  def tracked(*args, **kwargs):
270
290
  with self.tool_lock:
@@ -329,17 +349,25 @@ class Server:
329
349
 
330
350
  def snapshot(self, kind):
331
351
  from aria_code.apps.cli.native_branding import robot_rows
352
+ from aria_code.ui import robot
332
353
  t = self.terminal
354
+ rows = robot_rows(hidden=self.options.no_banner or self.options.banner == "off")
355
+ # Older Rust frontends still consume the spans. New frontends draw the
356
+ # named design themselves, sharing the same mascot as the Go runtime.
357
+ # An empty drawing must continue to mean that the banner is disabled.
333
358
  # A display snapshot is bounded independently of the model's context.
334
359
  messages = [{"role": m.get("role", ""), "content": str(m.get("content", ""))[:4096]}
335
360
  for m in t.conversation[-40:]]
336
361
  self.emit(kind, session_id=t.session_id, messages=messages,
337
362
  version=self.cli.__version__,
338
- robot=robot_rows(hidden=self.options.no_banner or self.options.banner == "off"),
363
+ robot=rows, robot_design="cream-block-v2" if rows else "",
339
364
  model=t.config.get("model", ""), provider=t.config.get("local_provider", ""),
340
365
  workspace=str(Path.cwd()), commands=sorted(t.commands.commands),
341
366
  permission=t.config.get("permission_mode", "workspace-write"),
342
- network=bool(t.config.get("network_enabled", True)))
367
+ network=bool(t.config.get("network_enabled", True)),
368
+ ui_lang=t.config.get("ui_lang", "en"),
369
+ ui_theme=robot._theme_cache or robot._resolve_theme(),
370
+ home_workspace=Path.cwd().resolve() == Path.home().resolve())
343
371
 
344
372
  def persist(self):
345
373
  t = self.terminal
@@ -641,7 +641,8 @@ class ChatTurnMixin:
641
641
  else:
642
642
  print(f" {text}")
643
643
 
644
- _task = _task_isolation.prepare(_runtime_config, notify=_task_note)
644
+ from aria_code.apps.cli.conversation_policy import is_social_message
645
+ _task = None if (not (_rt_sys_ov or "").strip() and is_social_message(message)) else _task_isolation.prepare(_runtime_config, notify=_task_note)
645
646
  _task_context = _task_isolation.execution_context(_task, _runtime_config)
646
647
  try:
647
648
  for _rt_attempt in range(2):
@@ -1103,7 +1104,7 @@ class ChatTurnMixin:
1103
1104
  from ui.render.output import format_turn_footer as _format_turn_footer
1104
1105
  _footer = _format_turn_footer(
1105
1106
  metadata,
1106
- mode=self.config.get("response_footer", "compact"),
1107
+ mode="off" if getattr(self, "_native_frontend", False) else self.config.get("response_footer", "compact"),
1107
1108
  copy_available=bool(final_text),
1108
1109
  )
1109
1110
  if _footer:
@@ -1112,7 +1113,7 @@ class ChatTurnMixin:
1112
1113
  from ui.render.output import format_turn_footer as _format_turn_footer
1113
1114
  _footer = _format_turn_footer(
1114
1115
  metadata,
1115
- mode=self.config.get("response_footer", "compact"),
1116
+ mode="off" if getattr(self, "_native_frontend", False) else self.config.get("response_footer", "compact"),
1116
1117
  copy_available=bool(final_text),
1117
1118
  )
1118
1119
  if _footer:
@@ -0,0 +1,21 @@
1
+ """Recognize standalone social messages without guessing a task's intent.
2
+
3
+ Matching the whole message is intentional: ``hi, read README.md`` must keep
4
+ its tools, as must ``yes`` or ``continue`` in an ongoing coding conversation.
5
+ """
6
+ from __future__ import annotations
7
+
8
+ import re
9
+
10
+ _SOCIAL = frozenset({
11
+ "hi", "hello", "hey", "hiya", "hi there", "hello there", "how are you", "how are you doing", "good morning", "good afternoon", "good evening",
12
+ "hi aria", "hello aria", "hey aria", "thanks", "thank you", "thanks aria",
13
+ "bye", "goodbye", "你好", "你好啊", "你好呀", "您好", "嗨", "哈喽", "在吗", "你在吗", "早安", "晚安", "早上好", "下午好", "晚上好", "👋",
14
+ "你好aria", "aria你好", "你好 aria", "aria 你好", "hiaria", "helloaria", "heyaria", "谢谢", "谢谢你", "再见",
15
+ })
16
+
17
+
18
+ def is_social_message(message: str) -> bool:
19
+ text = re.sub(r"[!!??。,,.~~]+", "", str(message or "").strip().casefold())
20
+ text = " ".join(text.split())
21
+ return text in _SOCIAL
@@ -135,6 +135,11 @@ class ExecEvents:
135
135
  if result.get("error"):
136
136
  fields["error"] = _redact_activity_text(result["error"], limit=PARAM_CHARS)
137
137
  data = result.get("data") if isinstance(result.get("data"), dict) else {}
138
+ if result.get("reused") is True:
139
+ fields["reused"] = True
140
+ # Counts describe the returned data, never inferred model prose.
141
+ if tool == "list_files" and isinstance(data.get("items"), list):
142
+ fields["item_count"] = len(data["items"])
138
143
  for key in ("exit_code", "path", "process_id", "change_id"):
139
144
  if key in data:
140
145
  fields[key] = data[key]
@@ -1,4 +1,4 @@
1
- """Serialize the existing mascot without copying or changing its design."""
1
+ """Legacy mascot spans for native frontends predating named Rust artwork."""
2
2
  from __future__ import annotations
3
3
 
4
4
  import os
@@ -2,11 +2,13 @@
2
2
  # Contains the main coding system prompt for Aria.
3
3
 
4
4
  CODING_SYSTEM_PROMPT = (
5
- "You are the Aria Code Supervisor for this workspace. You have direct file system access on macOS.\n"
5
+ "You are Aria, the coding assistant for the user's selected workspace. File tools run on the user's computer under the host's permissions.\n"
6
6
 
7
- "Act as three explicit roles: Supervisor plans and delegates; Coder inspects and proposes/writes complete-file changes; Tester performs verification of proposals/changes.\n"
7
+ "Plan, implement and verify the requested task. Keep internal role labels out of user-facing replies.\n"
8
8
 
9
9
  "Required workflow: orient → read → proposal/write → verification. Skip a step only when its evidence is already present.\n\n"
10
+ "Inspect only files relevant to the task. Do not explore personal folders merely to greet the user. "
11
+ "Use existing tool results instead of repeating the same read without a reason.\n\n"
10
12
 
11
13
  "## ORIENT BEFORE YOU SEARCH\n"
12
14
  "In an unfamiliar repository, call `repo_map` FIRST. It returns the classes, functions and "
@@ -51,6 +51,9 @@ def select_base_prompt(message: str, *, intent: Optional[str] = None) -> str:
51
51
  (a live-data lookup, where the finance prompt is assembled with fetched
52
52
  data by the caller that has it).
53
53
  """
54
+ from aria_code.apps.cli.conversation_policy import is_social_message
55
+ if intent is None and is_social_message(message):
56
+ return _general_prompt()
54
57
  resolved = intent or _intent_of(message)
55
58
  if resolved == "general" and intent is None and _needs_workspace(message):
56
59
  # "Write a stock brief to report_BETA.md from inventory.csv" read as
@@ -134,6 +137,8 @@ def _general_prompt() -> str:
134
137
  "- State the scope before a change and the verification after it.\n"
135
138
  "- Do not invent prices, exchange rates, or other live figures.\n"
136
139
  "- Answer in the user's language. Be concise and specific."
140
+ "\n- A standalone greeting or thanks needs only a short direct reply, with no tools, "
141
+ "directory inventory, personal-file references or internal role titles."
137
142
  )
138
143
 
139
144
 
@@ -154,6 +159,10 @@ def build_turn_system_prompt(
154
159
  if override and override.strip():
155
160
  return override
156
161
 
162
+ from aria_code.apps.cli.conversation_policy import is_social_message
163
+ if intent is None and is_social_message(message):
164
+ return _general_prompt()
165
+
157
166
  parts = [select_base_prompt(message, intent=intent), OUTPUT_DISCIPLINE]
158
167
  if project_context and project_context.strip():
159
168
  parts.append(project_context.strip())
@@ -307,7 +307,7 @@ def make_provider_fn(
307
307
  try:
308
308
  from aria_code.apps.cli.tool_scope import select_tool_schemas
309
309
 
310
- return select_tool_schemas(tool_schemas, prompt)
310
+ return select_tool_schemas(tool_schemas, prompt, allow_social_tools=bool((system_override or "").strip()))
311
311
  except Exception:
312
312
  return list(tool_schemas)
313
313
 
@@ -438,8 +438,16 @@ async def run_chat_via_runtime(
438
438
  """
439
439
  from aria_code.runtime.gateway import run_turn
440
440
  from aria_code.apps.cli.workspace_route import workspace_config
441
+ from aria_code.apps.cli.conversation_policy import is_social_message
441
442
 
442
443
  config = workspace_config(prompt, model, config, api_url)
444
+ social_only = not (system_override or "").strip() and is_social_message(prompt)
445
+ if social_only:
446
+ # Host-owned policy, also enforced at execution if a provider returns
447
+ # an unsolicited call despite receiving no schemas. Never save it.
448
+ config = {**config, "_conversation_only": True}
449
+ tool_schemas = []
450
+ project_context = None
443
451
 
444
452
  provider_fn = make_provider_fn(
445
453
  model=model, config=config, api_url=api_url, ollama_url=ollama_url,
@@ -448,9 +456,9 @@ async def run_chat_via_runtime(
448
456
  system_override=system_override,
449
457
  )
450
458
  executor = build_tool_executor(local_tools, config, execution_context)
451
- gate = build_acceptance_gate(executor, config, prompt)
452
- contract = build_change_contract(config, prompt, executor)
453
- review = build_review_gate(config, model=model, api_url=api_url, ollama_url=ollama_url,
459
+ gate = None if social_only else build_acceptance_gate(executor, config, prompt)
460
+ contract = None if social_only else build_change_contract(config, prompt, executor)
461
+ review = None if social_only else build_review_gate(config, model=model, api_url=api_url, ollama_url=ollama_url,
454
462
  thinking_mode=thinking_mode, auth_token=auth_token)
455
463
 
456
464
  result = await run_turn(
@@ -67,10 +67,12 @@ def select_tool_schemas(
67
67
  *,
68
68
  always: Iterable[str] = (),
69
69
  activations: Optional[Sequence] = None,
70
+ allow_social_tools: bool = False,
70
71
  ) -> list[dict]:
71
72
  """The schemas to offer for *message*.
72
73
 
73
- Core tools always; a domain tool only while its pack has claimed the
74
+ Standalone social messages need no tools. Otherwise core tools always;
75
+ a domain tool only while its pack has claimed the
74
76
  message. ``always`` forces specific names in regardless — for a caller that
75
77
  knows this turn needs one (a slash command that resolved to a tool, a
76
78
  subagent handed a narrowed brief).
@@ -80,8 +82,13 @@ def select_tool_schemas(
80
82
  the tax is the safer default.
81
83
  """
82
84
  all_schemas = list(schemas or [])
85
+ always = tuple(always)
83
86
  if not all_schemas:
84
87
  return all_schemas
88
+ from aria_code.apps.cli.conversation_policy import is_social_message
89
+
90
+ if is_social_message(message) and not always and not allow_social_tools:
91
+ return []
85
92
 
86
93
  # One try around the whole decision. domain_tool_names() sat outside it,
87
94
  # so a failure there propagated instead of degrading — the docstring
@@ -854,12 +854,26 @@ async def run_parallel_tools(
854
854
  ) -> Dict[int, dict]:
855
855
  """Execute parallel-safe pending tools and return results by original index."""
856
856
  parallel_batch, _ = split_tool_calls(pending, serial_tools)
857
+ # Reuse only identical local reads in this batch. There are no intervening
858
+ # writes here, and nothing is cached across rounds (external edits matter).
859
+ import copy
860
+ import json
861
+ shared_reads: dict[str, asyncio.Task] = {}
857
862
 
858
863
  async def _exec_one(tool_call: dict) -> tuple:
859
864
  tool_name = tool_call.get("tool", "")
860
865
  tool_params = tool_call.get("params", {})
861
866
  if tool_name in tool_executor.local_tools:
862
- result = await tool_executor.execute(tool_name, tool_params)
867
+ if tool_name in {"read_file", "list_files", "glob", "search_code"}:
868
+ key = tool_name + json.dumps(tool_params, sort_keys=True, ensure_ascii=False)
869
+ reused = key in shared_reads
870
+ if not reused:
871
+ shared_reads[key] = asyncio.create_task(tool_executor.execute(tool_name, tool_params))
872
+ result = copy.deepcopy(await shared_reads[key])
873
+ if reused:
874
+ result["reused"] = True
875
+ else:
876
+ result = await tool_executor.execute(tool_name, tool_params)
863
877
  elif remote_runner is not None:
864
878
  if hook is not None:
865
879
  hook("pre_tool", tool_name, tool_params, None)
@@ -41,6 +41,8 @@ class ToolExecutor:
41
41
  self, tool_name: str, params: dict, *, approval: ApprovalDecision | None = None
42
42
  ) -> dict:
43
43
  """Execute a local tool synchronously."""
44
+ if self.config.get("_conversation_only"):
45
+ return {"success": False, "error": "This is a standalone social message. Reply directly without tools or file inspection."}
44
46
  if tool_name not in self.local_tools:
45
47
  return {"success": False, "error": f"Unknown local tool: {tool_name}"}
46
48
  if approval is not None and not approval.approved:
@@ -64,6 +66,8 @@ class ToolExecutor:
64
66
 
65
67
  async def execute(self, tool_name: str, params: dict) -> dict:
66
68
  """Execute a tool asynchronously, using remote executor when needed."""
69
+ if self.config.get("_conversation_only"):
70
+ return {"success": False, "error": "This is a standalone social message. Reply directly without tools or file inspection."}
67
71
  if tool_name in self.local_tools:
68
72
  loop = asyncio.get_event_loop()
69
73
  return await loop.run_in_executor(None, self.execute_local, tool_name, params)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aria-code
3
- Version: 0.140.0
3
+ Version: 0.141.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.140.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.140.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.141.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.141.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>
@@ -162,6 +162,7 @@ src/aria_code/apps/cli/config_paths.py
162
162
  src/aria_code/apps/cli/config_store.py
163
163
  src/aria_code/apps/cli/constants.py
164
164
  src/aria_code/apps/cli/context.py
165
+ src/aria_code/apps/cli/conversation_policy.py
165
166
  src/aria_code/apps/cli/deterministic.py
166
167
  src/aria_code/apps/cli/direct.py
167
168
  src/aria_code/apps/cli/earnings_view.py
@@ -600,6 +601,7 @@ tests/test_context_checkpoints.py
600
601
  tests/test_context_references.py
601
602
  tests/test_context_service.py
602
603
  tests/test_conversation_core.py
604
+ tests/test_conversation_policy.py
603
605
  tests/test_crash_report.py
604
606
  tests/test_credential_file_permissions.py
605
607
  tests/test_custom_providers.py
@@ -0,0 +1,94 @@
1
+ import asyncio
2
+
3
+ import pytest
4
+
5
+ from aria_code.apps.cli.conversation_policy import is_social_message
6
+ from aria_code.apps.cli.prompts.select import build_turn_system_prompt
7
+ from aria_code.apps.cli.tool_scope import select_tool_schemas
8
+ from aria_code.runtime.agent_loop import run_parallel_tools
9
+ from aria_code.runtime.tool_executor import ToolExecutor
10
+
11
+
12
+ @pytest.mark.parametrize("text", ["你好", "您好!", "你好 Aria", "Hello, Aria!", "THANK YOU", "再见。"])
13
+ def test_standalone_social_messages_have_no_tools_or_project_context(text):
14
+ assert is_social_message(text)
15
+ schemas = [{"name": "list_files"}, {"name": "read_file"}]
16
+ assert select_tool_schemas(schemas, text) == []
17
+ prompt = build_turn_system_prompt(text, project_context="PRIVATE_WORKSPACE_CONTENT")
18
+ assert "PRIVATE_WORKSPACE_CONTENT" not in prompt
19
+ assert "repo_map" not in prompt
20
+
21
+
22
+ @pytest.mark.parametrize("text", ["你好,读取 README.md", "Hello, fix my tests", "yes", "continue", "谢谢,继续修复", "hi.txt", "运行 ls"])
23
+ def test_greetings_with_a_task_and_task_continuations_keep_their_tools(text):
24
+ assert not is_social_message(text)
25
+ assert select_tool_schemas([{"name": "read_file"}], text)
26
+
27
+
28
+ def test_unsolicited_model_call_cannot_scan_files_during_a_greeting(monkeypatch, tmp_path):
29
+ from aria_code.apps.cli.providers import runtime_bridge as rb
30
+ scanned = []
31
+ settings = []
32
+ async def provider(prompt, history, **kwargs):
33
+ if not history:
34
+ return {"success": True, "response": "", "tool_calls_pending": [
35
+ {"tool": "list_files", "params": {"path": str(tmp_path)}}]}
36
+ return {"success": True, "response": "你好!"}
37
+ def factory(**kwargs):
38
+ settings.append(kwargs)
39
+ return provider
40
+ monkeypatch.setattr(rb, "make_provider_fn", factory)
41
+ config = {"acceptance_gate": True, "_session_workspace_root": str(tmp_path)}
42
+ result = asyncio.run(rb.run_chat_via_runtime(
43
+ prompt="你好", history=[], local_tools={"list_files": (lambda p: scanned.append(p) or {"success": True, "data": {"items": []}}, "List")},
44
+ tool_schemas=[{"name": "list_files"}], model="fixture", config=config,
45
+ api_url=None, ollama_url="", project_context="PRIVATE_WORKSPACE_CONTENT", max_rounds=3,
46
+ ))
47
+ assert result == "你好!"
48
+ assert scanned == []
49
+ assert settings[0]["tool_schemas"] == []
50
+ assert settings[0]["project_context"] is None
51
+ assert "_conversation_only" not in config
52
+
53
+
54
+ def test_social_policy_also_blocks_remote_execution():
55
+ calls = []
56
+ async def remote(*args):
57
+ calls.append(args)
58
+ return {"success": True}
59
+ executor = ToolExecutor({}, remote_executor=remote, config={"_conversation_only": True})
60
+ assert not asyncio.run(executor.execute("external", {}))["success"]
61
+ assert not executor.execute_local("external", {})["success"]
62
+ assert calls == []
63
+
64
+
65
+ def test_duplicate_parallel_reads_execute_once_but_new_round_reads_fresh(tmp_path):
66
+ file = tmp_path / "note.txt"
67
+ file.write_text("before")
68
+ calls = []
69
+ def read(params):
70
+ calls.append(params["path"])
71
+ return {"success": True, "data": {"content": file.read_text()}}
72
+ executor = ToolExecutor({"read_file": (read, "Read")})
73
+ pending = [{"tool": "read_file", "params": {"path": str(file)}} for _ in range(3)]
74
+ results = asyncio.run(run_parallel_tools(pending, executor))
75
+ assert len(calls) == 1 and len(results) == 3
76
+ assert results[1]["reused"] and results[2]["reused"]
77
+ results[1]["data"]["content"] = "modified result"
78
+ assert results[0]["data"]["content"] == "before"
79
+ file.write_text("after")
80
+ assert asyncio.run(run_parallel_tools(pending, executor))[0]["data"]["content"] == "after"
81
+ assert len(calls) == 2
82
+
83
+
84
+ def test_different_read_targets_and_side_effects_are_not_coalesced():
85
+ calls = []
86
+ def handler(params):
87
+ from pathlib import Path
88
+ calls.append(Path(params["path"]).name)
89
+ return {"success": True}
90
+ executor = ToolExecutor({"read_file": (handler, "Read"), "custom": (handler, "Action")})
91
+ pending = [{"tool": tool, "params": {"path": path}} for tool, path in
92
+ [("read_file", "one"), ("read_file", "two"), ("custom", "same"), ("custom", "same")]]
93
+ asyncio.run(run_parallel_tools(pending, executor))
94
+ assert sorted(calls) == ["one", "same", "same", "two"]
@@ -41,6 +41,15 @@ def test_a_file_body_is_reported_by_size():
41
41
  assert json.loads(out.getvalue())["params"] == {"path": "a.py", "content": "<5000 chars>"}
42
42
 
43
43
 
44
+ def test_list_summary_reports_actual_returned_count_without_file_contents():
45
+ out = io.StringIO()
46
+ ExecEvents(out).tool_completed("list_files", {"success": True, "reused": True,
47
+ "data": {"path": "/project", "items": ["private-note", "second"], "count": 999}})
48
+ value = json.loads(out.getvalue())
49
+ assert value["item_count"] == 2 and value["reused"]
50
+ assert "private-note" not in out.getvalue()
51
+
52
+
44
53
  def test_no_stream_writes_nothing_and_odd_values_still_serialise():
45
54
  ExecEvents(None).emit("turn.started", prompt="x")
46
55
  path = Path("/a")