aria-code 0.112.0__tar.gz → 0.114.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 (804) hide show
  1. {aria_code-0.112.0/src/aria_code.egg-info → aria_code-0.114.0}/PKG-INFO +2 -2
  2. {aria_code-0.112.0 → aria_code-0.114.0}/README.md +1 -1
  3. {aria_code-0.112.0 → aria_code-0.114.0}/pyproject.toml +2 -2
  4. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/_version.py +1 -1
  5. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/bootstrap.py +5 -2
  6. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/model_cmds.py +12 -1
  7. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +1 -1
  8. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/config_store.py +43 -1
  9. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/model_catalog.py +30 -12
  10. aria_code-0.114.0/src/aria_code/apps/cli/model_retirement.py +63 -0
  11. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/write_tools.py +22 -0
  12. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_cli.py +8 -8
  13. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ariarc.py +1 -1
  14. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/doctor.py +1 -1
  15. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/model_capability.py +5 -0
  16. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/openai_compat.py +1 -1
  17. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/registry.py +1 -1
  18. aria_code-0.114.0/src/aria_code/safety/client_isolation.py +178 -0
  19. aria_code-0.114.0/src/aria_code/training/__init__.py +1 -0
  20. aria_code-0.114.0/src/aria_code/training/compare.py +117 -0
  21. aria_code-0.114.0/src/aria_code/training/sft_dataset.py +230 -0
  22. {aria_code-0.112.0 → aria_code-0.114.0/src/aria_code.egg-info}/PKG-INFO +2 -2
  23. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/SOURCES.txt +9 -0
  24. aria_code-0.114.0/tests/test_client_isolation_guard.py +102 -0
  25. aria_code-0.114.0/tests/test_eval_hard_suite.py +479 -0
  26. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_eval_task_bank.py +1 -1
  27. aria_code-0.114.0/tests/test_gemini_retirement.py +101 -0
  28. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_capability_registry.py +5 -3
  29. aria_code-0.114.0/tests/test_training_pipeline.py +172 -0
  30. {aria_code-0.112.0 → aria_code-0.114.0}/LICENSE +0 -0
  31. {aria_code-0.112.0 → aria_code-0.114.0}/NOTICE +0 -0
  32. {aria_code-0.112.0 → aria_code-0.114.0}/setup.cfg +0 -0
  33. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/__init__.py +0 -0
  34. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/__init__.py +0 -0
  35. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
  36. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
  37. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
  38. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
  39. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/__init__.py +0 -0
  40. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/base.py +0 -0
  41. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/code_review.py +0 -0
  42. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/__init__.py +0 -0
  43. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
  44. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/critic.py +0 -0
  45. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/deepen.py +0 -0
  46. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/models.py +0 -0
  47. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/pipeline.py +0 -0
  48. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
  49. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/themes.py +0 -0
  50. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/tiers.py +0 -0
  51. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/engineering/__init__.py +0 -0
  52. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/engineering/coder.py +0 -0
  53. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/engineering/tester.py +0 -0
  54. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/__init__.py +0 -0
  55. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
  56. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/catalyst.py +0 -0
  57. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
  58. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/debate.py +0 -0
  59. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/earnings.py +0 -0
  60. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/fundamental.py +0 -0
  61. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/macro.py +0 -0
  62. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/news.py +0 -0
  63. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/risk.py +0 -0
  64. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/sector.py +0 -0
  65. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/strategist.py +0 -0
  66. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
  67. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/synthesis.py +0 -0
  68. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/technical.py +0 -0
  69. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/orchestrator.py +0 -0
  70. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/portfolio_agent.py +0 -0
  71. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/__init__.py +0 -0
  72. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
  73. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/business_match.py +0 -0
  74. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
  75. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
  76. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
  77. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
  78. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
  79. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
  80. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
  81. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/registry.py +0 -0
  82. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/signal_scheme.py +0 -0
  83. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/sports/__init__.py +0 -0
  84. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/sports/football_agent.py +0 -0
  85. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/supervisor.py +0 -0
  86. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/team.py +0 -0
  87. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
  88. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
  89. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
  90. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
  91. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
  92. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
  93. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
  94. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
  95. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
  96. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
  97. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
  98. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aliyun_data_client.py +0 -0
  99. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/README.md +0 -0
  100. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/__init__.py +0 -0
  101. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/README.md +0 -0
  102. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/__init__.py +0 -0
  103. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/approvals.py +0 -0
  104. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/conversation.py +0 -0
  105. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/digest.py +0 -0
  106. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/intake.py +0 -0
  107. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/registry.py +0 -0
  108. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/tradingview.py +0 -0
  109. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/README.md +0 -0
  110. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/__init__.py +0 -0
  111. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/_optional.py +0 -0
  112. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/broker_render.py +0 -0
  113. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/chat_turn.py +0 -0
  114. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
  115. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
  116. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
  117. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
  118. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
  119. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
  120. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
  121. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
  122. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
  123. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
  124. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
  125. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
  126. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
  127. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
  128. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
  129. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
  130. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
  131. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
  132. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
  133. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market.py +0 -0
  134. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
  135. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
  136. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
  137. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
  138. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
  139. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
  140. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/report.py +0 -0
  141. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
  142. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
  143. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
  144. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/team.py +0 -0
  145. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
  146. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
  147. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
  148. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
  149. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
  150. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/config_paths.py +0 -0
  151. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/constants.py +0 -0
  152. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/context.py +0 -0
  153. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/deterministic.py +0 -0
  154. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/direct.py +0 -0
  155. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
  156. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/exec_events.py +0 -0
  157. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
  158. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/football_reports.py +0 -0
  159. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
  160. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/google_login.py +0 -0
  161. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
  162. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
  163. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
  164. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
  165. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
  166. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
  167. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
  168. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/headless.py +0 -0
  169. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/helpers.py +0 -0
  170. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/hooks.py +0 -0
  171. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/i18n.py +0 -0
  172. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/intent.py +0 -0
  173. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/intent_router.py +0 -0
  174. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
  175. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
  176. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
  177. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/main.py +0 -0
  178. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/market_hours.py +0 -0
  179. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
  180. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/market_universe.py +0 -0
  181. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/message_processing.py +0 -0
  182. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
  183. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/model_probe.py +0 -0
  184. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
  185. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
  186. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
  187. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
  188. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/preflight.py +0 -0
  189. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/project_aria.py +0 -0
  190. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
  191. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
  192. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
  193. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
  194. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
  195. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
  196. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
  197. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
  198. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
  199. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/base.py +0 -0
  200. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
  201. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
  202. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
  203. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
  204. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
  205. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
  206. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
  207. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
  208. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
  209. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/release_download.py +0 -0
  210. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/review_runner.py +0 -0
  211. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
  212. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/sandbox.py +0 -0
  213. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/session_export.py +0 -0
  214. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
  215. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/session_store.py +0 -0
  216. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
  217. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
  218. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
  219. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
  220. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
  221. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
  222. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
  223. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/context.py +0 -0
  224. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
  225. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
  226. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
  227. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
  228. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
  229. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
  230. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/update_check.py +0 -0
  231. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/updater.py +0 -0
  232. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
  233. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
  234. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
  235. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/daemon/README.md +0 -0
  236. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/vscode/README.md +0 -0
  237. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/vscode/package.json +0 -0
  238. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_daemon.py +0 -0
  239. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_feishu_bot.py +0 -0
  240. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_mcp_server.py +0 -0
  241. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_relay_client.py +0 -0
  242. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_relay_server.py +0 -0
  243. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_telegram_bot.py +0 -0
  244. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/artifacts.py +0 -0
  245. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/backtest_engine.py +0 -0
  246. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/backtest_report.py +0 -0
  247. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/__init__.py +0 -0
  248. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/automation.py +0 -0
  249. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/base.py +0 -0
  250. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/capabilities.py +0 -0
  251. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/__init__.py +0 -0
  252. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
  253. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
  254. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
  255. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
  256. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
  257. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/config.py +0 -0
  258. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/__init__.py +0 -0
  259. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
  260. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
  261. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
  262. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
  263. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/paper_broker.py +0 -0
  264. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/planning.py +0 -0
  265. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/registry.py +0 -0
  266. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/trading.py +0 -0
  267. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/canva_client.py +0 -0
  268. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/change_store.py +0 -0
  269. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/__init__.py +0 -0
  270. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
  271. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/aria_relay_client.py +0 -0
  272. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/canva_client.py +0 -0
  273. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/figma_client.py +0 -0
  274. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/football_data_client.py +0 -0
  275. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/kling_video_client.py +0 -0
  276. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/market_data_client.py +0 -0
  277. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/openai_image_client.py +0 -0
  278. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/runway_video_client.py +0 -0
  279. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
  280. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/cloud_memory.py +0 -0
  281. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/command_safety.py +0 -0
  282. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/computer_use_tools.py +0 -0
  283. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/dashboard_generator.py +0 -0
  284. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/data_analysis_tools.py +0 -0
  285. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/data_cleaner.py +0 -0
  286. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/data_service.py +0 -0
  287. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/__init__.py +0 -0
  288. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/base.py +0 -0
  289. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/router.py +0 -0
  290. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/__init__.py +0 -0
  291. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
  292. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
  293. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
  294. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
  295. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
  296. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
  297. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
  298. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
  299. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
  300. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/demo_player.py +0 -0
  301. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/__init__.py +0 -0
  302. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/backtest_engine.py +0 -0
  303. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/backtest_report.py +0 -0
  304. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/finance_formulas.py +0 -0
  305. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
  306. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/strategy_vault.py +0 -0
  307. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/__init__.py +0 -0
  308. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/harness.py +0 -0
  309. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/runner.py +0 -0
  310. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/summary.py +0 -0
  311. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/external_agent_runner.py +0 -0
  312. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/figma_client.py +0 -0
  313. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/file_analysis_tools.py +0 -0
  314. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/finance_formulas.py +0 -0
  315. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/football_data_client.py +0 -0
  316. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/image_gen_tools.py +0 -0
  317. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/intent_classifier.py +0 -0
  318. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/kling_video_client.py +0 -0
  319. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/licensing.py +0 -0
  320. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/local_finance_tools.py +0 -0
  321. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/local_image_provider.py +0 -0
  322. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/local_llm_provider.py +0 -0
  323. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/macro_tools.py +0 -0
  324. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/markdown_pdf.py +0 -0
  325. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/market_data_client.py +0 -0
  326. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/mcp_client.py +0 -0
  327. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/memory_manager.py +0 -0
  328. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/notification_tools.py +0 -0
  329. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/openai_image_client.py +0 -0
  330. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/__init__.py +0 -0
  331. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
  332. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
  333. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
  334. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
  335. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
  336. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
  337. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
  338. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/export.py +0 -0
  339. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
  340. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/paths.py +0 -0
  341. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
  342. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
  343. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
  344. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
  345. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/product.py +0 -0
  346. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
  347. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
  348. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
  349. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
  350. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
  351. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
  352. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
  353. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
  354. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
  355. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
  356. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
  357. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
  358. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
  359. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/cache.py +0 -0
  360. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/context.py +0 -0
  361. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
  362. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/data.py +0 -0
  363. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
  364. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/references.py +0 -0
  365. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/registry.py +0 -0
  366. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
  367. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
  368. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/settings.py +0 -0
  369. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/usage.py +0 -0
  370. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
  371. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
  372. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
  373. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
  374. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
  375. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
  376. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
  377. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
  378. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
  379. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
  380. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
  381. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
  382. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
  383. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
  384. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
  385. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
  386. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
  387. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
  388. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
  389. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
  390. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
  391. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
  392. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
  393. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
  394. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
  395. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
  396. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
  397. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
  398. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
  399. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
  400. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
  401. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
  402. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
  403. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
  404. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
  405. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/__init__.py +0 -0
  406. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/base.py +0 -0
  407. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/finance/__init__.py +0 -0
  408. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/logistics/__init__.py +0 -0
  409. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/payments/__init__.py +0 -0
  410. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/realty/__init__.py +0 -0
  411. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/registry.py +0 -0
  412. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/rules.py +0 -0
  413. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/plan_utils.py +0 -0
  414. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/plugin_loader.py +0 -0
  415. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/portfolio_ledger.py +0 -0
  416. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/preview_server.py +0 -0
  417. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/privacy/__init__.py +0 -0
  418. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/privacy/feedback.py +0 -0
  419. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_review.py +0 -0
  420. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_review_api.py +0 -0
  421. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_review_server.py +0 -0
  422. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_tools.py +0 -0
  423. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/__init__.py +0 -0
  424. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/__init__.py +0 -0
  425. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/anthropic.py +0 -0
  426. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
  427. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/base.py +0 -0
  428. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/custom.py +0 -0
  429. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/ollama.py +0 -0
  430. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/local_image_provider.py +0 -0
  431. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/local_llm_provider.py +0 -0
  432. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/tool_messages.py +0 -0
  433. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/realty_data_tools.py +0 -0
  434. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/relay_store.py +0 -0
  435. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/report_exporters.py +0 -0
  436. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/report_generator.py +0 -0
  437. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/review_service.py +0 -0
  438. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/__init__.py +0 -0
  439. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/acceptance.py +0 -0
  440. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/agent_loop.py +0 -0
  441. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/approval.py +0 -0
  442. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/budget.py +0 -0
  443. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/checkpoints.py +0 -0
  444. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/crash_report.py +0 -0
  445. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/events.py +0 -0
  446. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/gateway.py +0 -0
  447. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/lsp.py +0 -0
  448. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/orchestrator.py +0 -0
  449. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/processes.py +0 -0
  450. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/repo_map.py +0 -0
  451. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/run_state.py +0 -0
  452. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/run_store.py +0 -0
  453. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/self_healing.py +0 -0
  454. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/subagent.py +0 -0
  455. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/task_ledger.py +0 -0
  456. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
  457. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/tool_executor.py +0 -0
  458. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/tool_policy.py +0 -0
  459. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/worktrees.py +0 -0
  460. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runway_video_client.py +0 -0
  461. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/__init__.py +0 -0
  462. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/permissions.py +0 -0
  463. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/sandbox.py +0 -0
  464. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/service.py +0 -0
  465. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/setup_wizard.py +0 -0
  466. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/spreadsheet_tools.py +0 -0
  467. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/strategy_vault.py +0 -0
  468. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/__init__.py +0 -0
  469. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/artifact_tools.py +0 -0
  470. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/broker_tools.py +0 -0
  471. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/build_quant_engine.py +0 -0
  472. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/code_audit_tools.py +0 -0
  473. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/computer_use_tools.py +0 -0
  474. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
  475. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
  476. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/extended_tools.py +0 -0
  477. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
  478. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/image_gen_tools.py +0 -0
  479. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/local_finance_tools.py +0 -0
  480. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_carriers.py +0 -0
  481. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_inventory.py +0 -0
  482. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_io.py +0 -0
  483. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
  484. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_tools.py +0 -0
  485. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/macro_tools.py +0 -0
  486. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/notification_tools.py +0 -0
  487. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/project_tools.py +0 -0
  488. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/realty_data_tools.py +0 -0
  489. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
  490. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/stripe_tools.py +0 -0
  491. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/__init__.py +0 -0
  492. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/banner.py +0 -0
  493. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/completer.py +0 -0
  494. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/console.py +0 -0
  495. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/image_render.py +0 -0
  496. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/input_box.py +0 -0
  497. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/mentions.py +0 -0
  498. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/picker.py +0 -0
  499. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/__init__.py +0 -0
  500. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/finance.py +0 -0
  501. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/market.py +0 -0
  502. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/output.py +0 -0
  503. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/responsive.py +0 -0
  504. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/team.py +0 -0
  505. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/robot.py +0 -0
  506. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/startup_dashboard.py +0 -0
  507. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/utils/vscode_uri.py +0 -0
  508. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/video_analysis.py +0 -0
  509. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/video_editor.py +0 -0
  510. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace/__init__.py +0 -0
  511. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace/files.py +0 -0
  512. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace/verify.py +0 -0
  513. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_changes.py +0 -0
  514. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_context.py +0 -0
  515. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_service.py +0 -0
  516. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_tools.py +0 -0
  517. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
  518. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/entry_points.txt +0 -0
  519. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/requires.txt +0 -0
  520. {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/top_level.txt +0 -0
  521. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_adk_market_tools.py +0 -0
  522. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_agent_key_points_language.py +0 -0
  523. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_agent_team_fallback.py +0 -0
  524. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_analyze_file_tool.py +0 -0
  525. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_architecture_ledger_is_true.py +0 -0
  526. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_architecture_report.py +0 -0
  527. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_aria_cli_core.py +0 -0
  528. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_aria_mcp_server.py +0 -0
  529. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_aria_sdk.py +0 -0
  530. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_artifact_publishing.py +0 -0
  531. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_artifacts_and_reports.py +0 -0
  532. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ashare_prediction_cmds.py +0 -0
  533. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_background_processes.py +0 -0
  534. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_cmds.py +0 -0
  535. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_engine.py +0 -0
  536. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_report.py +0 -0
  537. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_runs_what_it_names.py +0 -0
  538. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
  539. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broken_akshare_is_optional.py +0 -0
  540. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_automation.py +0 -0
  541. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_chat_confirm_gate.py +0 -0
  542. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_planning.py +0 -0
  543. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_safety.py +0 -0
  544. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_tools.py +0 -0
  545. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_budget.py +0 -0
  546. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_business_workflow_cmds.py +0 -0
  547. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_callback_provider_cleanup.py +0 -0
  548. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_canva_client.py +0 -0
  549. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_canvas_cmds.py +0 -0
  550. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_card_approvals.py +0 -0
  551. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_channel_intake.py +0 -0
  552. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_channels.py +0 -0
  553. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_chart_handlers.py +0 -0
  554. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_chat_bots_fail_closed.py +0 -0
  555. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_chat_routing.py +0 -0
  556. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ci_security_workflow.py +0 -0
  557. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_app_split.py +0 -0
  558. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_bootstrap.py +0 -0
  559. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_config_store.py +0 -0
  560. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_lifecycle_hooks.py +0 -0
  561. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_runtime_consumer.py +0 -0
  562. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_tool_executor_module.py +0 -0
  563. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_updater.py +0 -0
  564. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cloud_memory.py +0 -0
  565. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_code_audit_tools.py +0 -0
  566. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_code_review_agent.py +0 -0
  567. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_codegen_output.py +0 -0
  568. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_coder_tester_self_healing.py +0 -0
  569. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_coder_tool_safety.py +0 -0
  570. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_collaboration.py +0 -0
  571. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_command_loggers.py +0 -0
  572. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_command_safety.py +0 -0
  573. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_compare_strategies.py +0 -0
  574. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_completions_builder.py +0 -0
  575. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_config_paths.py +0 -0
  576. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_configured_provider.py +0 -0
  577. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_container_entrypoint.py +0 -0
  578. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_container_entrypoints.py +0 -0
  579. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_context_checkpoints.py +0 -0
  580. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_context_references.py +0 -0
  581. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_context_service.py +0 -0
  582. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_conversation_core.py +0 -0
  583. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_crash_report.py +0 -0
  584. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_credential_file_permissions.py +0 -0
  585. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_custom_providers.py +0 -0
  586. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_daemon_gateway_config.py +0 -0
  587. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_dashboard_generator.py +0 -0
  588. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_data_service.py +0 -0
  589. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_data_service_imports.py +0 -0
  590. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_data_without_model.py +0 -0
  591. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_datasource_routing.py +0 -0
  592. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_deep_analysis.py +0 -0
  593. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_degrades_without_quant_engine.py +0 -0
  594. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
  595. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_doctor.py +0 -0
  596. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_doctor_describes_the_current_install.py +0 -0
  597. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_doctor_npm_scope.py +0 -0
  598. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_edit_and_command_safety.py +0 -0
  599. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_engine_boundary.py +0 -0
  600. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_english_output_group.py +0 -0
  601. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_enterprise_tool_honesty.py +0 -0
  602. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_env_switch_docs.py +0 -0
  603. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_eval_summary.py +0 -0
  604. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_eval_trajectories.py +0 -0
  605. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_evals_harness.py +0 -0
  606. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_event_import_roots.py +0 -0
  607. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_exec_events.py +0 -0
  608. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_extended_tools.py +0 -0
  609. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_feishu_swarm_config.py +0 -0
  610. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_file_links.py +0 -0
  611. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_finalize_release.py +0 -0
  612. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_finance_renderers.py +0 -0
  613. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_finance_service_catalog.py +0 -0
  614. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_first_run_output.py +0 -0
  615. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_first_run_works.py +0 -0
  616. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_football_agent.py +0 -0
  617. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_football_prediction_output.py +0 -0
  618. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_cloud_models.py +0 -0
  619. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_cloud_routing.py +0 -0
  620. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_login.py +0 -0
  621. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_search_provider.py +0 -0
  622. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_headless_command_approval.py +0 -0
  623. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_headless_is_agentic.py +0 -0
  624. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_honest_surfaces.py +0 -0
  625. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_image_gen_tools.py +0 -0
  626. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_image_inputs.py +0 -0
  627. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_import_graph_budget.py +0 -0
  628. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_intent_router.py +0 -0
  629. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_intent_signals.py +0 -0
  630. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_kling_video_client.py +0 -0
  631. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_lazy_rebind.py +0 -0
  632. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_legacy_module_imports.py +0 -0
  633. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_license_consistency.py +0 -0
  634. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_licensing.py +0 -0
  635. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_local_image_provider.py +0 -0
  636. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_local_workspace_execution.py +0 -0
  637. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_logistics_3pl.py +0 -0
  638. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_logistics_and_finance_agents.py +0 -0
  639. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_lsp.py +0 -0
  640. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_markdown_pdf.py +0 -0
  641. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_answers_in_english.py +0 -0
  642. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_data_client.py +0 -0
  643. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_history_inheritance.py +0 -0
  644. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_history_tool.py +0 -0
  645. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_hours.py +0 -0
  646. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_questions_on_backend.py +0 -0
  647. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_symbol_extraction.py +0 -0
  648. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_universe.py +0 -0
  649. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_mcp_circuit.py +0 -0
  650. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_mcp_client.py +0 -0
  651. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_mentions.py +0 -0
  652. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_choice_is_the_users.py +0 -0
  653. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_probe.py +0 -0
  654. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_selection_state.py +0 -0
  655. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_narrow_chinese_output.py +0 -0
  656. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_native_binary_entrypoints.py +0 -0
  657. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_native_installer.py +0 -0
  658. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_natural_language_routing.py +0 -0
  659. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_new_modules.py +0 -0
  660. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
  661. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_no_tools_route.py +0 -0
  662. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_no_uncommitted_imports.py +0 -0
  663. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_numeric_listings.py +0 -0
  664. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ollama_stream_imports.py +0 -0
  665. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ollama_stream_tools.py +0 -0
  666. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_openai_image_client.py +0 -0
  667. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_operations_suite.py +0 -0
  668. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_os_sandbox.py +0 -0
  669. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_output_discipline_prompt.py +0 -0
  670. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_output_rendering.py +0 -0
  671. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packages_facade.py +0 -0
  672. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packaging_constraints.py +0 -0
  673. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packaging_manifest.py +0 -0
  674. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packs_domains.py +0 -0
  675. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_pdf_report.py +0 -0
  676. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_pick_best_installed_model.py +0 -0
  677. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_plan_mode.py +0 -0
  678. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_platform_package_assembly.py +0 -0
  679. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_platform_packages.py +0 -0
  680. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_platform_publish.py +0 -0
  681. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_plotly_html_output.py +0 -0
  682. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_portfolio_language.py +0 -0
  683. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_portfolio_ledger.py +0 -0
  684. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_post_turn_context_decision.py +0 -0
  685. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_preflight.py +0 -0
  686. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_preview_server.py +0 -0
  687. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_privacy_feedback.py +0 -0
  688. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_aria.py +0 -0
  689. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_context_files.py +0 -0
  690. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_review.py +0 -0
  691. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_review_api.py +0 -0
  692. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_prompt_assembly.py +0 -0
  693. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_prompt_selection.py +0 -0
  694. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_autoconfig.py +0 -0
  695. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_error_classification.py +0 -0
  696. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_error_messages.py +0 -0
  697. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_integration.py +0 -0
  698. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_registry.py +0 -0
  699. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_public_service_status.py +0 -0
  700. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_quant_engine_namespace.py +0 -0
  701. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_rebind_contract.py +0 -0
  702. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_rebind_namespace_contract.py +0 -0
  703. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_client_credentials.py +0 -0
  704. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_event_verification.py +0 -0
  705. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_sends_for_clients.py +0 -0
  706. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_store.py +0 -0
  707. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_url.py +0 -0
  708. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_badges.py +0 -0
  709. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_chain.py +0 -0
  710. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_commit_identity.py +0 -0
  711. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_download.py +0 -0
  712. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_push_is_atomic.py +0 -0
  713. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_reaches_the_registries.py +0 -0
  714. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_verification_waits.py +0 -0
  715. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_workflow_permissions.py +0 -0
  716. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_report_charts.py +0 -0
  717. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_report_generator.py +0 -0
  718. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_report_prompt_language.py +0 -0
  719. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_research_protocol.py +0 -0
  720. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_research_quality.py +0 -0
  721. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_responsive_rendering.py +0 -0
  722. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_review_service.py +0 -0
  723. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_risk_earnings_ops.py +0 -0
  724. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_root_module_budget.py +0 -0
  725. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_rsi_without_pandas_ta.py +0 -0
  726. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_acceptance.py +0 -0
  727. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_agent_loop.py +0 -0
  728. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_approval.py +0 -0
  729. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_bridge.py +0 -0
  730. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_bridge_fallback.py +0 -0
  731. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_checkpoints.py +0 -0
  732. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_event_identity.py +0 -0
  733. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_gateway.py +0 -0
  734. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_repo_map.py +0 -0
  735. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_run_store.py +0 -0
  736. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_tool_executor.py +0 -0
  737. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_worktrees.py +0 -0
  738. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runway_video_client.py +0 -0
  739. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_safety_permissions.py +0 -0
  740. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_safety_service.py +0 -0
  741. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_safety_service_adoption.py +0 -0
  742. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_service_diagnostics_security.py +0 -0
  743. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_session_search.py +0 -0
  744. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_settings_service.py +0 -0
  745. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_shell_commands_as_written.py +0 -0
  746. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_shipper_digest.py +0 -0
  747. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_single_import_root.py +0 -0
  748. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_skill_agent_binding.py +0 -0
  749. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_skill_catalog.py +0 -0
  750. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_skill_loader.py +0 -0
  751. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_slash_popup.py +0 -0
  752. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_spreadsheet_tools.py +0 -0
  753. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_sse_stream_contract.py +0 -0
  754. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_startup_dashboard.py +0 -0
  755. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_startup_keeps_cloud_model.py +0 -0
  756. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_startup_latency.py +0 -0
  757. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_status_language.py +0 -0
  758. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_streaming_pipeline.py +0 -0
  759. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_stripe_agent.py +0 -0
  760. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_subagent.py +0 -0
  761. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_supervisor_routing.py +0 -0
  762. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_system_prompts.py +0 -0
  763. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_system_tools_output.py +0 -0
  764. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_task_orchestrator.py +0 -0
  765. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_team_analysts.py +0 -0
  766. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_team_synthesis.py +0 -0
  767. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_terminal_mixins.py +0 -0
  768. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_terminal_snapshots.py +0 -0
  769. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tls_trust_store.py +0 -0
  770. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_policy.py +0 -0
  771. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
  772. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_scope.py +0 -0
  773. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_step_output.py +0 -0
  774. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_trading_service.py +0 -0
  775. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tradingview_bridge.py +0 -0
  776. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_turn_planning.py +0 -0
  777. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_completer_references.py +0 -0
  778. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_console_theme.py +0 -0
  779. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_input_box.py +0 -0
  780. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_language_and_model.py +0 -0
  781. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_robot_banner.py +0 -0
  782. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_update_health_routes.py +0 -0
  783. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_verification_hint.py +0 -0
  784. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_verification_policy.py +0 -0
  785. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_version_consistency.py +0 -0
  786. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_version_counter.py +0 -0
  787. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vertex_busy_retry.py +0 -0
  788. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vertex_empty_rounds.py +0 -0
  789. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vertex_models.py +0 -0
  790. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_video_analysis.py +0 -0
  791. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_video_editor.py +0 -0
  792. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vscode_mcp.py +0 -0
  793. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_agents.py +0 -0
  794. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_cli_registration.py +0 -0
  795. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_erp_client.py +0 -0
  796. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_workflow.py +0 -0
  797. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_wheel_is_installable.py +0 -0
  798. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_changes.py +0 -0
  799. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_context.py +0 -0
  800. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_files.py +0 -0
  801. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_scope.py +0 -0
  802. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_service.py +0 -0
  803. {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_verify.py +0 -0
  804. {aria_code-0.112.0 → aria_code-0.114.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.112.0
3
+ Version: 0.114.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.112.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.112.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.114.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.114.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.112.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.112.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.114.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.114.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.112.0"
7
+ version = "0.114.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.112.0"
20
+ __version__ = "0.114.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"]
@@ -118,6 +118,19 @@ def _print_lsp_diags(diags: list, console, has_rich: bool, limit: int = 6) -> No
118
118
  console.print(f" [dim]… +{extra} more[/dim]") if has_rich else print(f" ... +{extra} more")
119
119
 
120
120
 
121
+ def _client_isolation_error(p: pathlib.Path, content: str) -> str | None:
122
+ """Why a client's document must not be written as it stands (aria_code.safety.client_isolation).
123
+
124
+ A failure inside the check never blocks a write: it is a guard on top of
125
+ the write path, not a new way for writing to break.
126
+ """
127
+ try:
128
+ from aria_code.safety.client_isolation import check_write
129
+ return check_write(p, content, [pathlib.Path.cwd()])
130
+ except Exception:
131
+ return None
132
+
133
+
121
134
  def _is_safe(p: pathlib.Path, params: dict | None = None) -> bool:
122
135
  if params and params.get("_workspace"):
123
136
  from aria_code.workspace.files import WorkspaceSecurity
@@ -463,6 +476,9 @@ def tool_write_file(params: dict) -> dict:
463
476
  p = raw_path.resolve()
464
477
  if not _is_safe(p, params):
465
478
  return {"success": False, "error": f"Access denied: path '{p}' is outside allowed directories"}
479
+ leak = _client_isolation_error(p, content)
480
+ if leak:
481
+ return {"success": False, "error": leak, "data": {"client_isolation": True}}
466
482
 
467
483
  existed = p.exists()
468
484
  desktop = pathlib.Path.home() / "Desktop"
@@ -719,6 +735,9 @@ def tool_edit_file(params: dict) -> dict:
719
735
 
720
736
  replacements = occurrences if replace_all else 1
721
737
  new_content = content.replace(old_str, new_str, -1 if replace_all else 1)
738
+ leak = _client_isolation_error(p, new_content)
739
+ if leak:
740
+ return {"success": False, "error": leak, "data": {"client_isolation": True}}
722
741
  store = _change_store()
723
742
  change = store.stage(p, new_content, source="edit_file")
724
743
  added = len(new_str.splitlines())
@@ -855,6 +874,9 @@ def tool_multi_edit(params: dict) -> dict:
855
874
 
856
875
  # ── Phase 2: stage + apply once ───────────────────────────────────────
857
876
  store = _change_store()
877
+ leak = _client_isolation_error(p, working)
878
+ if leak:
879
+ return {"success": False, "error": leak, "data": {"client_isolation": True}}
858
880
  change = store.stage(p, working, source="multi_edit")
859
881
  console, has_rich = _ui()
860
882
 
@@ -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
 
@@ -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,178 @@
1
+ """Keep one client's document free of other clients' data.
2
+
3
+ A 3PL's stock file, a fund's holdings export or a merchant ledger often holds
4
+ several clients side by side. A document written *for one of them* (named for
5
+ it: ``report_BETA.md``, ``statement-acme.csv``) must not carry another
6
+ client's name, id or item codes. The prompt says so, and in an eval run the
7
+ agent still copied two notes from Beta's own rows that named Acme and Gamma
8
+ SKUs into Beta's report.
9
+
10
+ This is the check behind that rule, the way a liquid handler's checker
11
+ tracks what each tip has touched rather than trusting the protocol's
12
+ comments: before a client document is written, its text is scanned for the
13
+ identifiers of every *other* client found in the workspace's data files, and
14
+ the write is refused with a list of what leaked.
15
+
16
+ Clients are found in CSV files near the document that have an owner column
17
+ (``owner_id``, ``shipper``, ``client``, ``customer``…). A document is a
18
+ client's when its file name names exactly one of them. Code is not checked:
19
+ a script that processes every client legitimately names them all, and so
20
+ does an internal report whose name does not single one out.
21
+ """
22
+
23
+ from __future__ import annotations
24
+
25
+ import csv
26
+ import re
27
+ from dataclasses import dataclass, field
28
+ from pathlib import Path
29
+ from typing import Iterable
30
+
31
+ OWNER_COLUMNS = ("owner_id", "owner", "shipper_id", "shipper", "client_id", "client",
32
+ "customer_id", "customer", "account_id", "货主", "客户")
33
+ NAME_COLUMNS = ("owner_name", "shipper_name", "client_name", "customer_name", "account_name",
34
+ "货主名称", "客户名称")
35
+ ITEM_COLUMNS = ("sku", "item", "item_id", "item_code", "product_id", "product_code", "sku_id")
36
+ DOCUMENT_SUFFIXES = {".md", ".markdown", ".txt", ".csv", ".tsv", ".json", ".html", ".htm",
37
+ ".xml", ".yaml", ".yml", ".rst", ".eml"}
38
+ MIN_TERM = 3 # "A" or "AB" as an owner id would match everywhere
39
+ MAX_FILE_BYTES = 5 * 1024 * 1024
40
+ MAX_FILES = 25
41
+
42
+
43
+ @dataclass
44
+ class Client:
45
+ id: str
46
+ names: set[str] = field(default_factory=set)
47
+ items: set[str] = field(default_factory=set)
48
+
49
+ def terms(self) -> list[str]:
50
+ return sorted({t for t in {self.id, *self.names, *self.items} if len(t) >= MIN_TERM}, key=len, reverse=True)
51
+
52
+
53
+ _CACHE: dict[tuple[str, float, int], dict[str, Client]] = {}
54
+
55
+
56
+ def _column(header: Iterable[str], wanted: tuple[str, ...]) -> str | None:
57
+ lowered = {h.strip().lower(): h for h in header if h}
58
+ for name in wanted:
59
+ if name in lowered:
60
+ return lowered[name]
61
+ return None
62
+
63
+
64
+ def _clients_in(path: Path) -> dict[str, Client]:
65
+ try:
66
+ stat = path.stat()
67
+ except OSError:
68
+ return {}
69
+ if stat.st_size > MAX_FILE_BYTES:
70
+ return {}
71
+ key = (str(path), stat.st_mtime, stat.st_size)
72
+ if key in _CACHE:
73
+ return _CACHE[key]
74
+ found: dict[str, Client] = {}
75
+ try:
76
+ with path.open(newline="", encoding="utf-8-sig", errors="replace") as fh:
77
+ reader = csv.DictReader(fh)
78
+ header = reader.fieldnames or []
79
+ owner = _column(header, OWNER_COLUMNS)
80
+ if owner:
81
+ name = _column(header, NAME_COLUMNS)
82
+ item = _column(header, ITEM_COLUMNS)
83
+ for row in reader:
84
+ cid = (row.get(owner) or "").strip()
85
+ if not cid:
86
+ continue
87
+ client = found.setdefault(cid, Client(cid))
88
+ if name and (row.get(name) or "").strip():
89
+ client.names.add(row[name].strip())
90
+ if item and (row.get(item) or "").strip():
91
+ client.items.add(row[item].strip())
92
+ except (OSError, csv.Error, UnicodeError):
93
+ found = {}
94
+ _CACHE[key] = found
95
+ return found
96
+
97
+
98
+ def client_index(roots: Iterable[Path]) -> dict[str, Client]:
99
+ """Every client named in the CSV data files in *roots* and their immediate subfolders."""
100
+ index: dict[str, Client] = {}
101
+ seen = 0
102
+ for root in dict.fromkeys(Path(r) for r in roots):
103
+ if not root.is_dir():
104
+ continue
105
+ candidates = sorted(root.glob("*.csv")) + sorted(root.glob("*/*.csv"))
106
+ for path in candidates:
107
+ if seen >= MAX_FILES:
108
+ return index
109
+ seen += 1
110
+ for cid, client in _clients_in(path).items():
111
+ merged = index.setdefault(cid, Client(cid))
112
+ merged.names |= client.names
113
+ merged.items |= client.items
114
+ return index if len(index) > 1 else {}
115
+
116
+
117
+ def _words(text: str) -> set[str]:
118
+ return {w.lower() for w in re.split(r"[^0-9A-Za-z一-鿿]+", text) if w}
119
+
120
+
121
+ def target_client(path: Path, index: dict[str, Client]) -> str | None:
122
+ """The one client a document's file name singles out, if it singles out exactly one."""
123
+ words = _words(Path(path).stem)
124
+ compact = re.sub(r"[^0-9a-z一-鿿]", "", Path(path).stem.lower())
125
+ hits = set()
126
+ for cid, client in index.items():
127
+ if cid.lower() in words:
128
+ hits.add(cid)
129
+ continue
130
+ for name in client.names:
131
+ squashed = re.sub(r"[^0-9a-z一-鿿]", "", name.lower())
132
+ if len(squashed) >= MIN_TERM and squashed in compact:
133
+ hits.add(cid)
134
+ return next(iter(hits)) if len(hits) == 1 else None
135
+
136
+
137
+ def _mentions(text: str, term: str) -> bool:
138
+ if re.search(r"[一-鿿]", term):
139
+ return term in text
140
+ return re.search(rf"(?<![0-9A-Za-z]){re.escape(term)}(?![0-9A-Za-z])", text, re.IGNORECASE) is not None
141
+
142
+
143
+ def foreign_mentions(text: str, target: str, index: dict[str, Client]) -> dict[str, list[str]]:
144
+ """Other clients' identifiers that appear in *text*, by client."""
145
+ own = {t.lower() for t in index[target].terms()} if target in index else set()
146
+ leaks: dict[str, list[str]] = {}
147
+ for cid, client in sorted(index.items()):
148
+ if cid == target:
149
+ continue
150
+ hits = [t for t in client.terms() if t.lower() not in own and _mentions(text, t)]
151
+ if hits:
152
+ leaks[cid] = hits[:4]
153
+ return leaks
154
+
155
+
156
+ def check_write(path: Path | str, content: str, roots: Iterable[Path | str] = ()) -> str | None:
157
+ """Why this write must be refused, or None when it may go ahead."""
158
+ path = Path(path)
159
+ if path.suffix.lower() not in DOCUMENT_SUFFIXES:
160
+ return None
161
+ search = [path.parent, *(Path(r) for r in roots)]
162
+ index = client_index(search)
163
+ if not index:
164
+ return None
165
+ target = target_client(path, index)
166
+ if target is None:
167
+ return None
168
+ leaks = foreign_mentions(content, target, index)
169
+ if not leaks:
170
+ return None
171
+ listed = "; ".join(f"{cid} ({', '.join(terms)})" for cid, terms in leaks.items())
172
+ return (f"Not written: {path.name} is for client {target}, but it contains other clients' data: {listed}. "
173
+ f"A client's document holds only that client's data. Remove these, including any that came "
174
+ f"from notes or comments in {target}'s own rows, and write it again. If this is meant to be an "
175
+ f"internal cross-client document, name it without singling out one client.")
176
+
177
+
178
+ __all__ = ["Client", "check_write", "client_index", "foreign_mentions", "target_client"]
@@ -0,0 +1 @@
1
+ """Training data and evaluation for Aria's own model (docs/training-protocol.md)."""