aria-code 0.122.0__tar.gz → 0.124.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 (848) hide show
  1. {aria_code-0.122.0/src/aria_code.egg-info → aria_code-0.124.0}/PKG-INFO +2 -2
  2. {aria_code-0.122.0 → aria_code-0.124.0}/README.md +1 -1
  3. {aria_code-0.122.0 → aria_code-0.124.0}/pyproject.toml +1 -1
  4. aria_code-0.124.0/src/aria_code/__init__.py +103 -0
  5. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/_version.py +1 -1
  6. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/chat_turn.py +51 -2
  7. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/catalog.py +1 -1
  8. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/core_cmds.py +39 -1
  9. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +152 -0
  10. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prompts/coding.py +4 -1
  11. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +73 -0
  12. aria_code-0.124.0/src/aria_code/apps/cli/task_isolation.py +211 -0
  13. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/system_tools.py +5 -0
  14. aria_code-0.124.0/src/aria_code/apps/cli/transactions.py +269 -0
  15. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/updater.py +10 -0
  16. aria_code-0.124.0/src/aria_code/apps/cli/workflow_runner.py +127 -0
  17. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_cli.py +23 -21
  18. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_daemon.py +5 -2
  19. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/acceptance.py +50 -2
  20. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/agent_loop.py +3 -1
  21. aria_code-0.124.0/src/aria_code/runtime/baseline.py +147 -0
  22. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/checkpoints.py +51 -2
  23. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/delivery.py +31 -1
  24. aria_code-0.124.0/src/aria_code/runtime/project_graph.py +605 -0
  25. aria_code-0.124.0/src/aria_code/runtime/task_worktree.py +444 -0
  26. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/tool_executor.py +39 -2
  27. aria_code-0.124.0/src/aria_code/runtime/transactions.py +216 -0
  28. aria_code-0.124.0/src/aria_code/runtime/workflows.py +222 -0
  29. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/spreadsheet_tools.py +32 -21
  30. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/output.py +16 -2
  31. {aria_code-0.122.0 → aria_code-0.124.0/src/aria_code.egg-info}/PKG-INFO +2 -2
  32. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code.egg-info/SOURCES.txt +18 -0
  33. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_aria_cli_core.py +8 -0
  34. aria_code-0.124.0/tests/test_baseline.py +124 -0
  35. aria_code-0.124.0/tests/test_checkpoints_since.py +81 -0
  36. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_updater.py +22 -5
  37. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_event_import_roots.py +5 -3
  38. aria_code-0.124.0/tests/test_import_aliasing.py +38 -0
  39. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_local_workspace_execution.py +3 -3
  40. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_native_installer.py +32 -2
  41. aria_code-0.124.0/tests/test_project_graph.py +214 -0
  42. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_startup_latency.py +39 -0
  43. aria_code-0.124.0/tests/test_subagent_workspace.py +69 -0
  44. aria_code-0.124.0/tests/test_task_isolation_turn.py +80 -0
  45. aria_code-0.124.0/tests/test_task_worktree.py +306 -0
  46. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_terminal_mixins.py +10 -12
  47. aria_code-0.124.0/tests/test_transactions.py +276 -0
  48. aria_code-0.124.0/tests/test_transactions_turn.py +75 -0
  49. aria_code-0.124.0/tests/test_workflows.py +173 -0
  50. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_workspace_scope.py +3 -0
  51. aria_code-0.122.0/src/aria_code/__init__.py +0 -42
  52. {aria_code-0.122.0 → aria_code-0.124.0}/LICENSE +0 -0
  53. {aria_code-0.122.0 → aria_code-0.124.0}/NOTICE +0 -0
  54. {aria_code-0.122.0 → aria_code-0.124.0}/setup.cfg +0 -0
  55. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/adk_apps/__init__.py +0 -0
  56. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
  57. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
  58. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
  59. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
  60. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/__init__.py +0 -0
  61. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/base.py +0 -0
  62. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/code_review.py +0 -0
  63. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/__init__.py +0 -0
  64. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
  65. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/critic.py +0 -0
  66. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/deepen.py +0 -0
  67. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/models.py +0 -0
  68. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/pipeline.py +0 -0
  69. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
  70. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/themes.py +0 -0
  71. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/deep/tiers.py +0 -0
  72. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/engineering/__init__.py +0 -0
  73. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/engineering/coder.py +0 -0
  74. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/engineering/tester.py +0 -0
  75. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/__init__.py +0 -0
  76. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
  77. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/catalyst.py +0 -0
  78. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
  79. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/debate.py +0 -0
  80. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/earnings.py +0 -0
  81. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/fundamental.py +0 -0
  82. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/macro.py +0 -0
  83. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/news.py +0 -0
  84. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/risk.py +0 -0
  85. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/sector.py +0 -0
  86. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/strategist.py +0 -0
  87. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
  88. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/synthesis.py +0 -0
  89. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/financial/technical.py +0 -0
  90. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/orchestrator.py +0 -0
  91. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/portfolio_agent.py +0 -0
  92. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/__init__.py +0 -0
  93. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
  94. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/business_match.py +0 -0
  95. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
  96. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
  97. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
  98. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
  99. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
  100. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
  101. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
  102. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/registry.py +0 -0
  103. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/signal_scheme.py +0 -0
  104. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/sports/__init__.py +0 -0
  105. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/sports/football_agent.py +0 -0
  106. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/supervisor.py +0 -0
  107. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/team.py +0 -0
  108. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
  109. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
  110. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
  111. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
  112. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
  113. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
  114. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
  115. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
  116. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
  117. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
  118. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
  119. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aliyun_data_client.py +0 -0
  120. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/README.md +0 -0
  121. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/__init__.py +0 -0
  122. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/README.md +0 -0
  123. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/__init__.py +0 -0
  124. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/approvals.py +0 -0
  125. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/conversation.py +0 -0
  126. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/digest.py +0 -0
  127. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/intake.py +0 -0
  128. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/registry.py +0 -0
  129. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/channels/tradingview.py +0 -0
  130. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/README.md +0 -0
  131. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/__init__.py +0 -0
  132. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/_optional.py +0 -0
  133. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
  134. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/broker_render.py +0 -0
  135. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
  136. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
  137. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
  138. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
  139. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
  140. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
  141. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
  142. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
  143. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
  144. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
  145. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
  146. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
  147. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
  148. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
  149. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
  150. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
  151. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
  152. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/market.py +0 -0
  153. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
  154. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
  155. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
  156. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
  157. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
  158. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
  159. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
  160. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
  161. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/report.py +0 -0
  162. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
  163. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
  164. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
  165. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/team.py +0 -0
  166. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
  167. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
  168. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
  169. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
  170. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/config_paths.py +0 -0
  171. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/config_store.py +0 -0
  172. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/constants.py +0 -0
  173. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/context.py +0 -0
  174. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/deterministic.py +0 -0
  175. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/direct.py +0 -0
  176. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
  177. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/exec_events.py +0 -0
  178. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
  179. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/football_reports.py +0 -0
  180. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
  181. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/google_login.py +0 -0
  182. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
  183. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
  184. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
  185. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
  186. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
  187. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
  188. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
  189. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/headless.py +0 -0
  190. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/helpers.py +0 -0
  191. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/hooks.py +0 -0
  192. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/i18n.py +0 -0
  193. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/intent.py +0 -0
  194. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/intent_router.py +0 -0
  195. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
  196. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
  197. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
  198. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/main.py +0 -0
  199. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/market_hours.py +0 -0
  200. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
  201. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/market_universe.py +0 -0
  202. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/message_processing.py +0 -0
  203. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
  204. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
  205. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/model_probe.py +0 -0
  206. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/model_retirement.py +0 -0
  207. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
  208. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
  209. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
  210. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
  211. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/preflight.py +0 -0
  212. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/project_aria.py +0 -0
  213. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
  214. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
  215. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
  216. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
  217. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
  218. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
  219. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
  220. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
  221. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/base.py +0 -0
  222. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
  223. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
  224. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
  225. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
  226. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
  227. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
  228. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
  229. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
  230. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/release_download.py +0 -0
  231. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/review_runner.py +0 -0
  232. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
  233. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/sandbox.py +0 -0
  234. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/session_export.py +0 -0
  235. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
  236. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/session_store.py +0 -0
  237. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
  238. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
  239. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
  240. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
  241. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
  242. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
  243. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
  244. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/context.py +0 -0
  245. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
  246. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
  247. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
  248. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
  249. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
  250. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
  251. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/update_check.py +0 -0
  252. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
  253. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
  254. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
  255. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/daemon/README.md +0 -0
  256. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/vscode/README.md +0 -0
  257. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/apps/vscode/package.json +0 -0
  258. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_feishu_bot.py +0 -0
  259. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_mcp_server.py +0 -0
  260. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_relay_client.py +0 -0
  261. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_relay_server.py +0 -0
  262. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/aria_telegram_bot.py +0 -0
  263. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ariarc.py +0 -0
  264. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/artifacts.py +0 -0
  265. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/backtest_engine.py +0 -0
  266. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/backtest_report.py +0 -0
  267. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/__init__.py +0 -0
  268. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/automation.py +0 -0
  269. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/base.py +0 -0
  270. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/capabilities.py +0 -0
  271. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/cn/__init__.py +0 -0
  272. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
  273. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
  274. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
  275. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
  276. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
  277. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/config.py +0 -0
  278. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/intl/__init__.py +0 -0
  279. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
  280. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
  281. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
  282. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
  283. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/paper_broker.py +0 -0
  284. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/planning.py +0 -0
  285. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/registry.py +0 -0
  286. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/brokers/trading.py +0 -0
  287. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/canva_client.py +0 -0
  288. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/change_store.py +0 -0
  289. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/__init__.py +0 -0
  290. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
  291. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/aria_relay_client.py +0 -0
  292. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/canva_client.py +0 -0
  293. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/figma_client.py +0 -0
  294. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/football_data_client.py +0 -0
  295. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/kling_video_client.py +0 -0
  296. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/market_data_client.py +0 -0
  297. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/openai_image_client.py +0 -0
  298. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/runway_video_client.py +0 -0
  299. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
  300. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/cloud_memory.py +0 -0
  301. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/command_safety.py +0 -0
  302. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/computer_use_tools.py +0 -0
  303. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/dashboard_generator.py +0 -0
  304. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/data_analysis_tools.py +0 -0
  305. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/data_cleaner.py +0 -0
  306. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/data_service.py +0 -0
  307. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/__init__.py +0 -0
  308. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/base.py +0 -0
  309. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/router.py +0 -0
  310. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/__init__.py +0 -0
  311. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
  312. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
  313. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
  314. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
  315. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
  316. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
  317. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
  318. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
  319. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
  320. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/demo_player.py +0 -0
  321. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/doctor.py +0 -0
  322. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/domain/__init__.py +0 -0
  323. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/domain/backtest_engine.py +0 -0
  324. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/domain/backtest_report.py +0 -0
  325. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/domain/finance_formulas.py +0 -0
  326. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
  327. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/domain/strategy_vault.py +0 -0
  328. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/evals/__init__.py +0 -0
  329. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/evals/gap.py +0 -0
  330. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/evals/harness.py +0 -0
  331. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/evals/runner.py +0 -0
  332. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/evals/summary.py +0 -0
  333. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/external_agent_runner.py +0 -0
  334. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/figma_client.py +0 -0
  335. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/file_analysis_tools.py +0 -0
  336. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/finance_formulas.py +0 -0
  337. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/football_data_client.py +0 -0
  338. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/image_gen_tools.py +0 -0
  339. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/intent_classifier.py +0 -0
  340. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/kling_video_client.py +0 -0
  341. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/licensing.py +0 -0
  342. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/local_finance_tools.py +0 -0
  343. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/local_image_provider.py +0 -0
  344. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/local_llm_provider.py +0 -0
  345. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/macro_tools.py +0 -0
  346. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/markdown_pdf.py +0 -0
  347. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/market_data_client.py +0 -0
  348. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/mcp_client.py +0 -0
  349. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/memory_manager.py +0 -0
  350. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/model_capability.py +0 -0
  351. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/notification_tools.py +0 -0
  352. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/openai_image_client.py +0 -0
  353. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/__init__.py +0 -0
  354. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
  355. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
  356. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
  357. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
  358. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
  359. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
  360. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
  361. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_core/export.py +0 -0
  362. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
  363. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_core/paths.py +0 -0
  364. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
  365. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
  366. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
  367. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
  368. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_infra/product.py +0 -0
  369. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
  370. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
  371. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
  372. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
  373. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
  374. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
  375. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
  376. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
  377. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
  378. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
  379. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
  380. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
  381. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
  382. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/cache.py +0 -0
  383. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/context.py +0 -0
  384. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
  385. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/data.py +0 -0
  386. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
  387. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/references.py +0 -0
  388. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/registry.py +0 -0
  389. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
  390. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
  391. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/settings.py +0 -0
  392. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_services/usage.py +0 -0
  393. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
  394. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
  395. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
  396. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
  397. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
  398. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
  399. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
  400. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
  401. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
  402. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
  403. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
  404. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
  405. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
  406. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
  407. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
  408. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
  409. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
  410. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
  411. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
  412. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
  413. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
  414. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
  415. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
  416. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
  417. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
  418. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
  419. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
  420. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
  421. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
  422. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
  423. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
  424. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
  425. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
  426. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
  427. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
  428. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/__init__.py +0 -0
  429. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/base.py +0 -0
  430. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/finance/__init__.py +0 -0
  431. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/logistics/__init__.py +0 -0
  432. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/payments/__init__.py +0 -0
  433. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/realty/__init__.py +0 -0
  434. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/registry.py +0 -0
  435. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/packs/rules.py +0 -0
  436. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/plan_utils.py +0 -0
  437. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/plugin_loader.py +0 -0
  438. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/portfolio_ledger.py +0 -0
  439. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/preview_server.py +0 -0
  440. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/privacy/__init__.py +0 -0
  441. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/privacy/feedback.py +0 -0
  442. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/project_review.py +0 -0
  443. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/project_review_api.py +0 -0
  444. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/project_review_server.py +0 -0
  445. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/project_tools.py +0 -0
  446. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/__init__.py +0 -0
  447. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/__init__.py +0 -0
  448. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/anthropic.py +0 -0
  449. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
  450. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/base.py +0 -0
  451. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/custom.py +0 -0
  452. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/ollama.py +0 -0
  453. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
  454. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/llm/registry.py +0 -0
  455. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/local_image_provider.py +0 -0
  456. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/local_llm_provider.py +0 -0
  457. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/providers/tool_messages.py +0 -0
  458. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/realty_data_tools.py +0 -0
  459. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/relay_store.py +0 -0
  460. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/report_exporters.py +0 -0
  461. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/report_generator.py +0 -0
  462. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/review_service.py +0 -0
  463. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/__init__.py +0 -0
  464. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/approval.py +0 -0
  465. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/budget.py +0 -0
  466. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/contract.py +0 -0
  467. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/crash_report.py +0 -0
  468. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/events.py +0 -0
  469. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/gateway.py +0 -0
  470. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/lsp.py +0 -0
  471. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/orchestrator.py +0 -0
  472. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/processes.py +0 -0
  473. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/repo_map.py +0 -0
  474. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/review.py +0 -0
  475. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/run_state.py +0 -0
  476. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/run_store.py +0 -0
  477. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/self_healing.py +0 -0
  478. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/semantic_diff.py +0 -0
  479. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/subagent.py +0 -0
  480. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/symbol_edit.py +0 -0
  481. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/task_ledger.py +0 -0
  482. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
  483. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/tool_policy.py +0 -0
  484. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/windows_job.py +0 -0
  485. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runtime/worktrees.py +0 -0
  486. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/runway_video_client.py +0 -0
  487. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/safety/__init__.py +0 -0
  488. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/safety/client_isolation.py +0 -0
  489. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/safety/permissions.py +0 -0
  490. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/safety/risk.py +0 -0
  491. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/safety/sandbox.py +0 -0
  492. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/safety/service.py +0 -0
  493. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/setup_wizard.py +0 -0
  494. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/spreadsheet_tools.py +0 -0
  495. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/strategy_vault.py +0 -0
  496. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/__init__.py +0 -0
  497. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/artifact_tools.py +0 -0
  498. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/broker_tools.py +0 -0
  499. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/build_quant_engine.py +0 -0
  500. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/code_audit_tools.py +0 -0
  501. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/computer_use_tools.py +0 -0
  502. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
  503. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
  504. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/extended_tools.py +0 -0
  505. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
  506. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/image_gen_tools.py +0 -0
  507. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/local_finance_tools.py +0 -0
  508. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/logistics_carriers.py +0 -0
  509. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/logistics_inventory.py +0 -0
  510. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/logistics_io.py +0 -0
  511. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
  512. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/logistics_tools.py +0 -0
  513. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/macro_tools.py +0 -0
  514. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/notification_tools.py +0 -0
  515. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/project_tools.py +0 -0
  516. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/realty_data_tools.py +0 -0
  517. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/tools/stripe_tools.py +0 -0
  518. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/training/__init__.py +0 -0
  519. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/training/compare.py +0 -0
  520. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/training/sft_dataset.py +0 -0
  521. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/__init__.py +0 -0
  522. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/banner.py +0 -0
  523. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/completer.py +0 -0
  524. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/console.py +0 -0
  525. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/input_box.py +0 -0
  526. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/mentions.py +0 -0
  527. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/picker.py +0 -0
  528. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/__init__.py +0 -0
  529. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/actions.py +0 -0
  530. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/finance.py +0 -0
  531. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/market.py +0 -0
  532. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/responsive.py +0 -0
  533. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/render/team.py +0 -0
  534. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/robot.py +0 -0
  535. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/ui/startup_dashboard.py +0 -0
  536. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/utils/vscode_uri.py +0 -0
  537. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/video_analysis.py +0 -0
  538. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/video_editor.py +0 -0
  539. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace/__init__.py +0 -0
  540. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace/files.py +0 -0
  541. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace/verify.py +0 -0
  542. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace_changes.py +0 -0
  543. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace_context.py +0 -0
  544. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace_service.py +0 -0
  545. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code/workspace_tools.py +0 -0
  546. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
  547. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code.egg-info/entry_points.txt +0 -0
  548. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code.egg-info/requires.txt +0 -0
  549. {aria_code-0.122.0 → aria_code-0.124.0}/src/aria_code.egg-info/top_level.txt +0 -0
  550. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_action_view.py +0 -0
  551. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_adk_market_tools.py +0 -0
  552. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_agent_key_points_language.py +0 -0
  553. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_agent_team_fallback.py +0 -0
  554. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_analyze_file_tool.py +0 -0
  555. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_architecture_ledger_is_true.py +0 -0
  556. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_architecture_report.py +0 -0
  557. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_aria_mcp_server.py +0 -0
  558. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_aria_sdk.py +0 -0
  559. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_artifact_publishing.py +0 -0
  560. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_artifacts_and_reports.py +0 -0
  561. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ashare_prediction_cmds.py +0 -0
  562. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_background_processes.py +0 -0
  563. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_backtest_cmds.py +0 -0
  564. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_backtest_engine.py +0 -0
  565. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_backtest_report.py +0 -0
  566. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_backtest_runs_what_it_names.py +0 -0
  567. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
  568. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_broken_akshare_is_optional.py +0 -0
  569. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_broker_automation.py +0 -0
  570. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_broker_chat_confirm_gate.py +0 -0
  571. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_broker_planning.py +0 -0
  572. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_broker_safety.py +0 -0
  573. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_broker_tools.py +0 -0
  574. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_budget.py +0 -0
  575. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_business_workflow_cmds.py +0 -0
  576. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_callback_provider_cleanup.py +0 -0
  577. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_canva_client.py +0 -0
  578. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_canvas_cmds.py +0 -0
  579. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_card_approvals.py +0 -0
  580. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_change_contract.py +0 -0
  581. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_channel_intake.py +0 -0
  582. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_channels.py +0 -0
  583. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_chart_handlers.py +0 -0
  584. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_chat_bots_fail_closed.py +0 -0
  585. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_chat_routing.py +0 -0
  586. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ci_security_workflow.py +0 -0
  587. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_app_split.py +0 -0
  588. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_bootstrap.py +0 -0
  589. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_config_store.py +0 -0
  590. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_lifecycle_hooks.py +0 -0
  591. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_runtime_consumer.py +0 -0
  592. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cli_tool_executor_module.py +0 -0
  593. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_client_isolation_guard.py +0 -0
  594. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_cloud_memory.py +0 -0
  595. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_code_audit_tools.py +0 -0
  596. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_code_review_agent.py +0 -0
  597. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_codegen_output.py +0 -0
  598. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_coder_tester_self_healing.py +0 -0
  599. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_coder_tool_safety.py +0 -0
  600. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_collaboration.py +0 -0
  601. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_command_loggers.py +0 -0
  602. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_command_safety.py +0 -0
  603. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_compare_strategies.py +0 -0
  604. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_completions_builder.py +0 -0
  605. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_config_paths.py +0 -0
  606. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_configured_provider.py +0 -0
  607. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_container_entrypoint.py +0 -0
  608. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_container_entrypoints.py +0 -0
  609. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_context_checkpoints.py +0 -0
  610. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_context_references.py +0 -0
  611. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_context_service.py +0 -0
  612. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_conversation_core.py +0 -0
  613. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_crash_report.py +0 -0
  614. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_credential_file_permissions.py +0 -0
  615. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_custom_providers.py +0 -0
  616. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_daemon_gateway_config.py +0 -0
  617. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_dashboard_generator.py +0 -0
  618. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_data_service.py +0 -0
  619. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_data_service_imports.py +0 -0
  620. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_data_without_model.py +0 -0
  621. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_datasource_routing.py +0 -0
  622. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_deep_analysis.py +0 -0
  623. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_degrades_without_quant_engine.py +0 -0
  624. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_delivery_report.py +0 -0
  625. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
  626. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_doctor.py +0 -0
  627. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_doctor_describes_the_current_install.py +0 -0
  628. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_doctor_npm_scope.py +0 -0
  629. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_doctor_sandbox.py +0 -0
  630. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_edit_and_command_safety.py +0 -0
  631. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_engine_boundary.py +0 -0
  632. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_english_output_group.py +0 -0
  633. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_enterprise_tool_honesty.py +0 -0
  634. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_env_switch_docs.py +0 -0
  635. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_eval_hard_suite.py +0 -0
  636. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_eval_holdout.py +0 -0
  637. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_eval_summary.py +0 -0
  638. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_eval_task_bank.py +0 -0
  639. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_eval_trajectories.py +0 -0
  640. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_evals_harness.py +0 -0
  641. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_exec_events.py +0 -0
  642. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_extended_tools.py +0 -0
  643. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_feishu_swarm_config.py +0 -0
  644. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_file_links.py +0 -0
  645. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_finalize_release.py +0 -0
  646. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_finance_renderers.py +0 -0
  647. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_finance_service_catalog.py +0 -0
  648. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_first_run_output.py +0 -0
  649. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_first_run_works.py +0 -0
  650. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_football_agent.py +0 -0
  651. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_football_prediction_output.py +0 -0
  652. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_gemini_retirement.py +0 -0
  653. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_google_cloud_models.py +0 -0
  654. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_google_cloud_routing.py +0 -0
  655. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_google_login.py +0 -0
  656. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_google_search_provider.py +0 -0
  657. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_headless_command_approval.py +0 -0
  658. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_headless_is_agentic.py +0 -0
  659. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_honest_surfaces.py +0 -0
  660. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_image_gen_tools.py +0 -0
  661. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_image_inputs.py +0 -0
  662. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_import_graph_budget.py +0 -0
  663. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_intent_router.py +0 -0
  664. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_intent_signals.py +0 -0
  665. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_kling_video_client.py +0 -0
  666. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_lazy_rebind.py +0 -0
  667. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_legacy_module_imports.py +0 -0
  668. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_license_consistency.py +0 -0
  669. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_licensing.py +0 -0
  670. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_linux_sandbox_integration.py +0 -0
  671. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_local_image_provider.py +0 -0
  672. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_logistics_3pl.py +0 -0
  673. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_logistics_and_finance_agents.py +0 -0
  674. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_lsp.py +0 -0
  675. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_markdown_pdf.py +0 -0
  676. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_answers_in_english.py +0 -0
  677. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_data_client.py +0 -0
  678. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_history_inheritance.py +0 -0
  679. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_history_tool.py +0 -0
  680. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_hours.py +0 -0
  681. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_questions_on_backend.py +0 -0
  682. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_symbol_extraction.py +0 -0
  683. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_market_universe.py +0 -0
  684. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_mcp_circuit.py +0 -0
  685. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_mcp_client.py +0 -0
  686. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_mentions.py +0 -0
  687. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_model_capability_registry.py +0 -0
  688. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_model_choice_is_the_users.py +0 -0
  689. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_model_probe.py +0 -0
  690. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_model_selection_state.py +0 -0
  691. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_narrow_chinese_output.py +0 -0
  692. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_native_binary_entrypoints.py +0 -0
  693. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_natural_language_routing.py +0 -0
  694. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_new_modules.py +0 -0
  695. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
  696. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_no_tools_route.py +0 -0
  697. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_no_uncommitted_imports.py +0 -0
  698. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_numeric_listings.py +0 -0
  699. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ollama_stream_imports.py +0 -0
  700. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ollama_stream_tools.py +0 -0
  701. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_openai_image_client.py +0 -0
  702. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_operations_suite.py +0 -0
  703. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_os_sandbox.py +0 -0
  704. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_output_discipline_prompt.py +0 -0
  705. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_output_rendering.py +0 -0
  706. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_packages_facade.py +0 -0
  707. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_packaging_constraints.py +0 -0
  708. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_packaging_manifest.py +0 -0
  709. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_packs_domains.py +0 -0
  710. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_pdf_report.py +0 -0
  711. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_pick_best_installed_model.py +0 -0
  712. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_plan_mode.py +0 -0
  713. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_platform_package_assembly.py +0 -0
  714. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_platform_packages.py +0 -0
  715. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_platform_publish.py +0 -0
  716. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_plotly_html_output.py +0 -0
  717. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_portfolio_language.py +0 -0
  718. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_portfolio_ledger.py +0 -0
  719. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_post_turn_context_decision.py +0 -0
  720. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_preflight.py +0 -0
  721. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_preview_server.py +0 -0
  722. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_privacy_feedback.py +0 -0
  723. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_project_aria.py +0 -0
  724. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_project_context_files.py +0 -0
  725. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_project_review.py +0 -0
  726. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_project_review_api.py +0 -0
  727. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_prompt_assembly.py +0 -0
  728. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_prompt_dates.py +0 -0
  729. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_prompt_selection.py +0 -0
  730. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_provider_autoconfig.py +0 -0
  731. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_provider_error_classification.py +0 -0
  732. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_provider_error_messages.py +0 -0
  733. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_provider_integration.py +0 -0
  734. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_provider_registry.py +0 -0
  735. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_public_service_status.py +0 -0
  736. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_quant_engine_namespace.py +0 -0
  737. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_rebind_contract.py +0 -0
  738. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_rebind_namespace_contract.py +0 -0
  739. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_relay_client_credentials.py +0 -0
  740. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_relay_event_verification.py +0 -0
  741. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_relay_sends_for_clients.py +0 -0
  742. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_relay_store.py +0 -0
  743. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_relay_url.py +0 -0
  744. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_badges.py +0 -0
  745. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_chain.py +0 -0
  746. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_commit_identity.py +0 -0
  747. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_download.py +0 -0
  748. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_push_is_atomic.py +0 -0
  749. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_reaches_the_registries.py +0 -0
  750. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_verification_waits.py +0 -0
  751. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_release_workflow_permissions.py +0 -0
  752. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_report_charts.py +0 -0
  753. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_report_generator.py +0 -0
  754. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_report_prompt_language.py +0 -0
  755. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_research_protocol.py +0 -0
  756. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_research_quality.py +0 -0
  757. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_responsive_rendering.py +0 -0
  758. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_review_gate.py +0 -0
  759. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_review_service.py +0 -0
  760. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_risk_approval.py +0 -0
  761. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_risk_assessment.py +0 -0
  762. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_risk_earnings_ops.py +0 -0
  763. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_robot_artwork.py +0 -0
  764. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_root_module_budget.py +0 -0
  765. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_rsi_without_pandas_ta.py +0 -0
  766. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_acceptance.py +0 -0
  767. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_agent_loop.py +0 -0
  768. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_approval.py +0 -0
  769. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_bridge.py +0 -0
  770. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_bridge_fallback.py +0 -0
  771. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_checkpoints.py +0 -0
  772. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_event_identity.py +0 -0
  773. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_gateway.py +0 -0
  774. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_repo_map.py +0 -0
  775. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_run_store.py +0 -0
  776. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_tool_executor.py +0 -0
  777. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runtime_worktrees.py +0 -0
  778. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_runway_video_client.py +0 -0
  779. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_safety_permissions.py +0 -0
  780. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_safety_service.py +0 -0
  781. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_safety_service_adoption.py +0 -0
  782. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_semantic_diff.py +0 -0
  783. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_service_diagnostics_security.py +0 -0
  784. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_session_search.py +0 -0
  785. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_settings_service.py +0 -0
  786. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_shell_commands_as_written.py +0 -0
  787. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_shipper_digest.py +0 -0
  788. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_single_import_root.py +0 -0
  789. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_skill_agent_binding.py +0 -0
  790. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_skill_catalog.py +0 -0
  791. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_skill_loader.py +0 -0
  792. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_slash_popup.py +0 -0
  793. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_spreadsheet_tools.py +0 -0
  794. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_sse_http_roundtrip.py +0 -0
  795. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_sse_stream_contract.py +0 -0
  796. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_startup_dashboard.py +0 -0
  797. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_startup_keeps_cloud_model.py +0 -0
  798. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_status_language.py +0 -0
  799. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_streaming_pipeline.py +0 -0
  800. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_stripe_agent.py +0 -0
  801. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_subagent.py +0 -0
  802. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_supervisor_routing.py +0 -0
  803. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_symbol_edit.py +0 -0
  804. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_system_prompts.py +0 -0
  805. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_system_tools_output.py +0 -0
  806. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_task_orchestrator.py +0 -0
  807. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_task_restore_startup.py +0 -0
  808. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_team_analysts.py +0 -0
  809. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_team_synthesis.py +0 -0
  810. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_terminal_snapshots.py +0 -0
  811. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_tls_trust_store.py +0 -0
  812. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_tool_policy.py +0 -0
  813. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
  814. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_tool_scope.py +0 -0
  815. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_tool_step_output.py +0 -0
  816. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_trading_service.py +0 -0
  817. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_tradingview_bridge.py +0 -0
  818. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_training_pipeline.py +0 -0
  819. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_turn_planning.py +0 -0
  820. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ui_completer_references.py +0 -0
  821. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ui_console_theme.py +0 -0
  822. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ui_input_box.py +0 -0
  823. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ui_language_and_model.py +0 -0
  824. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_ui_robot_banner.py +0 -0
  825. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_update_health_routes.py +0 -0
  826. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_verification_hint.py +0 -0
  827. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_verification_policy.py +0 -0
  828. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_verification_runner_selection.py +0 -0
  829. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_version_consistency.py +0 -0
  830. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_version_counter.py +0 -0
  831. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_vertex_busy_retry.py +0 -0
  832. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_vertex_empty_rounds.py +0 -0
  833. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_vertex_models.py +0 -0
  834. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_vertexai_tool_history.py +0 -0
  835. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_video_analysis.py +0 -0
  836. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_video_editor.py +0 -0
  837. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_vscode_mcp.py +0 -0
  838. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_warehouse_agents.py +0 -0
  839. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_warehouse_cli_registration.py +0 -0
  840. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_warehouse_erp_client.py +0 -0
  841. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_warehouse_workflow.py +0 -0
  842. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_wheel_is_installable.py +0 -0
  843. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_workspace_changes.py +0 -0
  844. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_workspace_context.py +0 -0
  845. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_workspace_files.py +0 -0
  846. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_workspace_service.py +0 -0
  847. {aria_code-0.122.0 → aria_code-0.124.0}/tests/test_workspace_verify.py +0 -0
  848. {aria_code-0.122.0 → aria_code-0.124.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.122.0
3
+ Version: 0.124.0
4
4
  Summary: Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/artheras/aria-code
@@ -172,7 +172,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
172
172
  <p align="center">
173
173
  <a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
174
174
  <!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
175
- <a href="https://pypi.org/project/aria-code/0.122.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.122.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
175
+ <a href="https://pypi.org/project/aria-code/0.124.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.124.0%2Fjson&amp;query=%24.info.version&amp;prefix=v&amp;style=flat-square&amp;logo=pypi&amp;label=PyPI&amp;color=blue&amp;cacheSeconds=300" alt="PyPI version"></a>
176
176
  <a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
177
177
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
178
178
  </p>
@@ -15,7 +15,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
15
15
  <p align="center">
16
16
  <a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
17
17
  <!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
18
- <a href="https://pypi.org/project/aria-code/0.122.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.122.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.124.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.124.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.122.0"
7
+ version = "0.124.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" }
@@ -0,0 +1,103 @@
1
+ """Aria Code.
2
+
3
+ This package is importable under two roots by design, and has been since the
4
+ src/ restructure: ``aria_code.X`` and a bare ``X``. The tree uses both — 399
5
+ modules import each other bare (``from market_data_client import get_mdc``)
6
+ while others use the package path, and the tests patch whichever root the code
7
+ under test actually uses. tests/test_single_import_root.py exists to keep a
8
+ single *file* from mixing the two.
9
+
10
+ In development both roots resolve because pyproject's
11
+ ``pythonpath = [".", "src", "src/aria_code"]`` and tests/conftest.py put them
12
+ there. An installed wheel has neither, so only ``aria_code`` resolved and the
13
+ console script died immediately:
14
+
15
+ $ aria-code --version
16
+ ModuleNotFoundError: No module named 'aria_cli'
17
+
18
+ 4.4.1 did not hit this because its wheel predates the restructure — it shipped
19
+ ``aria_cli.py`` and 56 other modules at top level, so the bare root *was* the
20
+ package. After the move, nothing put the inner directory on the path.
21
+
22
+ Adding it here rather than shipping a .pth file keeps it inside the package, so
23
+ it applies to `pip install`, `pip install -e .`, a zipapp and a PyInstaller
24
+ bundle alike, and it is visible to anyone reading the package rather than hidden
25
+ in site-packages.
26
+
27
+ Both roots now give the same module object (``_OneModulePerFile`` below), so
28
+ a bare import is an alias rather than a second copy.
29
+
30
+ This is a bridge, not the destination. One root is the goal — v4.4.2 converted
31
+ the tree to ``aria_code.*`` throughout — but converting it means moving every
32
+ test's patch target with it, and doing that silently under a release is how the
33
+ bare-root bugs in this history were introduced.
34
+ """
35
+
36
+ import importlib as _importlib
37
+ import importlib.abc as _importlib_abc
38
+ import importlib.machinery as _machinery
39
+ import os as _os
40
+ import sys as _sys
41
+
42
+ _HERE = _os.path.dirname(_os.path.abspath(__file__))
43
+ if _HERE not in _sys.path:
44
+ # Appended, not inserted: a module that legitimately shadows one of these
45
+ # names in the user's own project must keep winning.
46
+ _sys.path.append(_HERE)
47
+
48
+
49
+ class _OneModulePerFile(_importlib_abc.MetaPathFinder, _importlib_abc.Loader):
50
+ """A bare import of a module in this package returns the ``aria_code.*`` object.
51
+
52
+ Two roots used to mean two module objects per file, each with its own
53
+ globals, and nothing ever errored: a patch, a registry, a cache or an
54
+ exception class applied to one copy simply missed code using the other.
55
+ In one week that was a task list cleared in the copy nobody wrote to, a
56
+ rewind whose conflict error was a different class from the one caught,
57
+ and a test fixture isolating a ledger nobody used while the real one
58
+ filled with pending tasks. Here ``import runtime.checkpoints`` and
59
+ ``import aria_code.runtime.checkpoints`` give the same object.
60
+
61
+ Only when the bare name would load a file from this package: a user's
62
+ own ``tools`` or ``utils`` earlier on ``sys.path`` is found first and
63
+ left alone, as before.
64
+ """
65
+
66
+ def __init__(self, root: str) -> None:
67
+ self._own: dict = {}
68
+ self.root = _os.path.normcase(root) + _os.sep
69
+ self.names = {
70
+ entry[:-3] if entry.endswith(".py") else entry
71
+ for entry in _os.listdir(root)
72
+ if entry != "__init__.py" and not entry.startswith(("_", "."))
73
+ and (entry.endswith(".py") or _os.path.isfile(_os.path.join(root, entry, "__init__.py")))
74
+ }
75
+
76
+ def find_spec(self, fullname, path=None, target=None):
77
+ if fullname.partition(".")[0] not in self.names:
78
+ return None
79
+ spec = _machinery.PathFinder.find_spec(fullname, path)
80
+ origin = getattr(spec, "origin", None) or ""
81
+ locations = list(getattr(spec, "submodule_search_locations", None) or ())
82
+ mine = [loc for loc in [origin, *locations] if loc and _os.path.normcase(loc).startswith(self.root)]
83
+ if spec is None or not mine:
84
+ return None
85
+ return _machinery.ModuleSpec(fullname, self, is_package=bool(locations))
86
+
87
+ def create_module(self, spec):
88
+ module = _importlib.import_module("aria_code." + spec.name)
89
+ # Keyed by name: importing the real module can alias others first.
90
+ self._own[spec.name] = (module.__spec__, getattr(module, "__loader__", None))
91
+ return module
92
+
93
+ def exec_module(self, module):
94
+ # Already executed under its aria_code.* name. The import system has
95
+ # just stamped this alias's spec on it; put the real one back, or
96
+ # importlib.reload() would re-run this no-op instead of the module.
97
+ module.__spec__, module.__loader__ = self._own.pop(module.__spec__.name)
98
+
99
+
100
+ if not any(isinstance(finder, _OneModulePerFile) for finder in _sys.meta_path):
101
+ _sys.meta_path.insert(0, _OneModulePerFile(_HERE))
102
+
103
+ del _HERE, _importlib_abc # the finder still uses _os, _importlib and _machinery
@@ -17,4 +17,4 @@ from __future__ import annotations
17
17
 
18
18
  __all__ = ["__version__"]
19
19
 
20
- __version__ = "0.122.0"
20
+ __version__ = "0.124.0"
@@ -196,6 +196,9 @@ class ChatTurnMixin:
196
196
  await self._maybe_auto_compact_before_turn(_incoming_for_compact)
197
197
  except Exception:
198
198
  pass
199
+ # The whole session as it stands before this turn, for /rewind turn.
200
+ from apps.cli import transactions as _transactions
201
+ _transactions.capture(self, message)
199
202
  self.conversation.append({"role": "user", "content": user_content})
200
203
 
201
204
  # ── 路由决策:支持工具调用的模型走 LLM+tool call,否则走确定性路由 ──
@@ -483,7 +486,9 @@ class ChatTurnMixin:
483
486
  elapsed = 0.0
484
487
 
485
488
  try:
486
- from apps.cli.todo_tracker import clear_todos as _clear_todos
489
+ # The update_todos tool writes the aria_code.* copy; clearing the
490
+ # bare-named one cleared a list nothing wrote to.
491
+ from aria_code.apps.cli.todo_tracker import clear_todos as _clear_todos
487
492
  _clear_todos() # reset task checklist for this new turn
488
493
  except Exception:
489
494
  pass
@@ -625,6 +630,19 @@ class ChatTurnMixin:
625
630
  # 而不是把"请重试"推给用户(60s 的工具结果/思考不该因一次抽风作废)。
626
631
  # 仅对 empty_response 重试;其他错误(配额/鉴权等)走原有 rescue 链。
627
632
  _ACTION_VIEW_ACTIVE[0] = _action_view is not None
633
+ # The task worktree this turn edits instead of the user's files; None
634
+ # when isolation is off or this is not a git repository.
635
+ from apps.cli import task_isolation as _task_isolation
636
+
637
+ def _task_note(text: str) -> None:
638
+ if HAS_RICH:
639
+ from rich.markup import escape as _escape_markup
640
+ console.print(f" [dim]{_escape_markup(text)}[/dim]")
641
+ else:
642
+ print(f" {text}")
643
+
644
+ _task = _task_isolation.prepare(_runtime_config, notify=_task_note)
645
+ _task_context = _task_isolation.execution_context(_task, _runtime_config)
628
646
  try:
629
647
  for _rt_attempt in range(2):
630
648
  try:
@@ -653,6 +671,7 @@ class ChatTurnMixin:
653
671
  execution_context=lambda: {
654
672
  "_run_id": self._active_run_id,
655
673
  "_session_id": self.session_id,
674
+ **_task_context,
656
675
  },
657
676
  return_result=True,
658
677
  )
@@ -1055,11 +1074,22 @@ class ChatTurnMixin:
1055
1074
  console if HAS_RICH else None,
1056
1075
  _delivery,
1057
1076
  run_id=str(result.get("run_id") or ""),
1058
- root=os.getcwd(),
1077
+ root=_task_context.get("_workspace") or os.getcwd(),
1059
1078
  )
1060
1079
  except Exception as _delivery_err:
1061
1080
  logger.debug("delivery report not shown: %s", _delivery_err)
1062
1081
 
1082
+ # A turn that changed files in its task worktree: apply, keep, discard.
1083
+ await self._offer_task_apply(_task, _task_note)
1084
+
1085
+ # Whether the code now passes its checks — what the next
1086
+ # transaction point records, and what /rewind green looks for.
1087
+ from aria_code.runtime.transactions import verdict_from_acceptance
1088
+ self._code_verdict = verdict_from_acceptance(
1089
+ result.get("acceptance") if isinstance(result, dict) else None,
1090
+ getattr(self, "_code_verdict", ""),
1091
+ )
1092
+
1063
1093
  # Metadata line — detailed stats
1064
1094
  metadata = turn_result.metadata
1065
1095
  prompt_t = metadata.prompt_tokens
@@ -1258,5 +1288,24 @@ class ChatTurnMixin:
1258
1288
  data={"elapsed_seconds": elapsed},
1259
1289
  )
1260
1290
 
1291
+ async def _offer_task_apply(self, task, say) -> None:
1292
+ """Ask whether a task's changes should reach the user's files."""
1293
+ if task is None:
1294
+ return
1295
+ from apps.cli import task_isolation
1296
+
1297
+ def _choose(options, title):
1298
+ return _arrow_select(options, selected=0, title=title,
1299
+ shortcuts={"a": 0, "k": 1, "d": 2},
1300
+ collapse_to="task")
1301
+
1302
+ loop = asyncio.get_running_loop()
1303
+ try:
1304
+ await loop.run_in_executor(None, lambda: task_isolation.offer(
1305
+ task, choose=_choose, say=say, session_id=self.session_id))
1306
+ except Exception as exc:
1307
+ logger.debug("task apply offer failed: %s", exc)
1308
+ say(f"Task {task.task_id} kept; /task apply or /task discard.")
1309
+
1261
1310
 
1262
1311
  __all__ = ["ChatTurnMixin"]
@@ -75,7 +75,7 @@ VISIBLE_SLASH_COMMANDS: FrozenSet[str] = frozenset({
75
75
  # Broker
76
76
  "/broker", "/account", "/positions", "/orders", "/paper", "/trade",
77
77
  # Code & project
78
- "/project", "/init", "/review", "/code", "/plan", "/orchestrate", "/run", "/tasks", "/delegate", "/canva", "/completions", "/lsp",
78
+ "/project", "/init", "/review", "/code", "/plan", "/orchestrate", "/run", "/task", "/tasks", "/impact", "/workflow", "/delegate", "/canva", "/completions", "/lsp",
79
79
  # Research
80
80
  "/team", "/warehouse", "/deep",
81
81
  # Quant
@@ -58,7 +58,15 @@ class CoreCommandsMixin:
58
58
  return False
59
59
  # Only match registered commands and skills, not file paths like /Users/...
60
60
  cmd = text.split(maxsplit=1)[0].lower()
61
- return cmd in self.commands or cmd in self.skill_map
61
+ return cmd in self.commands or cmd in self.skill_map or self._workflow_named(cmd)
62
+ def _workflow_named(self, cmd: str) -> bool:
63
+ """``/release`` when ``.aria/workflows/release.yaml`` exists here."""
64
+ try:
65
+ from aria_code.runtime.workflows import names
66
+ root = self.terminal.config.get("_session_workspace_root") or os.getcwd()
67
+ return cmd.lstrip("/") in names(root)
68
+ except Exception:
69
+ return False
62
70
  async def execute(self, text: str):
63
71
  from aria_code.apps.cli.helpers import _fuzzy_match
64
72
  reference_service = getattr(self.terminal, "_reference_service", None)
@@ -102,6 +110,10 @@ class CoreCommandsMixin:
102
110
  print(f"\n ✗ {cmd_name} error: {_cmd_err}\n{_tb_str}")
103
111
  elif cmd_name in self.skill_map:
104
112
  await self._execute_skill(self.skill_map[cmd_name], args)
113
+ elif self._workflow_named(cmd_name):
114
+ # After commands and skills: a repository file never shadows a
115
+ # built-in. /workflow run <name> reaches it either way.
116
+ await self.cmd_workflow(f"run {cmd_name.lstrip('/')} {args}".rstrip())
105
117
  else:
106
118
  # Fuzzy match: suggest closest command
107
119
  all_cmds = list(self.commands.keys()) + list(self.skill_map.keys())
@@ -634,6 +646,32 @@ class CoreCommandsMixin:
634
646
  for t in tasks:
635
647
  preview = t.prompt[:50]
636
648
  print(f" {t.task_id} {t.status:10s} {t.age_str():>5s} {preview}")
649
+ def cmd_task(self, args: str):
650
+ """Show, diff, apply or discard the coding task's worktree."""
651
+ from apps.cli import task_isolation
652
+
653
+ text = task_isolation.command(args, self.terminal.config, session_id=self.terminal.session_id or "")
654
+ if self.context.has_rich:
655
+ from rich.markup import escape
656
+ self.context.console.print(escape(text))
657
+ else:
658
+ print(text)
659
+ def cmd_impact(self, args: str):
660
+ """/impact <path|symbol> [...] — dependents, tests and services of a change."""
661
+ targets = shlex.split(args)
662
+ if not targets:
663
+ msg = "Usage: /impact <path|symbol> [...] e.g. /impact src/auth/session.py Session.refresh"
664
+ self.context.console.print(f"[dim]{msg}[/dim]") if self.context.has_rich else print(msg)
665
+ return
666
+ from aria_code.runtime.project_graph import load_project_graph
667
+
668
+ root = self.terminal.config.get("_session_workspace_root") or os.getcwd()
669
+ text = load_project_graph(root).impact(targets).render()
670
+ if self.context.has_rich:
671
+ from rich.markup import escape
672
+ self.context.console.print(escape(text))
673
+ else:
674
+ print(text)
637
675
  def cmd_delegate(self, args: str):
638
676
  """Delegate a task to the Claude Code or Codex CLI as a background subagent."""
639
677
  try:
@@ -254,6 +254,9 @@ class WorkflowCommandsMixin:
254
254
  if mode in {"conversation", "chat"}:
255
255
  self.cmd_undo("")
256
256
  return
257
+ if mode in {"turn", "turns", "green"}:
258
+ self._rewind_transaction(mode, identifier, assume_yes=assume_yes, is_zh=is_zh)
259
+ return
257
260
  if mode not in {"code", "both", "list"}:
258
261
  identifier = parts[0]
259
262
  mode = "code"
@@ -345,6 +348,155 @@ class WorkflowCommandsMixin:
345
348
  for path in result.restored_paths:
346
349
  print(f" {path}")
347
350
 
351
+ def _rewind_transaction(self, mode: str, ref: str, *, assume_yes: bool, is_zh: bool) -> None:
352
+ """``/rewind turns`` · ``/rewind turn [N|id]`` · ``/rewind green``.
353
+
354
+ A turn rewind puts back files, conversation, task list, approvals,
355
+ background tasks and the task worktree as they were before that turn.
356
+ """
357
+ from apps.cli import transactions
358
+ from aria_code.runtime.checkpoints import CheckpointConflictError
359
+
360
+ con = self.context.console if self.context.has_rich else None
361
+
362
+ def say(text: str, style: str = "dim") -> None:
363
+ if con is not None:
364
+ from rich.markup import escape
365
+ con.print(f"[{style}]{escape(text)}[/{style}]" if style else escape(text))
366
+ else:
367
+ print(text)
368
+
369
+ session_id = str(self.terminal.session_id or "default")
370
+ store = transactions.store()
371
+ if mode == "turns":
372
+ points = store.list(session_id)
373
+ if not points:
374
+ say("还没有可回退的轮次" if is_zh else "No turns to rewind yet")
375
+ return
376
+ say("回退点(✓ 检查通过 ✗ 失败 ≈ 仅改动前已有的失败 · 未验证)" if is_zh
377
+ else "Rewind points (✓ checks passed ✗ failed ≈ only failures that predate it · unverified)", "bold")
378
+ for line in transactions.describe(points):
379
+ say(line, "")
380
+ say("/rewind turn N · /rewind green")
381
+ return
382
+
383
+ point = store.latest_green(session_id) if mode == "green" else store.find(session_id, ref or "1")
384
+ if point is None:
385
+ if mode == "green":
386
+ say("没有检查通过的回退点" if is_zh else "No point where the checks passed")
387
+ else:
388
+ say(f"没有回退点 {ref or '1'}" if is_zh else f"No rewind point {ref or '1'}; see /rewind turns")
389
+ return
390
+ if not assume_yes:
391
+ question = (
392
+ f" 回退到第 {point.turn} 轮之前(文件、对话、待办、授权一起恢复)? [y/N] " if is_zh else
393
+ f" Rewind to before turn {point.turn} — files, conversation, tasks and approvals? [y/N] "
394
+ )
395
+ try:
396
+ answer = (con.input(question) if con is not None else input(question)).strip().lower()
397
+ except (EOFError, KeyboardInterrupt):
398
+ return
399
+ if answer not in {"y", "yes"}:
400
+ say("已取消" if is_zh else "Cancelled")
401
+ return
402
+ try:
403
+ outcome = transactions.rewind(self.terminal, point)
404
+ except CheckpointConflictError as exc:
405
+ say((f"回退已停止,未做任何改动: {exc}" if is_zh else f"Rewind stopped, nothing changed: {exc}"), "red")
406
+ return
407
+ except Exception as exc:
408
+ say((f"回退失败: {exc}" if is_zh else f"Rewind failed: {exc}"), "red")
409
+ return
410
+ for index, line in enumerate(outcome.lines()):
411
+ say(line, "green" if index == 0 else "dim")
412
+
413
+ def _workflow_workspace(self) -> str:
414
+ return self.terminal.config.get("_session_workspace_root") or os.getcwd()
415
+
416
+ def _wf_say(self, text: str, style: str = "dim") -> None:
417
+ if self.context.has_rich:
418
+ from rich.markup import escape
419
+ self.context.console.print(f"[{style}]{escape(text)}[/{style}]" if style else escape(text))
420
+ else:
421
+ print(text)
422
+
423
+ def _wf_ask(self, question: str) -> bool:
424
+ try:
425
+ answer = (self.context.console.input(question) if self.context.has_rich else input(question))
426
+ except (EOFError, KeyboardInterrupt):
427
+ return False
428
+ return answer.strip().lower() in {"y", "yes"}
429
+
430
+ async def cmd_workflow(self, args: str):
431
+ """/workflow list | show <name> | run <name> [args] | new <name>."""
432
+ from aria_code.runtime import workflows
433
+
434
+ parts = args.strip().split(maxsplit=2)
435
+ sub = parts[0].lower() if parts else "list"
436
+ name = parts[1].lstrip("/").lower() if len(parts) > 1 else ""
437
+ rest = parts[2] if len(parts) > 2 else ""
438
+ workspace = self._workflow_workspace()
439
+
440
+ if sub == "list":
441
+ found = workflows.names(workspace)
442
+ if not found:
443
+ self._wf_say("No workflows. /workflow new <name> creates .aria/workflows/<name>.yaml")
444
+ return
445
+ for item in found:
446
+ try:
447
+ workflow = workflows.find(workspace, item)
448
+ self._wf_say(f" /{item:<14} {workflow.description or ''} ({len(workflow.steps)} steps)", "")
449
+ except workflows.WorkflowError as exc:
450
+ self._wf_say(f" /{item:<14} invalid: {exc}", "red")
451
+ return
452
+ if sub == "new":
453
+ if not name:
454
+ self._wf_say("Usage: /workflow new <name>")
455
+ return
456
+ target = pathlib.Path(workspace) / ".aria" / "workflows" / f"{name}.yaml"
457
+ if target.exists():
458
+ self._wf_say(f"{target} already exists", "yellow")
459
+ return
460
+ target.parent.mkdir(parents=True, exist_ok=True)
461
+ target.write_text(workflows.TEMPLATE.format(name=name), encoding="utf-8")
462
+ self._wf_say(f"Created {target}; edit its steps, then run /{name}", "green")
463
+ return
464
+ if sub not in {"show", "run"} or not name:
465
+ self._wf_say("Usage: /workflow list | show <name> | run <name> [args] | new <name>")
466
+ return
467
+ try:
468
+ workflow = workflows.find(workspace, name)
469
+ except workflows.WorkflowError as exc:
470
+ self._wf_say(str(exc), "red")
471
+ return
472
+ if workflow is None:
473
+ self._wf_say(f"No workflow '{name}' in .aria/workflows; /workflow list", "yellow")
474
+ return
475
+ if sub == "show":
476
+ for line in workflow.outline():
477
+ self._wf_say(line, "")
478
+ return
479
+ await self._run_workflow(workflow, rest)
480
+
481
+ async def _run_workflow(self, workflow, args: str) -> None:
482
+ from aria_code.runtime.workflows import TrustStore
483
+ from aria_code.apps.cli.workflow_runner import run_workflow, summary_lines
484
+
485
+ trust = TrustStore.load()
486
+ if not trust.trusted(workflow):
487
+ self._wf_say("This workflow comes from the repository and has not run here before"
488
+ " (or its file changed). It will run:", "yellow")
489
+ for line in workflow.outline():
490
+ self._wf_say(line, "")
491
+ if not self._wf_ask(" Trust and run it? [y/N] "):
492
+ self._wf_say("Cancelled")
493
+ return
494
+ trust.trust(workflow)
495
+ results = await run_workflow(self.terminal, workflow, args, ask=self._wf_ask, say=self._wf_say)
496
+ for index, line in enumerate(summary_lines(workflow, results)):
497
+ style = ("red" if "FAILED" in line else "yellow" if "STOPPED" in line else "green") if index == 0 else "dim"
498
+ self._wf_say(line, style)
499
+
348
500
  async def cmd_retry(self, args: str):
349
501
  last_user_msg = None
350
502
  for i in range(len(self.terminal.conversation) - 1, -1, -1):
@@ -14,7 +14,10 @@ CODING_SYSTEM_PROMPT = (
14
14
  "so the top of the map is where a change most likely belongs. To locate one named thing, call "
15
15
  "`find_symbol` rather than guessing a path: it returns exact file:line definitions, plus "
16
16
  "near-miss suggestions when the name does not exist. Use `search_code`/`glob` for literal text "
17
- "and file patterns; do NOT use them to hunt for a definition you could look up directly.\n\n"
17
+ "and file patterns; do NOT use them to hunt for a definition you could look up directly. "
18
+ "Before changing a file, class or function other code may depend on, call `impact_analysis` "
19
+ "with it: it lists the files that use it, what imports those, the tests that cover them and "
20
+ "the services that ship them — check those callers instead of assuming none exist.\n\n"
18
21
 
19
22
  "## VERIFICATION IS AUTOMATIC\n"
20
23
  "After you change files and stop calling tools, the inferred checks (tests, type-check, build) "
@@ -136,9 +136,45 @@ def build_acceptance_gate(executor, config: Optional[dict] = None, message: str
136
136
  root=root,
137
137
  max_attempts=int(cfg.get("acceptance_max_attempts", 2) or 2),
138
138
  commands=_declared_acceptance_commands(cfg, message),
139
+ baseline=_build_baseline(executor, cfg, timeout),
139
140
  )
140
141
 
141
142
 
143
+ def _build_baseline(executor, cfg: dict, timeout: int):
144
+ """Reruns a failed check on the code before the change; None when off.
145
+
146
+ In a task worktree the "before" is the task's starting snapshot, in the
147
+ user's own repository. Otherwise it is the working tree with this turn's
148
+ edits undone from the checkpoints recorded after this point.
149
+ """
150
+ if not cfg.get("test_baseline", True):
151
+ return None
152
+ try:
153
+ import os
154
+
155
+ from aria_code.packages.aria_core.paths import aria_home
156
+ from aria_code.runtime.approval import ApprovalDecision
157
+ from aria_code.runtime.baseline import Baseline
158
+ from aria_code.runtime.checkpoints import CheckpointStore
159
+
160
+ context = dict(executor.execution_context() or {}) if getattr(executor, "execution_context", None) else {}
161
+ base_commit = str(context.get("_task_base") or "")
162
+ workspace = cfg.get("_session_workspace_root") or os.getcwd()
163
+
164
+ def run(command: str, cwd: str) -> dict:
165
+ return executor.execute_local("run_command", {"command": command, "cwd": cwd, "timeout": timeout},
166
+ approval=ApprovalDecision.allow(policy="balanced", user_approved=True))
167
+
168
+ return Baseline(
169
+ workspace, run=run, base_commit=base_commit,
170
+ undo_since=None if base_commit else CheckpointStore().max_sequence(),
171
+ session_id=str(context.get("_session_id") or ""),
172
+ scratch_root=aria_home() / "worktrees" / "baselines",
173
+ )
174
+ except Exception:
175
+ return None
176
+
177
+
142
178
  def build_change_contract(config: Optional[dict] = None, message: str = "", executor=None):
143
179
  """The project's change contract with this request as its goal, or None.
144
180
 
@@ -435,3 +471,40 @@ async def run_chat_via_runtime(
435
471
  review=review,
436
472
  )
437
473
  return result if return_result else result.text
474
+
475
+
476
+ def subagent_run_options(config: dict, task: Any) -> tuple[dict, dict]:
477
+ """The config and execution context a background task's turn runs under.
478
+
479
+ A task names its own workspace (its worktree, for an isolated one) and its
480
+ own mode; the session's are not its. Without this the runner sent every
481
+ task's tools to the session's directory, whatever the task said.
482
+ """
483
+ cfg = dict(config or {})
484
+ mode = str(getattr(task, "mode", "") or "read-only")
485
+ cfg["permission_mode"] = "read-only" if mode == "read-only" else "workspace-write"
486
+ context: dict = {"_session_id": str(getattr(task, "session_id", "") or "")}
487
+ workspace = str(getattr(task, "workspace", "") or "")
488
+ if workspace:
489
+ cfg["_session_workspace_root"] = workspace
490
+ context["_workspace"] = workspace
491
+ spec = getattr(task, "worktree_spec", None)
492
+ if spec is not None:
493
+ context["_workspace_origin"] = str(spec.repository)
494
+ context["_workspace_restricted"] = True
495
+ return cfg, context
496
+
497
+
498
+ async def run_subagent_turn(prompt: str, task: Any, *, local_tools, tool_schemas: List[dict],
499
+ config: dict, api_url: Optional[str]) -> str:
500
+ """Run one background task through the same runtime as a chat turn."""
501
+ cfg, context = subagent_run_options(config, task)
502
+ result = await run_chat_via_runtime(
503
+ prompt=prompt, history=[], local_tools=local_tools, tool_schemas=tool_schemas,
504
+ model=str(cfg.get("model") or ""), config=cfg, api_url=api_url,
505
+ ollama_url=str(cfg.get("ollama_url") or "http://localhost:11434"),
506
+ execution_context=lambda: dict(context), return_result=True,
507
+ )
508
+ if getattr(result, "error", None) and not str(getattr(result, "text", "") or "").strip():
509
+ raise RuntimeError(str(result.error))
510
+ return str(getattr(result, "text", "") or "")