aria-code 0.113.0__tar.gz → 0.115.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 (806) hide show
  1. {aria_code-0.113.0/src/aria_code.egg-info → aria_code-0.115.0}/PKG-INFO +2 -2
  2. {aria_code-0.113.0 → aria_code-0.115.0}/README.md +1 -1
  3. {aria_code-0.113.0 → aria_code-0.115.0}/pyproject.toml +2 -2
  4. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/_version.py +1 -1
  5. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/bootstrap.py +5 -2
  6. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/model_cmds.py +12 -1
  7. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +1 -1
  8. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/config_store.py +43 -1
  9. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/model_catalog.py +30 -12
  10. aria_code-0.115.0/src/aria_code/apps/cli/model_retirement.py +63 -0
  11. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_cli.py +8 -8
  12. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ariarc.py +1 -1
  13. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/doctor.py +1 -1
  14. aria_code-0.115.0/src/aria_code/evals/gap.py +93 -0
  15. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/evals/summary.py +56 -14
  16. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/model_capability.py +5 -0
  17. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/openai_compat.py +1 -1
  18. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/registry.py +1 -1
  19. aria_code-0.115.0/src/aria_code/training/__init__.py +1 -0
  20. aria_code-0.115.0/src/aria_code/training/compare.py +117 -0
  21. aria_code-0.115.0/src/aria_code/training/sft_dataset.py +230 -0
  22. {aria_code-0.113.0 → aria_code-0.115.0/src/aria_code.egg-info}/PKG-INFO +2 -2
  23. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code.egg-info/SOURCES.txt +8 -0
  24. aria_code-0.115.0/tests/test_eval_holdout.py +102 -0
  25. aria_code-0.115.0/tests/test_gemini_retirement.py +101 -0
  26. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_model_capability_registry.py +5 -3
  27. aria_code-0.115.0/tests/test_training_pipeline.py +172 -0
  28. {aria_code-0.113.0 → aria_code-0.115.0}/LICENSE +0 -0
  29. {aria_code-0.113.0 → aria_code-0.115.0}/NOTICE +0 -0
  30. {aria_code-0.113.0 → aria_code-0.115.0}/setup.cfg +0 -0
  31. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/__init__.py +0 -0
  32. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/adk_apps/__init__.py +0 -0
  33. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
  34. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
  35. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
  36. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
  37. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/__init__.py +0 -0
  38. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/base.py +0 -0
  39. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/code_review.py +0 -0
  40. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/__init__.py +0 -0
  41. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
  42. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/critic.py +0 -0
  43. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/deepen.py +0 -0
  44. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/models.py +0 -0
  45. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/pipeline.py +0 -0
  46. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
  47. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/themes.py +0 -0
  48. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/deep/tiers.py +0 -0
  49. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/engineering/__init__.py +0 -0
  50. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/engineering/coder.py +0 -0
  51. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/engineering/tester.py +0 -0
  52. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/__init__.py +0 -0
  53. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
  54. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/catalyst.py +0 -0
  55. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
  56. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/debate.py +0 -0
  57. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/earnings.py +0 -0
  58. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/fundamental.py +0 -0
  59. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/macro.py +0 -0
  60. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/news.py +0 -0
  61. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/risk.py +0 -0
  62. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/sector.py +0 -0
  63. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/strategist.py +0 -0
  64. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
  65. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/synthesis.py +0 -0
  66. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/financial/technical.py +0 -0
  67. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/orchestrator.py +0 -0
  68. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/portfolio_agent.py +0 -0
  69. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/__init__.py +0 -0
  70. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
  71. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/business_match.py +0 -0
  72. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
  73. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
  74. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
  75. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
  76. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
  77. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
  78. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
  79. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/registry.py +0 -0
  80. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/signal_scheme.py +0 -0
  81. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/sports/__init__.py +0 -0
  82. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/sports/football_agent.py +0 -0
  83. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/supervisor.py +0 -0
  84. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/team.py +0 -0
  85. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
  86. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
  87. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
  88. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
  89. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
  90. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
  91. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
  92. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
  93. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
  94. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
  95. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
  96. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aliyun_data_client.py +0 -0
  97. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/README.md +0 -0
  98. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/__init__.py +0 -0
  99. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/README.md +0 -0
  100. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/__init__.py +0 -0
  101. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/approvals.py +0 -0
  102. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/conversation.py +0 -0
  103. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/digest.py +0 -0
  104. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/intake.py +0 -0
  105. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/registry.py +0 -0
  106. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/channels/tradingview.py +0 -0
  107. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/README.md +0 -0
  108. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/__init__.py +0 -0
  109. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/_optional.py +0 -0
  110. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/broker_render.py +0 -0
  111. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/chat_turn.py +0 -0
  112. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
  113. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
  114. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
  115. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
  116. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
  117. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
  118. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
  119. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
  120. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
  121. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
  122. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
  123. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
  124. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
  125. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
  126. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
  127. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
  128. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
  129. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
  130. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
  131. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/market.py +0 -0
  132. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
  133. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
  134. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
  135. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
  136. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
  137. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
  138. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/report.py +0 -0
  139. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
  140. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
  141. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
  142. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/team.py +0 -0
  143. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
  144. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
  145. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
  146. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
  147. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
  148. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/config_paths.py +0 -0
  149. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/constants.py +0 -0
  150. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/context.py +0 -0
  151. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/deterministic.py +0 -0
  152. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/direct.py +0 -0
  153. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
  154. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/exec_events.py +0 -0
  155. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
  156. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/football_reports.py +0 -0
  157. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
  158. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/google_login.py +0 -0
  159. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
  160. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
  161. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
  162. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
  163. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
  164. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
  165. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
  166. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/headless.py +0 -0
  167. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/helpers.py +0 -0
  168. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/hooks.py +0 -0
  169. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/i18n.py +0 -0
  170. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/intent.py +0 -0
  171. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/intent_router.py +0 -0
  172. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
  173. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
  174. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
  175. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/main.py +0 -0
  176. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/market_hours.py +0 -0
  177. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
  178. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/market_universe.py +0 -0
  179. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/message_processing.py +0 -0
  180. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
  181. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/model_probe.py +0 -0
  182. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
  183. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
  184. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
  185. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
  186. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/preflight.py +0 -0
  187. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/project_aria.py +0 -0
  188. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
  189. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
  190. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
  191. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
  192. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
  193. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
  194. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
  195. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
  196. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
  197. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/base.py +0 -0
  198. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
  199. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
  200. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
  201. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
  202. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
  203. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
  204. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
  205. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
  206. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
  207. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/release_download.py +0 -0
  208. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/review_runner.py +0 -0
  209. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
  210. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/sandbox.py +0 -0
  211. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/session_export.py +0 -0
  212. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
  213. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/session_store.py +0 -0
  214. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
  215. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
  216. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
  217. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
  218. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
  219. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
  220. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
  221. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/context.py +0 -0
  222. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
  223. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
  224. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
  225. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
  226. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
  227. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
  228. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
  229. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/update_check.py +0 -0
  230. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/updater.py +0 -0
  231. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
  232. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
  233. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
  234. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/daemon/README.md +0 -0
  235. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/vscode/README.md +0 -0
  236. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/apps/vscode/package.json +0 -0
  237. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_daemon.py +0 -0
  238. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_feishu_bot.py +0 -0
  239. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_mcp_server.py +0 -0
  240. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_relay_client.py +0 -0
  241. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_relay_server.py +0 -0
  242. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/aria_telegram_bot.py +0 -0
  243. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/artifacts.py +0 -0
  244. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/backtest_engine.py +0 -0
  245. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/backtest_report.py +0 -0
  246. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/__init__.py +0 -0
  247. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/automation.py +0 -0
  248. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/base.py +0 -0
  249. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/capabilities.py +0 -0
  250. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/cn/__init__.py +0 -0
  251. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
  252. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
  253. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
  254. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
  255. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
  256. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/config.py +0 -0
  257. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/intl/__init__.py +0 -0
  258. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
  259. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
  260. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
  261. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
  262. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/paper_broker.py +0 -0
  263. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/planning.py +0 -0
  264. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/registry.py +0 -0
  265. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/brokers/trading.py +0 -0
  266. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/canva_client.py +0 -0
  267. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/change_store.py +0 -0
  268. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/__init__.py +0 -0
  269. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
  270. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/aria_relay_client.py +0 -0
  271. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/canva_client.py +0 -0
  272. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/figma_client.py +0 -0
  273. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/football_data_client.py +0 -0
  274. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/kling_video_client.py +0 -0
  275. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/market_data_client.py +0 -0
  276. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/openai_image_client.py +0 -0
  277. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/runway_video_client.py +0 -0
  278. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
  279. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/cloud_memory.py +0 -0
  280. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/command_safety.py +0 -0
  281. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/computer_use_tools.py +0 -0
  282. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/dashboard_generator.py +0 -0
  283. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/data_analysis_tools.py +0 -0
  284. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/data_cleaner.py +0 -0
  285. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/data_service.py +0 -0
  286. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/__init__.py +0 -0
  287. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/base.py +0 -0
  288. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/router.py +0 -0
  289. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/__init__.py +0 -0
  290. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
  291. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
  292. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
  293. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
  294. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
  295. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
  296. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
  297. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
  298. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
  299. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/demo_player.py +0 -0
  300. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/domain/__init__.py +0 -0
  301. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/domain/backtest_engine.py +0 -0
  302. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/domain/backtest_report.py +0 -0
  303. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/domain/finance_formulas.py +0 -0
  304. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
  305. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/domain/strategy_vault.py +0 -0
  306. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/evals/__init__.py +0 -0
  307. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/evals/harness.py +0 -0
  308. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/evals/runner.py +0 -0
  309. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/external_agent_runner.py +0 -0
  310. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/figma_client.py +0 -0
  311. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/file_analysis_tools.py +0 -0
  312. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/finance_formulas.py +0 -0
  313. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/football_data_client.py +0 -0
  314. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/image_gen_tools.py +0 -0
  315. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/intent_classifier.py +0 -0
  316. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/kling_video_client.py +0 -0
  317. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/licensing.py +0 -0
  318. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/local_finance_tools.py +0 -0
  319. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/local_image_provider.py +0 -0
  320. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/local_llm_provider.py +0 -0
  321. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/macro_tools.py +0 -0
  322. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/markdown_pdf.py +0 -0
  323. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/market_data_client.py +0 -0
  324. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/mcp_client.py +0 -0
  325. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/memory_manager.py +0 -0
  326. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/notification_tools.py +0 -0
  327. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/openai_image_client.py +0 -0
  328. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/__init__.py +0 -0
  329. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
  330. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
  331. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
  332. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
  333. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
  334. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
  335. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
  336. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_core/export.py +0 -0
  337. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
  338. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_core/paths.py +0 -0
  339. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
  340. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
  341. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
  342. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
  343. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_infra/product.py +0 -0
  344. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
  345. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
  346. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
  347. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
  348. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
  349. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
  350. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
  351. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
  352. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
  353. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
  354. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
  355. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
  356. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
  357. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/cache.py +0 -0
  358. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/context.py +0 -0
  359. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
  360. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/data.py +0 -0
  361. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
  362. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/references.py +0 -0
  363. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/registry.py +0 -0
  364. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
  365. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
  366. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/settings.py +0 -0
  367. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_services/usage.py +0 -0
  368. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
  369. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
  370. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
  371. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
  372. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
  373. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
  374. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
  375. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
  376. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
  377. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
  378. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
  379. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
  380. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
  381. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
  382. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
  383. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
  384. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
  385. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
  386. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
  387. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
  388. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
  389. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
  390. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
  391. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
  392. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
  393. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
  394. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
  395. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
  396. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
  397. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
  398. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
  399. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
  400. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
  401. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
  402. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
  403. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/__init__.py +0 -0
  404. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/base.py +0 -0
  405. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/finance/__init__.py +0 -0
  406. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/logistics/__init__.py +0 -0
  407. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/payments/__init__.py +0 -0
  408. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/realty/__init__.py +0 -0
  409. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/registry.py +0 -0
  410. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/packs/rules.py +0 -0
  411. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/plan_utils.py +0 -0
  412. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/plugin_loader.py +0 -0
  413. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/portfolio_ledger.py +0 -0
  414. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/preview_server.py +0 -0
  415. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/privacy/__init__.py +0 -0
  416. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/privacy/feedback.py +0 -0
  417. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/project_review.py +0 -0
  418. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/project_review_api.py +0 -0
  419. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/project_review_server.py +0 -0
  420. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/project_tools.py +0 -0
  421. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/__init__.py +0 -0
  422. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/__init__.py +0 -0
  423. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/anthropic.py +0 -0
  424. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
  425. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/base.py +0 -0
  426. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/custom.py +0 -0
  427. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/llm/ollama.py +0 -0
  428. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/local_image_provider.py +0 -0
  429. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/local_llm_provider.py +0 -0
  430. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/providers/tool_messages.py +0 -0
  431. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/realty_data_tools.py +0 -0
  432. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/relay_store.py +0 -0
  433. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/report_exporters.py +0 -0
  434. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/report_generator.py +0 -0
  435. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/review_service.py +0 -0
  436. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/__init__.py +0 -0
  437. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/acceptance.py +0 -0
  438. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/agent_loop.py +0 -0
  439. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/approval.py +0 -0
  440. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/budget.py +0 -0
  441. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/checkpoints.py +0 -0
  442. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/crash_report.py +0 -0
  443. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/events.py +0 -0
  444. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/gateway.py +0 -0
  445. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/lsp.py +0 -0
  446. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/orchestrator.py +0 -0
  447. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/processes.py +0 -0
  448. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/repo_map.py +0 -0
  449. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/run_state.py +0 -0
  450. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/run_store.py +0 -0
  451. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/self_healing.py +0 -0
  452. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/subagent.py +0 -0
  453. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/task_ledger.py +0 -0
  454. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
  455. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/tool_executor.py +0 -0
  456. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/tool_policy.py +0 -0
  457. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runtime/worktrees.py +0 -0
  458. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/runway_video_client.py +0 -0
  459. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/safety/__init__.py +0 -0
  460. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/safety/client_isolation.py +0 -0
  461. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/safety/permissions.py +0 -0
  462. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/safety/sandbox.py +0 -0
  463. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/safety/service.py +0 -0
  464. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/setup_wizard.py +0 -0
  465. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/spreadsheet_tools.py +0 -0
  466. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/strategy_vault.py +0 -0
  467. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/__init__.py +0 -0
  468. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/artifact_tools.py +0 -0
  469. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/broker_tools.py +0 -0
  470. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/build_quant_engine.py +0 -0
  471. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/code_audit_tools.py +0 -0
  472. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/computer_use_tools.py +0 -0
  473. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
  474. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
  475. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/extended_tools.py +0 -0
  476. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
  477. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/image_gen_tools.py +0 -0
  478. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/local_finance_tools.py +0 -0
  479. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/logistics_carriers.py +0 -0
  480. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/logistics_inventory.py +0 -0
  481. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/logistics_io.py +0 -0
  482. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
  483. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/logistics_tools.py +0 -0
  484. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/macro_tools.py +0 -0
  485. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/notification_tools.py +0 -0
  486. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/project_tools.py +0 -0
  487. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/realty_data_tools.py +0 -0
  488. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
  489. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/tools/stripe_tools.py +0 -0
  490. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/__init__.py +0 -0
  491. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/banner.py +0 -0
  492. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/completer.py +0 -0
  493. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/console.py +0 -0
  494. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/image_render.py +0 -0
  495. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/input_box.py +0 -0
  496. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/mentions.py +0 -0
  497. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/picker.py +0 -0
  498. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/render/__init__.py +0 -0
  499. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/render/finance.py +0 -0
  500. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/render/market.py +0 -0
  501. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/render/output.py +0 -0
  502. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/render/responsive.py +0 -0
  503. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/render/team.py +0 -0
  504. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/robot.py +0 -0
  505. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/ui/startup_dashboard.py +0 -0
  506. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/utils/vscode_uri.py +0 -0
  507. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/video_analysis.py +0 -0
  508. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/video_editor.py +0 -0
  509. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace/__init__.py +0 -0
  510. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace/files.py +0 -0
  511. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace/verify.py +0 -0
  512. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace_changes.py +0 -0
  513. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace_context.py +0 -0
  514. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace_service.py +0 -0
  515. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code/workspace_tools.py +0 -0
  516. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
  517. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code.egg-info/entry_points.txt +0 -0
  518. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code.egg-info/requires.txt +0 -0
  519. {aria_code-0.113.0 → aria_code-0.115.0}/src/aria_code.egg-info/top_level.txt +0 -0
  520. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_adk_market_tools.py +0 -0
  521. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_agent_key_points_language.py +0 -0
  522. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_agent_team_fallback.py +0 -0
  523. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_analyze_file_tool.py +0 -0
  524. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_architecture_ledger_is_true.py +0 -0
  525. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_architecture_report.py +0 -0
  526. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_aria_cli_core.py +0 -0
  527. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_aria_mcp_server.py +0 -0
  528. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_aria_sdk.py +0 -0
  529. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_artifact_publishing.py +0 -0
  530. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_artifacts_and_reports.py +0 -0
  531. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ashare_prediction_cmds.py +0 -0
  532. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_background_processes.py +0 -0
  533. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_backtest_cmds.py +0 -0
  534. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_backtest_engine.py +0 -0
  535. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_backtest_report.py +0 -0
  536. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_backtest_runs_what_it_names.py +0 -0
  537. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
  538. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_broken_akshare_is_optional.py +0 -0
  539. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_broker_automation.py +0 -0
  540. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_broker_chat_confirm_gate.py +0 -0
  541. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_broker_planning.py +0 -0
  542. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_broker_safety.py +0 -0
  543. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_broker_tools.py +0 -0
  544. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_budget.py +0 -0
  545. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_business_workflow_cmds.py +0 -0
  546. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_callback_provider_cleanup.py +0 -0
  547. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_canva_client.py +0 -0
  548. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_canvas_cmds.py +0 -0
  549. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_card_approvals.py +0 -0
  550. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_channel_intake.py +0 -0
  551. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_channels.py +0 -0
  552. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_chart_handlers.py +0 -0
  553. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_chat_bots_fail_closed.py +0 -0
  554. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_chat_routing.py +0 -0
  555. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ci_security_workflow.py +0 -0
  556. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_app_split.py +0 -0
  557. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_bootstrap.py +0 -0
  558. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_config_store.py +0 -0
  559. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_lifecycle_hooks.py +0 -0
  560. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_runtime_consumer.py +0 -0
  561. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_tool_executor_module.py +0 -0
  562. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cli_updater.py +0 -0
  563. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_client_isolation_guard.py +0 -0
  564. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_cloud_memory.py +0 -0
  565. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_code_audit_tools.py +0 -0
  566. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_code_review_agent.py +0 -0
  567. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_codegen_output.py +0 -0
  568. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_coder_tester_self_healing.py +0 -0
  569. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_coder_tool_safety.py +0 -0
  570. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_collaboration.py +0 -0
  571. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_command_loggers.py +0 -0
  572. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_command_safety.py +0 -0
  573. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_compare_strategies.py +0 -0
  574. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_completions_builder.py +0 -0
  575. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_config_paths.py +0 -0
  576. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_configured_provider.py +0 -0
  577. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_container_entrypoint.py +0 -0
  578. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_container_entrypoints.py +0 -0
  579. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_context_checkpoints.py +0 -0
  580. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_context_references.py +0 -0
  581. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_context_service.py +0 -0
  582. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_conversation_core.py +0 -0
  583. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_crash_report.py +0 -0
  584. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_credential_file_permissions.py +0 -0
  585. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_custom_providers.py +0 -0
  586. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_daemon_gateway_config.py +0 -0
  587. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_dashboard_generator.py +0 -0
  588. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_data_service.py +0 -0
  589. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_data_service_imports.py +0 -0
  590. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_data_without_model.py +0 -0
  591. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_datasource_routing.py +0 -0
  592. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_deep_analysis.py +0 -0
  593. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_degrades_without_quant_engine.py +0 -0
  594. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
  595. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_doctor.py +0 -0
  596. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_doctor_describes_the_current_install.py +0 -0
  597. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_doctor_npm_scope.py +0 -0
  598. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_edit_and_command_safety.py +0 -0
  599. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_engine_boundary.py +0 -0
  600. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_english_output_group.py +0 -0
  601. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_enterprise_tool_honesty.py +0 -0
  602. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_env_switch_docs.py +0 -0
  603. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_eval_hard_suite.py +0 -0
  604. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_eval_summary.py +0 -0
  605. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_eval_task_bank.py +0 -0
  606. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_eval_trajectories.py +0 -0
  607. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_evals_harness.py +0 -0
  608. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_event_import_roots.py +0 -0
  609. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_exec_events.py +0 -0
  610. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_extended_tools.py +0 -0
  611. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_feishu_swarm_config.py +0 -0
  612. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_file_links.py +0 -0
  613. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_finalize_release.py +0 -0
  614. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_finance_renderers.py +0 -0
  615. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_finance_service_catalog.py +0 -0
  616. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_first_run_output.py +0 -0
  617. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_first_run_works.py +0 -0
  618. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_football_agent.py +0 -0
  619. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_football_prediction_output.py +0 -0
  620. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_google_cloud_models.py +0 -0
  621. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_google_cloud_routing.py +0 -0
  622. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_google_login.py +0 -0
  623. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_google_search_provider.py +0 -0
  624. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_headless_command_approval.py +0 -0
  625. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_headless_is_agentic.py +0 -0
  626. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_honest_surfaces.py +0 -0
  627. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_image_gen_tools.py +0 -0
  628. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_image_inputs.py +0 -0
  629. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_import_graph_budget.py +0 -0
  630. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_intent_router.py +0 -0
  631. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_intent_signals.py +0 -0
  632. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_kling_video_client.py +0 -0
  633. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_lazy_rebind.py +0 -0
  634. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_legacy_module_imports.py +0 -0
  635. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_license_consistency.py +0 -0
  636. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_licensing.py +0 -0
  637. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_local_image_provider.py +0 -0
  638. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_local_workspace_execution.py +0 -0
  639. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_logistics_3pl.py +0 -0
  640. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_logistics_and_finance_agents.py +0 -0
  641. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_lsp.py +0 -0
  642. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_markdown_pdf.py +0 -0
  643. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_answers_in_english.py +0 -0
  644. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_data_client.py +0 -0
  645. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_history_inheritance.py +0 -0
  646. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_history_tool.py +0 -0
  647. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_hours.py +0 -0
  648. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_questions_on_backend.py +0 -0
  649. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_symbol_extraction.py +0 -0
  650. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_market_universe.py +0 -0
  651. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_mcp_circuit.py +0 -0
  652. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_mcp_client.py +0 -0
  653. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_mentions.py +0 -0
  654. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_model_choice_is_the_users.py +0 -0
  655. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_model_probe.py +0 -0
  656. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_model_selection_state.py +0 -0
  657. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_narrow_chinese_output.py +0 -0
  658. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_native_binary_entrypoints.py +0 -0
  659. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_native_installer.py +0 -0
  660. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_natural_language_routing.py +0 -0
  661. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_new_modules.py +0 -0
  662. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
  663. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_no_tools_route.py +0 -0
  664. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_no_uncommitted_imports.py +0 -0
  665. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_numeric_listings.py +0 -0
  666. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ollama_stream_imports.py +0 -0
  667. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ollama_stream_tools.py +0 -0
  668. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_openai_image_client.py +0 -0
  669. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_operations_suite.py +0 -0
  670. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_os_sandbox.py +0 -0
  671. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_output_discipline_prompt.py +0 -0
  672. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_output_rendering.py +0 -0
  673. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_packages_facade.py +0 -0
  674. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_packaging_constraints.py +0 -0
  675. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_packaging_manifest.py +0 -0
  676. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_packs_domains.py +0 -0
  677. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_pdf_report.py +0 -0
  678. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_pick_best_installed_model.py +0 -0
  679. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_plan_mode.py +0 -0
  680. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_platform_package_assembly.py +0 -0
  681. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_platform_packages.py +0 -0
  682. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_platform_publish.py +0 -0
  683. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_plotly_html_output.py +0 -0
  684. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_portfolio_language.py +0 -0
  685. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_portfolio_ledger.py +0 -0
  686. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_post_turn_context_decision.py +0 -0
  687. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_preflight.py +0 -0
  688. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_preview_server.py +0 -0
  689. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_privacy_feedback.py +0 -0
  690. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_project_aria.py +0 -0
  691. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_project_context_files.py +0 -0
  692. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_project_review.py +0 -0
  693. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_project_review_api.py +0 -0
  694. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_prompt_assembly.py +0 -0
  695. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_prompt_selection.py +0 -0
  696. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_provider_autoconfig.py +0 -0
  697. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_provider_error_classification.py +0 -0
  698. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_provider_error_messages.py +0 -0
  699. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_provider_integration.py +0 -0
  700. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_provider_registry.py +0 -0
  701. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_public_service_status.py +0 -0
  702. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_quant_engine_namespace.py +0 -0
  703. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_rebind_contract.py +0 -0
  704. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_rebind_namespace_contract.py +0 -0
  705. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_relay_client_credentials.py +0 -0
  706. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_relay_event_verification.py +0 -0
  707. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_relay_sends_for_clients.py +0 -0
  708. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_relay_store.py +0 -0
  709. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_relay_url.py +0 -0
  710. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_badges.py +0 -0
  711. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_chain.py +0 -0
  712. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_commit_identity.py +0 -0
  713. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_download.py +0 -0
  714. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_push_is_atomic.py +0 -0
  715. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_reaches_the_registries.py +0 -0
  716. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_verification_waits.py +0 -0
  717. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_release_workflow_permissions.py +0 -0
  718. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_report_charts.py +0 -0
  719. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_report_generator.py +0 -0
  720. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_report_prompt_language.py +0 -0
  721. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_research_protocol.py +0 -0
  722. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_research_quality.py +0 -0
  723. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_responsive_rendering.py +0 -0
  724. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_review_service.py +0 -0
  725. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_risk_earnings_ops.py +0 -0
  726. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_root_module_budget.py +0 -0
  727. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_rsi_without_pandas_ta.py +0 -0
  728. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_acceptance.py +0 -0
  729. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_agent_loop.py +0 -0
  730. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_approval.py +0 -0
  731. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_bridge.py +0 -0
  732. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_bridge_fallback.py +0 -0
  733. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_checkpoints.py +0 -0
  734. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_event_identity.py +0 -0
  735. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_gateway.py +0 -0
  736. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_repo_map.py +0 -0
  737. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_run_store.py +0 -0
  738. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_tool_executor.py +0 -0
  739. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runtime_worktrees.py +0 -0
  740. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_runway_video_client.py +0 -0
  741. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_safety_permissions.py +0 -0
  742. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_safety_service.py +0 -0
  743. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_safety_service_adoption.py +0 -0
  744. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_service_diagnostics_security.py +0 -0
  745. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_session_search.py +0 -0
  746. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_settings_service.py +0 -0
  747. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_shell_commands_as_written.py +0 -0
  748. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_shipper_digest.py +0 -0
  749. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_single_import_root.py +0 -0
  750. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_skill_agent_binding.py +0 -0
  751. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_skill_catalog.py +0 -0
  752. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_skill_loader.py +0 -0
  753. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_slash_popup.py +0 -0
  754. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_spreadsheet_tools.py +0 -0
  755. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_sse_stream_contract.py +0 -0
  756. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_startup_dashboard.py +0 -0
  757. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_startup_keeps_cloud_model.py +0 -0
  758. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_startup_latency.py +0 -0
  759. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_status_language.py +0 -0
  760. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_streaming_pipeline.py +0 -0
  761. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_stripe_agent.py +0 -0
  762. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_subagent.py +0 -0
  763. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_supervisor_routing.py +0 -0
  764. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_system_prompts.py +0 -0
  765. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_system_tools_output.py +0 -0
  766. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_task_orchestrator.py +0 -0
  767. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_team_analysts.py +0 -0
  768. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_team_synthesis.py +0 -0
  769. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_terminal_mixins.py +0 -0
  770. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_terminal_snapshots.py +0 -0
  771. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_tls_trust_store.py +0 -0
  772. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_tool_policy.py +0 -0
  773. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
  774. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_tool_scope.py +0 -0
  775. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_tool_step_output.py +0 -0
  776. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_trading_service.py +0 -0
  777. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_tradingview_bridge.py +0 -0
  778. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_turn_planning.py +0 -0
  779. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ui_completer_references.py +0 -0
  780. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ui_console_theme.py +0 -0
  781. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ui_input_box.py +0 -0
  782. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ui_language_and_model.py +0 -0
  783. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_ui_robot_banner.py +0 -0
  784. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_update_health_routes.py +0 -0
  785. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_verification_hint.py +0 -0
  786. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_verification_policy.py +0 -0
  787. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_version_consistency.py +0 -0
  788. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_version_counter.py +0 -0
  789. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_vertex_busy_retry.py +0 -0
  790. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_vertex_empty_rounds.py +0 -0
  791. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_vertex_models.py +0 -0
  792. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_video_analysis.py +0 -0
  793. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_video_editor.py +0 -0
  794. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_vscode_mcp.py +0 -0
  795. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_warehouse_agents.py +0 -0
  796. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_warehouse_cli_registration.py +0 -0
  797. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_warehouse_erp_client.py +0 -0
  798. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_warehouse_workflow.py +0 -0
  799. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_wheel_is_installable.py +0 -0
  800. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_workspace_changes.py +0 -0
  801. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_workspace_context.py +0 -0
  802. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_workspace_files.py +0 -0
  803. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_workspace_scope.py +0 -0
  804. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_workspace_service.py +0 -0
  805. {aria_code-0.113.0 → aria_code-0.115.0}/tests/test_workspace_verify.py +0 -0
  806. {aria_code-0.113.0 → aria_code-0.115.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.113.0
3
+ Version: 0.115.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
@@ -171,7 +171,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
171
171
  <p align="center">
172
172
  <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>
173
173
  <!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
174
- <a href="https://pypi.org/project/aria-code/0.113.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.113.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>
174
+ <a href="https://pypi.org/project/aria-code/0.115.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.115.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
175
  <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>
176
176
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
177
177
  </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.113.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.113.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.115.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.115.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.113.0"
7
+ version = "0.115.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" }
@@ -45,7 +45,7 @@ classifiers = [
45
45
  # parsers, the SQL engine and chart renderer are optional extras below — the
46
46
  # code already lazy-imports them and degrades gracefully when absent.
47
47
  dependencies = [
48
- # The default model's client. DEFAULT_MODEL is google/gemini-2.5-pro, and
48
+ # The default model's client. DEFAULT_MODEL is google/gemini-3.5-flash, and
49
49
  # this used to be the optional `google` extra — so a plain
50
50
  # `pip install aria-code` failed on the very first prompt with "Gemini/Vertex
51
51
  # AI 需要 google-genai,当前未安装". The comment above that extra said as
@@ -17,4 +17,4 @@ from __future__ import annotations
17
17
 
18
18
  __all__ = ["__version__"]
19
19
 
20
- __version__ = "0.113.0"
20
+ __version__ = "0.115.0"
@@ -146,7 +146,10 @@ def initialize_cli_environment() -> None:
146
146
  # Provider configuration is the user's to make (that is what `/model` and
147
147
  # `.ariarc` are for); the code's job is to have a sane default and then get
148
148
  # out of the way.
149
- DEFAULT_MODEL = os.getenv("ARIA_DEFAULT_MODEL", "google/gemini-2.5-pro")
149
+ DEFAULT_MODEL = os.getenv("ARIA_DEFAULT_MODEL", "google/gemini-3.5-flash")
150
+ # A stable model (Google: available until at least May 2027), not a short-term
151
+ # one: an install that is rarely updated should not lose its default within
152
+ # months. gemini-2.5-pro, the previous default, retires in October 2026.
150
153
 
151
154
 
152
155
  def default_config() -> dict:
@@ -159,7 +162,7 @@ def default_config() -> dict:
159
162
  "ollama_url": os.getenv("OLLAMA_URL", "http://localhost:11434"),
160
163
  # Which backend serves a bare, unprefixed model name. Only consulted
161
164
  # for names that do not name their own provider ("qwen2.5:7b"); a
162
- # prefixed id like "google/gemini-2.5-pro" always wins.
165
+ # prefixed id like "google/gemini-3.5-flash" always wins.
163
166
  "local_provider": os.getenv("ARIA_LLM_PROVIDER", "ollama"),
164
167
  "provider_fallback": "configured",
165
168
  "model": DEFAULT_MODEL,
@@ -185,6 +185,17 @@ class ModelCommandsMixin:
185
185
  async def cmd_model(self, args: str):
186
186
  name = args.strip()
187
187
 
188
+ # A model Google has retired would fail on the next request; switch
189
+ # to its replacement and say so (model_retirement.py).
190
+ from aria_code.apps.cli.model_retirement import retired_replacement
191
+
192
+ _replacement = retired_replacement(name)
193
+ if _replacement:
194
+ msg = ui_text(self, f"ℹ {name} 已被 Google 停用,改用 {_replacement}。",
195
+ f"ℹ {name} has been retired by Google; using {_replacement}.")
196
+ self.context.console.print(f"[yellow]{msg}[/yellow]") if self.context.has_rich else print(msg)
197
+ name = _replacement
198
+
188
199
  # ── "provider/model" format (Open Interpreter style) ─────────────────
189
200
  # Examples: /model deepseek/deepseek-chat /model ollama/qwen2.5:7b
190
201
  # /model openai/gpt-4.5 /model openai/o3 /model openai/o4-mini
@@ -1421,7 +1432,7 @@ class ModelCommandsMixin:
1421
1432
  ("deepseek", "DeepSeek", "deepseek/deepseek-chat"),
1422
1433
  ("anthropic", "Anthropic", "anthropic/claude-sonnet-4-6"),
1423
1434
  ("openai", "OpenAI", "openai/gpt-4.5"),
1424
- ("google", "Google Gemini", "google/gemini-2.0-flash-exp"),
1435
+ ("google", "Google Gemini", "google/gemini-3.5-flash"),
1425
1436
  ("xai", "xAI Grok", "xai/grok-3-fast"),
1426
1437
  ("groq", "Groq", "groq/llama-3.3-70b-versatile"),
1427
1438
  ("mistral", "Mistral", "mistral/mistral-large-latest"),
@@ -78,7 +78,7 @@ class OrchestratorCommandsMixin:
78
78
  return
79
79
 
80
80
  if self.context.has_rich:
81
- provider = ConfiguredProvider(self.context.config, "gemini-2.5-flash")
81
+ provider = ConfiguredProvider(self.context.config, "gemini-3.5-flash")
82
82
 
83
83
  with self.context.console.status(f"[dim]{ui_text(self, 'Orchestrator 正在编排智能体网络', 'Orchestrator is planning the agent network')}...[/dim]"):
84
84
  result = await dynamic_agent_orchestration(request, provider)
@@ -64,15 +64,57 @@ def load_cli_config(
64
64
  starting, because the user would then have no way to run the tool that
65
65
  would fix it.
66
66
  """
67
- config = build_settings_service(paths, defaults, sync_policy=sync_policy).load()
67
+ service = build_settings_service(paths, defaults, sync_policy=sync_policy)
68
+ config = service.load()
69
+ # A model Google has retired fails on every request. The user's own saved
70
+ # choice is replaced once and written back; see model_retirement.
71
+ from aria_code.apps.cli.model_retirement import migrate_config
72
+
73
+ saved = migrate_config(config)
74
+ if saved:
75
+ try:
76
+ service.save(config)
77
+ except Exception:
78
+ pass
79
+ _announce(saved, config, pinned=False)
68
80
  try:
69
81
  from aria_code.ariarc import apply_to_config
70
82
 
71
83
  apply_to_config(config)
72
84
  except Exception:
73
85
  pass
86
+ # A project's .ariarc is the user's file: replace in memory, say so, never rewrite it.
87
+ pinned = migrate_config(config)
88
+ if pinned:
89
+ _announce(pinned, config, pinned=True)
74
90
  return config
75
91
 
76
92
 
93
+ _ANNOUNCED: set[tuple[str, str]] = set()
94
+
95
+
96
+ def _announce(changes, config: dict, *, pinned: bool) -> None:
97
+ """One line on stderr per retired model, once per process."""
98
+ import sys
99
+
100
+ zh = str(config.get("ui_lang", "")).lower().startswith("zh")
101
+ for _key, old, new in changes:
102
+ if (old, new) in _ANNOUNCED:
103
+ continue
104
+ _ANNOUNCED.add((old, new))
105
+ if zh:
106
+ where = "项目 .ariarc 里固定的" if pinned else "你设置的"
107
+ tail = ",请修改 .ariarc 里的 model" if pinned else "。可以用 /model 换成其他模型"
108
+ msg = f"ℹ {where}模型 {old} 已被 Google 停用,本次改用 {new}{tail}。"
109
+ else:
110
+ where = "The model pinned in this project's .ariarc" if pinned else "Your model"
111
+ tail = "; update the model in .ariarc" if pinned else "; use /model to pick another"
112
+ msg = f"ℹ {where}, {old}, has been retired by Google. Using {new}{tail}."
113
+ try:
114
+ print(msg, file=sys.stderr)
115
+ except Exception:
116
+ pass
117
+
118
+
77
119
  def save_cli_config(paths: AriaConfigPaths, cfg: dict) -> None:
78
120
  build_settings_service(paths, {}).save(cfg)
@@ -16,27 +16,43 @@ MODELS = {
16
16
  # ════════════════════════════════════════════════════════════════════
17
17
  # ── Google Gemini 平台核心默认模型(Google Cloud)───────────────────────
18
18
  # ════════════════════════════════════════════════════════════════════
19
- "gemini-pro": {
20
- "id": "google/gemini-2.5-pro",
21
- "name": "Gemini Pro",
22
- "version": "2.5",
19
+ # Gemini 2.5 retires in October 2026 (model_retirement.py). The default is
20
+ # a stable model; the newest Flash is offered beside it, but its line is
21
+ # replaced every few months.
22
+ "gemini-flash": {
23
+ "id": "google/gemini-3.5-flash",
24
+ "name": "Gemini Flash",
25
+ "version": "3.5",
23
26
  "tag": "Platform",
24
27
  "speed": "★★★★★",
25
28
  "intelligence": "★★★★★",
26
- "description": "平台内置:Google Cloud 旗舰多模态、百万级上下文、量化核心",
29
+ "description": "平台默认:稳定版(至少到 2027 年 5 月)、百万级上下文、代码与金融分析",
27
30
  "capabilities": ["multimodal", "1M context", "tool calls", "quant", "code"],
28
31
  "thinking": True, "tools": True,
29
32
  "max_tokens": 8192, "num_ctx": 1048576, "temperature": 0.2,
30
33
  "badge": "Default",
31
34
  },
32
- "gemini-flash": {
33
- "id": "google/gemini-2.5-flash",
34
- "name": "Gemini Flash",
35
- "version": "2.5",
35
+ "gemini-pro": {
36
+ "id": "google/gemini-3.8-flash",
37
+ "name": "Gemini Flash (latest)",
38
+ "version": "3.8",
39
+ "tag": "Platform",
40
+ "speed": "★★★★★",
41
+ "intelligence": "★★★★★",
42
+ "description": "最新最强:推理与工具调用最好;迭代快,Google 几个月内会推出替代版",
43
+ "capabilities": ["multimodal", "1M context", "tool calls", "quant", "code"],
44
+ "thinking": True, "tools": True,
45
+ "max_tokens": 8192, "num_ctx": 1048576, "temperature": 0.2,
46
+ "badge": "Latest",
47
+ },
48
+ "gemini-lite": {
49
+ "id": "google/gemini-3.5-flash-lite",
50
+ "name": "Gemini Flash-Lite",
51
+ "version": "3.5",
36
52
  "tag": "Platform",
37
53
  "speed": "★★★★★",
38
54
  "intelligence": "★★★★",
39
- "description": "极速默认:超低延迟、毫秒级响应、代码与实时行情",
55
+ "description": "极速低价:低延迟、适合批量与实时行情",
40
56
  "capabilities": ["fast inference", "1M context", "tool calls", "low latency"],
41
57
  "thinking": False, "tools": True,
42
58
  "max_tokens": 8192, "num_ctx": 1048576, "temperature": 0.2,
@@ -341,8 +357,10 @@ MODELS = {
341
357
  # Model aliases: short names / Ollama IDs → MODELS key
342
358
  MODEL_ALIASES = {
343
359
  # ── Google Gemini ─────────────────────────────────────────────────
344
- "gemini": "gemini-pro", "gemini-pro": "gemini-pro", "gemini2.5": "gemini-pro", "gpro": "gemini-pro",
360
+ "gemini": "gemini-flash", "gemini-pro": "gemini-pro", "gemini2.5": "gemini-flash", "gpro": "gemini-pro",
361
+ "gemini-latest": "gemini-pro", "glatest": "gemini-pro",
345
362
  "gemini-flash": "gemini-flash", "gflash": "gemini-flash", "flash": "gemini-flash",
363
+ "gemini-lite": "gemini-lite", "glite": "gemini-lite",
346
364
  # ── Qwen 2.5 ──────────────────────────────────────────────────────
347
365
  "qwen7b": "qwen7b", "q7": "qwen7b", "sonata": "qwen7b", "s": "qwen7b",
348
366
  "qwen14b": "qwen14b", "q14": "qwen14b",
@@ -464,7 +482,7 @@ _MODEL_ID_INDEX: dict[str, str] | None = None
464
482
  def _model_id_index() -> dict[str, str]:
465
483
  """Lazily build a lowercase {model id -> MODELS key} index.
466
484
 
467
- The config stores the provider-qualified *id* ("google/gemini-2.5-pro")
485
+ The config stores the provider-qualified *id* ("google/gemini-3.5-flash")
468
486
  while MODELS is keyed by short name ("gemini-pro"), so without this lookup
469
487
  a registered model resolves to "_community_" and its own registry entry is
470
488
  never used.
@@ -0,0 +1,63 @@
1
+ """Models Google has retired, and what Aria moves their users to.
2
+
3
+ Google's Vertex AI lifecycle page retires gemini-2.5-pro, -flash and
4
+ -flash-lite on 20 October 2026 (the release notes give 16 October, so plan
5
+ for the earlier date); the Gemini API already admits only users who have
6
+ used 2.5 before. gemini-2.0-flash and -flash-lite shut down on 1 June 2026,
7
+ and every 1.5 model in 2025. A saved config that still names one of them
8
+ would fail on every request with an error that does not say why.
9
+
10
+ So a retired id is replaced when the config is loaded, and the replacement
11
+ is written back so it happens once: a stable model, not a short-term one,
12
+ so an install that is rarely updated does not break again within months.
13
+ The replacements follow Google's recommendations; 2.5 Flash moves to 3.5
14
+ Flash rather than a Lite model so the user loses nothing in capability.
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import re
20
+
21
+ # bare id -> bare replacement
22
+ RETIRED: dict[str, str] = {
23
+ "gemini-2.5-pro": "gemini-3.5-flash",
24
+ "gemini-2.5-flash": "gemini-3.5-flash",
25
+ "gemini-2.5-flash-lite": "gemini-3.1-flash-lite",
26
+ "gemini-2.0-flash": "gemini-3.5-flash",
27
+ "gemini-2.0-flash-lite": "gemini-3.1-flash-lite",
28
+ "gemini-1.5-pro": "gemini-3.5-flash",
29
+ "gemini-1.5-flash": "gemini-3.5-flash",
30
+ "gemini-1.0-pro": "gemini-3.5-flash",
31
+ }
32
+
33
+ # Dated, versioned and preview spellings of the same models:
34
+ # gemini-2.5-pro-preview-06-05, gemini-2.0-flash-001, gemini-1.5-pro-latest.
35
+ _SUFFIX = re.compile(r"(-preview(-[\w-]+)?|-exp(-[\w-]+)?|-latest|-\d{3}|-\d{2}-\d{2}|-\d{2}-\d{4})+$")
36
+
37
+
38
+ def retired_replacement(model: str) -> str | None:
39
+ """The id to use instead of *model*, keeping its provider prefix; None if it is not retired."""
40
+ if not model:
41
+ return None
42
+ text = str(model).strip()
43
+ prefix, _, bare = text.rpartition("/")
44
+ key = _SUFFIX.sub("", bare.lower())
45
+ replacement = RETIRED.get(key)
46
+ if replacement is None:
47
+ return None
48
+ return f"{prefix}/{replacement}" if prefix else replacement
49
+
50
+
51
+ def migrate_config(config: dict, keys: tuple[str, ...] = ("model",)) -> list[tuple[str, str, str]]:
52
+ """Replace retired model ids in *config* in place; return (key, old, new) for each."""
53
+ changes = []
54
+ for key in keys:
55
+ old = config.get(key)
56
+ new = retired_replacement(old) if isinstance(old, str) else None
57
+ if new:
58
+ config[key] = new
59
+ changes.append((key, old, new))
60
+ return changes
61
+
62
+
63
+ __all__ = ["RETIRED", "migrate_config", "retired_replacement"]
@@ -508,7 +508,7 @@ _PROVIDER_DESC: Dict[str, str] = {
508
508
  "anthropic": "Claude Sonnet 4 / Opus 4 长文档·代码·分析",
509
509
  "groq": "Llama3/Qwen 超高速推理 (免费额度)",
510
510
  "together": "开源模型聚合 Llama/Qwen/DeepSeek 等 100+ 模型",
511
- "google": "Gemini 2.5 Pro / 2.0 Flash 多模态·超长上下文",
511
+ "google": "Gemini 3.8 Flash / 3.5 Flash / 3.5 Flash-Lite 多模态·超长上下文",
512
512
  "xai": "Grok-3 / Grok-3-Fast 实时网络数据·Twitter整合",
513
513
  "mistral": "Mistral Large / Codestral 欧洲顶级·代码生成强",
514
514
  "cohere": "Command R+ RAG检索增强·企业文档处理",
@@ -660,17 +660,17 @@ _PROVIDER_GUIDE: Dict[str, str] = {
660
660
  "1. 打开 aistudio.google.com/app/apikey\n"
661
661
  "2. 用 Google 账号登录 → 「Create API key」\n"
662
662
  "3. 复制 AIzaSy... 格式的密钥\n\n"
663
- "解锁: Gemini 2.5 Pro · Gemini 2.0 Flash · 多模态视觉\n"
664
- "用法: /model google/gemini-2.0-flash-exp\n"
665
- "免费额度: Flash 每分钟 15次,每天 1500次"
663
+ "解锁: Gemini 3.8 Flash · Gemini 3.5 Flash · 多模态视觉\n"
664
+ "用法: /model google/gemini-3.5-flash\n"
665
+ "免费额度以 Google AI Studio 当前公布为准"
666
666
  ),
667
667
  "gemini": (
668
668
  "同 google provider,填入 Google AI Studio 的 API Key\n\n"
669
669
  "推荐模型:\n"
670
- " gemini-2.5-pro — 最强推理,128K 上下文\n"
671
- " gemini-2.0-flash-exp — 超快,每分钟 15 次免费\n"
672
- " gemini-1.5-flash — 稳定版,适合生产\n\n"
673
- "用法: /model gemini/gemini-2.5-pro"
670
+ " gemini-3.5-flash — 稳定版,适合生产(默认)\n"
671
+ " gemini-3.8-flash — 最新最强,迭代较快\n"
672
+ " gemini-3.5-flash-lite — 更快更省\n\n"
673
+ "用法: /model gemini/gemini-3.5-flash"
674
674
  ),
675
675
  "xai": (
676
676
  "1. 打开 console.x.ai → 注册/登录\n"
@@ -51,7 +51,7 @@ parent directories (walks up to filesystem root, stops at $HOME).
51
51
  // Which model this project runs on. Pins the backend for everyone who
52
52
  // opens the repo, so it does not depend on each developer's global
53
53
  // config. An explicit /model during a session still wins.
54
- "model": "google/gemini-2.5-pro",
54
+ "model": "google/gemini-3.5-flash",
55
55
  "provider": "google",
56
56
  "max_rounds": 40,
57
57
 
@@ -680,7 +680,7 @@ def _iter_required_modules() -> Iterable[tuple[str, str]]:
680
680
  yield "pandas", "dataframes"
681
681
  yield "numpy", "numeric processing"
682
682
  yield "yfinance", "US/HK/global market data"
683
- # The default model is google/gemini-2.5-pro, so without this a fresh
683
+ # The default model is google/gemini-3.5-flash, so without this a fresh
684
684
  # install cannot answer a single prompt.
685
685
  yield "google.genai", "Gemini / Vertex AI (the default model)"
686
686
 
@@ -0,0 +1,93 @@
1
+ """In-sample minus out-of-sample: public tasks against their private twins.
2
+
3
+ A public task can end up in a model's training data, and a tuned model can
4
+ learn the public bank instead of the skill. Either way it scores well on the
5
+ public task and worse on a twin it has never seen: the same skill, with
6
+ different data, numbers and wording, kept in a private repository. SWE-bench
7
+ Pro reads leakage the same way, from the gap between its public and held-out
8
+ splits; a quant reads overfitting from the gap between in-sample and
9
+ out-of-sample returns.
10
+
11
+ A holdout suite names each twin's public task with ``twin_of``. This pairs
12
+ them, takes each side's pass rate over its repeats, and reports the mean gap
13
+ (public minus twin) with a bootstrap 95% interval. An interval above zero is
14
+ a warning that the public score overstates the skill.
15
+
16
+ python -m aria_code.evals.gap --public evals-*.json --holdout holdout.json --suites holdout/suites/*.yaml
17
+
18
+ ``--markdown`` prints counts and rates only, never a private task id, so the
19
+ section can go into a public job summary.
20
+ """
21
+
22
+ from __future__ import annotations
23
+
24
+ import argparse
25
+ import json
26
+ from pathlib import Path
27
+ from typing import Iterable
28
+
29
+ from aria_code.training.compare import bootstrap_ci, rates
30
+
31
+
32
+ def twins(suite_files: Iterable[Path]) -> dict[str, str]:
33
+ """Holdout task id -> the public task it is a twin of."""
34
+ import yaml
35
+
36
+ pairs = {}
37
+ for suite_file in suite_files:
38
+ doc = yaml.safe_load(Path(suite_file).read_text(encoding="utf-8")) or {}
39
+ pairs.update({str(t["id"]): str(t["twin_of"]) for t in doc.get("tasks") or [] if t.get("twin_of")})
40
+ return pairs
41
+
42
+
43
+ def gap(public_reports: Iterable[Path], holdout_reports: Iterable[Path], pairs: dict[str, str]) -> dict:
44
+ public, _, _ = rates(public_reports)
45
+ holdout, _, _ = rates(holdout_reports)
46
+ rows = {h: (public[p], holdout[h]) for h, p in pairs.items() if p in public and h in holdout}
47
+ diffs = [pub - twin for pub, twin in rows.values()]
48
+ lo, hi = bootstrap_ci(diffs)
49
+ mean = sum(diffs) / len(diffs) if diffs else 0.0
50
+ return {
51
+ "pairs": len(rows),
52
+ "public_pass_rate": round(sum(p for p, _ in rows.values()) / len(rows), 4) if rows else None,
53
+ "twin_pass_rate": round(sum(t for _, t in rows.values()) / len(rows), 4) if rows else None,
54
+ "mean_gap": round(mean, 4),
55
+ "ci95": [round(lo, 4), round(hi, 4)],
56
+ "public_overstates": lo > 0,
57
+ "unpaired": sorted(h for h in pairs if h not in rows),
58
+ }
59
+
60
+
61
+ def markdown(result: dict) -> str:
62
+ """The gap for a public summary: rates and the interval, no task ids."""
63
+ if not result["pairs"]:
64
+ return "### Public vs holdout\nNo twin pairs were scored on both sides.\n"
65
+ lo, hi = result["ci95"]
66
+ verdict = ("The public score overstates the skill: the interval is above 0." if result["public_overstates"]
67
+ else "No significant gap: the interval includes 0 or is below it.")
68
+ return "\n".join([
69
+ "### Public vs holdout",
70
+ f"{result['pairs']} twin pairs. Public {result['public_pass_rate']:.0%}, "
71
+ f"holdout {result['twin_pass_rate']:.0%}; gap {result['mean_gap']:+.0%} "
72
+ f"(95% CI {lo:+.0%} to {hi:+.0%}).",
73
+ verdict,
74
+ *([f"{len(result['unpaired'])} twins had no scored pair."] if result["unpaired"] else []),
75
+ "",
76
+ ])
77
+
78
+
79
+ def main(argv: list[str] | None = None) -> int:
80
+ ap = argparse.ArgumentParser(description="Gap between public tasks and their private twins.")
81
+ ap.add_argument("--public", nargs="+", type=Path, required=True)
82
+ ap.add_argument("--holdout", nargs="+", type=Path, required=True)
83
+ ap.add_argument("--suites", nargs="+", type=Path, required=True,
84
+ help="the holdout suite YAML files (their tasks carry twin_of)")
85
+ ap.add_argument("--markdown", action="store_true", help="counts and rates only, safe for a public summary")
86
+ args = ap.parse_args(argv)
87
+ result = gap(args.public, args.holdout, twins(args.suites))
88
+ print(markdown(result) if args.markdown else json.dumps(result, ensure_ascii=False, indent=2))
89
+ return 0
90
+
91
+
92
+ if __name__ == "__main__":
93
+ raise SystemExit(main())
@@ -1,6 +1,11 @@
1
1
  """Turn eval reports into a Markdown scoreboard, and decide whether the run is healthy.
2
2
 
3
- python3 -m aria_code.evals.summary evals-core.json evals-operations.json
3
+ python3 -m aria_code.evals.summary evals-core.json evals-operations.json [--private evals-holdout.json]
4
+
5
+ Each suite's score comes with the mean per-task pass rate and its standard
6
+ error, so two runs can be told apart from noise. A report passed after
7
+ ``--private`` (the holdout suites, kept in a private repository) is shown as
8
+ counts only: no task ids, details or logs, because the summary is public.
4
9
 
5
10
  The suites ran in CI only with ``--check``: every fixture still starts red,
6
11
  but no model ever attempted them, so nothing measured whether Aria can fix
@@ -15,22 +20,50 @@ A task the model gets wrong is a result, not a broken build: the exit code is
15
20
  from __future__ import annotations
16
21
 
17
22
  import json
23
+ import math
18
24
  import sys
25
+ from collections import defaultdict
19
26
  from pathlib import Path
20
27
 
21
28
 
22
- def summarise(reports: list[dict], model: str = "") -> tuple[str, int]:
29
+ def mean_sem(report: dict) -> tuple[float, float, int] | None:
30
+ """Mean per-task pass rate over scored attempts, its standard error, and the task count."""
31
+ passed: dict[str, int] = defaultdict(int)
32
+ scored: dict[str, int] = defaultdict(int)
33
+ for r in report.get("results") or []:
34
+ if str(r.get("outcome", "")).lower() in ("pass", "fail"):
35
+ scored[str(r.get("task_id"))] += 1
36
+ passed[str(r.get("task_id"))] += str(r.get("outcome")).lower() == "pass"
37
+ rates = [passed[t] / scored[t] for t in scored]
38
+ if not rates:
39
+ return None
40
+ mean = sum(rates) / len(rates)
41
+ if len(rates) < 2:
42
+ return mean, 0.0, 1
43
+ var = sum((x - mean) ** 2 for x in rates) / (len(rates) - 1)
44
+ return mean, math.sqrt(var / len(rates)), len(rates)
45
+
46
+
47
+ def summarise(reports: list[dict], model: str = "", private: list[dict] | None = None) -> tuple[str, int]:
23
48
  """Markdown for the reports, and the exit code the run should have."""
24
49
  lines = [f"## Aria eval scoreboard{f' · {model}' if model else ''}", ""]
25
50
  unhealthy = 0
26
- for report in reports:
51
+ for report in [*reports, *(private or [])]:
52
+ is_private = any(report is p for p in private or [])
27
53
  suite = report.get("suite", "?")
28
- lines.append(f"### {suite}: {report.get('passed', 0)}/{report.get('scored', 0)} "
29
- f"({report.get('pass_rate', 0):.0%})")
54
+ lines.append(f"### {suite}{' (holdout)' if is_private else ''}: "
55
+ f"{report.get('passed', 0)}/{report.get('scored', 0)} ({report.get('pass_rate', 0):.0%})")
56
+ stats = mean_sem(report)
57
+ if stats:
58
+ mean, sem, n = stats
59
+ lines.append(f"Mean task pass rate {mean:.0%} ± {sem:.0%} (SEM over {n} task{'s' if n != 1 else ''}).")
30
60
  extras = [f"{report[k]} {k}" for k in ("errored", "invalid") if report.get(k)]
31
61
  if extras:
32
62
  lines.append(f"Not scored: {', '.join(extras)}.")
33
63
  unhealthy += int(report.get("errored", 0)) + int(report.get("invalid", 0))
64
+ if is_private:
65
+ lines += ["Task ids, details and logs are not published for holdout suites.", ""]
66
+ continue
34
67
  lines += ["", "| Task | Outcome | Seconds | Detail |", "|---|---|---:|---|"]
35
68
  for result in report.get("results", []):
36
69
  detail = str(result.get("detail") or "").replace("|", "\\|")[:120]
@@ -56,17 +89,26 @@ def main(argv: list[str] | None = None) -> int:
56
89
  model = ""
57
90
  if args[:1] == ["--model"] and len(args) > 1:
58
91
  model, args = args[1], args[2:]
59
- reports = []
60
- for name in args:
61
- path = Path(name)
62
- if path.exists():
63
- reports.append(json.loads(path.read_text(encoding="utf-8")))
64
- else:
65
- print(f"(no report at {name})", file=sys.stderr)
66
- if not reports:
92
+ public_names, private_names = args, []
93
+ if "--private" in args:
94
+ i = args.index("--private")
95
+ public_names, private_names = args[:i], args[i + 1:]
96
+
97
+ def load(names: list[str]) -> list[dict]:
98
+ out = []
99
+ for name in names:
100
+ path = Path(name)
101
+ if path.exists():
102
+ out.append(json.loads(path.read_text(encoding="utf-8")))
103
+ else:
104
+ print(f"(no report at {name})", file=sys.stderr)
105
+ return out
106
+
107
+ reports, private = load(public_names), load(private_names)
108
+ if not reports and not private:
67
109
  print("no eval reports to summarise", file=sys.stderr)
68
110
  return 1
69
- text, code = summarise(reports, model)
111
+ text, code = summarise(reports, model, private)
70
112
  print(text)
71
113
  return code
72
114
 
@@ -196,6 +196,11 @@ _CAPABILITY_TABLE: Dict[str, ModelCapability] = {
196
196
  # Registered here as well as in the MODELS catalogue: callers such as the
197
197
  # tool-routing check in aria_cli use get_model_capability() directly, and a
198
198
  # missing entry silently degrades the model to text_only / 4K context.
199
+ "gemini-3.8-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="large", vision=True, thinking=True, notes="Gemini 3.8 Flash — 1M context, short-term line"),
200
+ "gemini-3.5-flash-lite": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True, notes="Gemini 3.5 Flash-Lite — 1M context"),
201
+ "gemini-3.5-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="large", vision=True, thinking=True, notes="Gemini 3.5 Flash — 1M context, stable (default)"),
202
+ "gemini-3.1-flash-lite": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True, notes="Gemini 3.1 Flash-Lite — 1M context"),
203
+ # Retired by Google (model_retirement.py migrates configs that name them).
199
204
  "gemini-2.5-pro": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="large", vision=True, thinking=True, notes="Gemini 2.5 Pro — 1M context"),
200
205
  "gemini-2.5-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True, notes="Gemini 2.5 Flash — 1M context"),
201
206
  "gemini-2.0-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True),
@@ -225,7 +225,7 @@ class GoogleProvider(OpenAICompatProvider):
225
225
 
226
226
  provider_name = "google"
227
227
  DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai"
228
- DEFAULT_MODEL = "gemini-2.5-flash"
228
+ DEFAULT_MODEL = "gemini-3.5-flash"
229
229
 
230
230
  def __init__(self, config: ProviderConfig):
231
231
  if not config.api_key:
@@ -73,7 +73,7 @@ _DEFAULT_FALLBACK_CHAIN = [
73
73
  ("dashscope", "DASHSCOPE_API_KEY", "qwen-plus"),
74
74
  ("moonshot", "MOONSHOT_API_KEY", "moonshot-v1-8k"),
75
75
  ("zhipu", "ZHIPUAI_API_KEY", "glm-4-flash"),
76
- ("google", "GEMINI_API_KEY", "gemini-2.5-flash"),
76
+ ("google", "GEMINI_API_KEY", "gemini-3.5-flash"),
77
77
  ("openai", "OPENAI_API_KEY", "gpt-4o-mini"),
78
78
  ("anthropic", "ANTHROPIC_API_KEY", "claude-3-5-haiku-latest"),
79
79
  ("groq", "GROQ_API_KEY", "llama-3.3-70b-versatile"),
@@ -0,0 +1 @@
1
+ """Training data and evaluation for Aria's own model (docs/training-protocol.md)."""