aria-code 0.126.0__tar.gz → 0.128.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 (857) hide show
  1. {aria_code-0.126.0/src/aria_code.egg-info → aria_code-0.128.0}/PKG-INFO +3 -2
  2. {aria_code-0.126.0 → aria_code-0.128.0}/README.md +2 -1
  3. {aria_code-0.126.0 → aria_code-0.128.0}/pyproject.toml +1 -1
  4. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/__init__.py +14 -6
  5. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/_version.py +1 -1
  6. aria_code-0.128.0/src/aria_code/apps/cli/native_bridge.py +118 -0
  7. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/write_tools.py +3 -3
  8. aria_code-0.128.0/src/aria_code/runtime/native_index.py +66 -0
  9. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/project_graph.py +13 -4
  10. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace/files.py +2 -2
  11. {aria_code-0.126.0 → aria_code-0.128.0/src/aria_code.egg-info}/PKG-INFO +3 -2
  12. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code.egg-info/SOURCES.txt +6 -0
  13. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_edit_and_command_safety.py +21 -0
  14. aria_code-0.128.0/tests/test_frozen_module_aliases.py +56 -0
  15. aria_code-0.128.0/tests/test_native_bridge.py +99 -0
  16. aria_code-0.128.0/tests/test_native_index.py +139 -0
  17. aria_code-0.128.0/tests/test_rust_cli.py +151 -0
  18. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workspace_files.py +19 -0
  19. {aria_code-0.126.0 → aria_code-0.128.0}/LICENSE +0 -0
  20. {aria_code-0.126.0 → aria_code-0.128.0}/NOTICE +0 -0
  21. {aria_code-0.126.0 → aria_code-0.128.0}/setup.cfg +0 -0
  22. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/adk_apps/__init__.py +0 -0
  23. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
  24. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
  25. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
  26. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
  27. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/__init__.py +0 -0
  28. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/base.py +0 -0
  29. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/code_review.py +0 -0
  30. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/__init__.py +0 -0
  31. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
  32. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/critic.py +0 -0
  33. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/deepen.py +0 -0
  34. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/models.py +0 -0
  35. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/pipeline.py +0 -0
  36. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
  37. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/themes.py +0 -0
  38. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/deep/tiers.py +0 -0
  39. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/engineering/__init__.py +0 -0
  40. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/engineering/coder.py +0 -0
  41. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/engineering/tester.py +0 -0
  42. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/__init__.py +0 -0
  43. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
  44. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/catalyst.py +0 -0
  45. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
  46. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/debate.py +0 -0
  47. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/earnings.py +0 -0
  48. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/fundamental.py +0 -0
  49. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/macro.py +0 -0
  50. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/news.py +0 -0
  51. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/risk.py +0 -0
  52. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/sector.py +0 -0
  53. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/strategist.py +0 -0
  54. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
  55. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/synthesis.py +0 -0
  56. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/financial/technical.py +0 -0
  57. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/orchestrator.py +0 -0
  58. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/portfolio_agent.py +0 -0
  59. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/__init__.py +0 -0
  60. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
  61. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/business_match.py +0 -0
  62. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
  63. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
  64. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
  65. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
  66. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
  67. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
  68. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
  69. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/registry.py +0 -0
  70. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/signal_scheme.py +0 -0
  71. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/sports/__init__.py +0 -0
  72. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/sports/football_agent.py +0 -0
  73. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/supervisor.py +0 -0
  74. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/team.py +0 -0
  75. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
  76. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
  77. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
  78. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
  79. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
  80. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
  81. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
  82. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
  83. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
  84. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
  85. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
  86. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aliyun_data_client.py +0 -0
  87. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/README.md +0 -0
  88. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/__init__.py +0 -0
  89. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/README.md +0 -0
  90. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/__init__.py +0 -0
  91. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/approvals.py +0 -0
  92. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/conversation.py +0 -0
  93. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/digest.py +0 -0
  94. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/intake.py +0 -0
  95. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/registry.py +0 -0
  96. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/channels/tradingview.py +0 -0
  97. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/README.md +0 -0
  98. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/__init__.py +0 -0
  99. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/_optional.py +0 -0
  100. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
  101. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/broker_render.py +0 -0
  102. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/chat_turn.py +0 -0
  103. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
  104. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
  105. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
  106. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
  107. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
  108. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
  109. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
  110. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
  111. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
  112. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
  113. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
  114. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
  115. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
  116. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
  117. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
  118. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
  119. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
  120. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
  121. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
  122. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/market.py +0 -0
  123. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
  124. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
  125. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
  126. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
  127. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
  128. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
  129. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
  130. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
  131. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/report.py +0 -0
  132. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
  133. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
  134. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
  135. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/team.py +0 -0
  136. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
  137. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
  138. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
  139. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
  140. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
  141. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/config_paths.py +0 -0
  142. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/config_store.py +0 -0
  143. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/constants.py +0 -0
  144. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/context.py +0 -0
  145. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/deterministic.py +0 -0
  146. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/direct.py +0 -0
  147. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
  148. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/exec_events.py +0 -0
  149. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
  150. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/football_reports.py +0 -0
  151. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
  152. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/google_login.py +0 -0
  153. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
  154. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
  155. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
  156. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
  157. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
  158. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
  159. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
  160. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/headless.py +0 -0
  161. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/helpers.py +0 -0
  162. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/hooks.py +0 -0
  163. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/i18n.py +0 -0
  164. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/intent.py +0 -0
  165. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/intent_router.py +0 -0
  166. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
  167. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
  168. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
  169. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/main.py +0 -0
  170. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/market_hours.py +0 -0
  171. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
  172. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/market_universe.py +0 -0
  173. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/message_processing.py +0 -0
  174. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
  175. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
  176. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/model_probe.py +0 -0
  177. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/model_retirement.py +0 -0
  178. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
  179. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
  180. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
  181. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
  182. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/preflight.py +0 -0
  183. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/project_aria.py +0 -0
  184. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
  185. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
  186. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
  187. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
  188. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
  189. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
  190. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
  191. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
  192. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
  193. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/base.py +0 -0
  194. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
  195. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
  196. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
  197. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
  198. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
  199. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
  200. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
  201. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
  202. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
  203. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/release_download.py +0 -0
  204. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/review_runner.py +0 -0
  205. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
  206. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/sandbox.py +0 -0
  207. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/session_export.py +0 -0
  208. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
  209. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/session_store.py +0 -0
  210. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
  211. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/task_isolation.py +0 -0
  212. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
  213. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
  214. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
  215. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
  216. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
  217. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
  218. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/context.py +0 -0
  219. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
  220. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
  221. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
  222. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
  223. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
  224. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/transactions.py +0 -0
  225. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
  226. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/update_check.py +0 -0
  227. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/updater.py +0 -0
  228. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
  229. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
  230. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/workflow_runner.py +0 -0
  231. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
  232. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/daemon/README.md +0 -0
  233. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/vscode/README.md +0 -0
  234. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/apps/vscode/package.json +0 -0
  235. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_cli.py +0 -0
  236. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_daemon.py +0 -0
  237. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_feishu_bot.py +0 -0
  238. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_mcp_server.py +0 -0
  239. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_relay_client.py +0 -0
  240. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_relay_server.py +0 -0
  241. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/aria_telegram_bot.py +0 -0
  242. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ariarc.py +0 -0
  243. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/artifacts.py +0 -0
  244. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/backtest_engine.py +0 -0
  245. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/backtest_report.py +0 -0
  246. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/__init__.py +0 -0
  247. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/automation.py +0 -0
  248. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/base.py +0 -0
  249. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/capabilities.py +0 -0
  250. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/cn/__init__.py +0 -0
  251. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
  252. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
  253. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
  254. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
  255. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
  256. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/config.py +0 -0
  257. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/intl/__init__.py +0 -0
  258. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
  259. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
  260. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
  261. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
  262. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/paper_broker.py +0 -0
  263. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/planning.py +0 -0
  264. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/registry.py +0 -0
  265. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/brokers/trading.py +0 -0
  266. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/canva_client.py +0 -0
  267. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/change_store.py +0 -0
  268. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/__init__.py +0 -0
  269. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
  270. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/aria_relay_client.py +0 -0
  271. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/canva_client.py +0 -0
  272. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/figma_client.py +0 -0
  273. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/football_data_client.py +0 -0
  274. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/kling_video_client.py +0 -0
  275. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/market_data_client.py +0 -0
  276. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/openai_image_client.py +0 -0
  277. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/runway_video_client.py +0 -0
  278. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
  279. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/cloud_memory.py +0 -0
  280. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/command_safety.py +0 -0
  281. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/computer_use_tools.py +0 -0
  282. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/dashboard_generator.py +0 -0
  283. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/data_analysis_tools.py +0 -0
  284. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/data_cleaner.py +0 -0
  285. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/data_service.py +0 -0
  286. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/__init__.py +0 -0
  287. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/base.py +0 -0
  288. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/router.py +0 -0
  289. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/__init__.py +0 -0
  290. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
  291. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
  292. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
  293. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
  294. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
  295. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
  296. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
  297. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
  298. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
  299. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/demo_player.py +0 -0
  300. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/doctor.py +0 -0
  301. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/domain/__init__.py +0 -0
  302. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/domain/backtest_engine.py +0 -0
  303. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/domain/backtest_report.py +0 -0
  304. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/domain/finance_formulas.py +0 -0
  305. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
  306. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/domain/strategy_vault.py +0 -0
  307. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/__init__.py +0 -0
  308. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/behavior.py +0 -0
  309. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/gap.py +0 -0
  310. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/harness.py +0 -0
  311. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/review_probe.py +0 -0
  312. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/runner.py +0 -0
  313. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/evals/summary.py +0 -0
  314. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/external_agent_runner.py +0 -0
  315. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/figma_client.py +0 -0
  316. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/file_analysis_tools.py +0 -0
  317. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/finance_formulas.py +0 -0
  318. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/football_data_client.py +0 -0
  319. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/image_gen_tools.py +0 -0
  320. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/intent_classifier.py +0 -0
  321. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/kling_video_client.py +0 -0
  322. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/licensing.py +0 -0
  323. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/local_finance_tools.py +0 -0
  324. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/local_image_provider.py +0 -0
  325. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/local_llm_provider.py +0 -0
  326. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/macro_tools.py +0 -0
  327. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/markdown_pdf.py +0 -0
  328. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/market_data_client.py +0 -0
  329. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/mcp_client.py +0 -0
  330. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/memory_manager.py +0 -0
  331. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/model_capability.py +0 -0
  332. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/notification_tools.py +0 -0
  333. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/openai_image_client.py +0 -0
  334. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/__init__.py +0 -0
  335. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
  336. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
  337. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
  338. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
  339. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
  340. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
  341. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
  342. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_core/export.py +0 -0
  343. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
  344. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_core/paths.py +0 -0
  345. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
  346. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
  347. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
  348. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
  349. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_infra/product.py +0 -0
  350. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
  351. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
  352. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
  353. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
  354. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
  355. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
  356. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
  357. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
  358. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
  359. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
  360. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
  361. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
  362. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
  363. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/cache.py +0 -0
  364. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/context.py +0 -0
  365. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
  366. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/data.py +0 -0
  367. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
  368. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/references.py +0 -0
  369. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/registry.py +0 -0
  370. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
  371. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
  372. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/settings.py +0 -0
  373. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_services/usage.py +0 -0
  374. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
  375. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
  376. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
  377. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
  378. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
  379. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
  380. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
  381. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
  382. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
  383. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
  384. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
  385. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
  386. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
  387. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
  388. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
  389. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
  390. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
  391. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
  392. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
  393. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
  394. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
  395. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
  396. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
  397. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
  398. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
  399. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
  400. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
  401. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
  402. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
  403. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
  404. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
  405. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
  406. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
  407. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
  408. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
  409. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/__init__.py +0 -0
  410. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/base.py +0 -0
  411. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/finance/__init__.py +0 -0
  412. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/logistics/__init__.py +0 -0
  413. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/payments/__init__.py +0 -0
  414. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/realty/__init__.py +0 -0
  415. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/registry.py +0 -0
  416. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/packs/rules.py +0 -0
  417. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/plan_utils.py +0 -0
  418. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/plugin_loader.py +0 -0
  419. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/portfolio_ledger.py +0 -0
  420. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/preview_server.py +0 -0
  421. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/privacy/__init__.py +0 -0
  422. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/privacy/feedback.py +0 -0
  423. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/project_review.py +0 -0
  424. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/project_review_api.py +0 -0
  425. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/project_review_server.py +0 -0
  426. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/project_tools.py +0 -0
  427. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/__init__.py +0 -0
  428. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/__init__.py +0 -0
  429. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/anthropic.py +0 -0
  430. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
  431. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/base.py +0 -0
  432. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/custom.py +0 -0
  433. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/ollama.py +0 -0
  434. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
  435. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/llm/registry.py +0 -0
  436. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/local_image_provider.py +0 -0
  437. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/local_llm_provider.py +0 -0
  438. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/providers/tool_messages.py +0 -0
  439. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/realty_data_tools.py +0 -0
  440. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/relay_store.py +0 -0
  441. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/report_exporters.py +0 -0
  442. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/report_generator.py +0 -0
  443. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/review_service.py +0 -0
  444. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/__init__.py +0 -0
  445. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/acceptance.py +0 -0
  446. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/agent_loop.py +0 -0
  447. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/approval.py +0 -0
  448. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/baseline.py +0 -0
  449. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/budget.py +0 -0
  450. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/checkpoints.py +0 -0
  451. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/contract.py +0 -0
  452. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/crash_report.py +0 -0
  453. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/delivery.py +0 -0
  454. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/events.py +0 -0
  455. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/gateway.py +0 -0
  456. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/lsp.py +0 -0
  457. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/orchestrator.py +0 -0
  458. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/processes.py +0 -0
  459. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/repo_map.py +0 -0
  460. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/review.py +0 -0
  461. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/run_state.py +0 -0
  462. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/run_store.py +0 -0
  463. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/self_healing.py +0 -0
  464. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/semantic_diff.py +0 -0
  465. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/subagent.py +0 -0
  466. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/symbol_edit.py +0 -0
  467. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/task_ledger.py +0 -0
  468. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
  469. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/task_worktree.py +0 -0
  470. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/tool_executor.py +0 -0
  471. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/tool_policy.py +0 -0
  472. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/transactions.py +0 -0
  473. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/windows_job.py +0 -0
  474. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/workflows.py +0 -0
  475. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runtime/worktrees.py +0 -0
  476. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/runway_video_client.py +0 -0
  477. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/safety/__init__.py +0 -0
  478. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/safety/client_isolation.py +0 -0
  479. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/safety/permissions.py +0 -0
  480. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/safety/risk.py +0 -0
  481. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/safety/sandbox.py +0 -0
  482. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/safety/service.py +0 -0
  483. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/setup_wizard.py +0 -0
  484. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/spreadsheet_tools.py +0 -0
  485. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/strategy_vault.py +0 -0
  486. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/__init__.py +0 -0
  487. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/artifact_tools.py +0 -0
  488. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/broker_tools.py +0 -0
  489. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/build_quant_engine.py +0 -0
  490. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/code_audit_tools.py +0 -0
  491. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/computer_use_tools.py +0 -0
  492. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
  493. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
  494. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/extended_tools.py +0 -0
  495. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
  496. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/image_gen_tools.py +0 -0
  497. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/local_finance_tools.py +0 -0
  498. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/logistics_carriers.py +0 -0
  499. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/logistics_inventory.py +0 -0
  500. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/logistics_io.py +0 -0
  501. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
  502. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/logistics_tools.py +0 -0
  503. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/macro_tools.py +0 -0
  504. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/notification_tools.py +0 -0
  505. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/project_tools.py +0 -0
  506. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/realty_data_tools.py +0 -0
  507. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
  508. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/tools/stripe_tools.py +0 -0
  509. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/training/__init__.py +0 -0
  510. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/training/compare.py +0 -0
  511. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/training/sft_dataset.py +0 -0
  512. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/__init__.py +0 -0
  513. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/banner.py +0 -0
  514. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/completer.py +0 -0
  515. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/console.py +0 -0
  516. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/input_box.py +0 -0
  517. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/mentions.py +0 -0
  518. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/picker.py +0 -0
  519. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/__init__.py +0 -0
  520. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/actions.py +0 -0
  521. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/finance.py +0 -0
  522. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/market.py +0 -0
  523. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/output.py +0 -0
  524. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/responsive.py +0 -0
  525. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/render/team.py +0 -0
  526. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/robot.py +0 -0
  527. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/ui/startup_dashboard.py +0 -0
  528. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/utils/vscode_uri.py +0 -0
  529. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/video_analysis.py +0 -0
  530. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/video_editor.py +0 -0
  531. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace/__init__.py +0 -0
  532. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace/verify.py +0 -0
  533. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace_changes.py +0 -0
  534. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace_context.py +0 -0
  535. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace_service.py +0 -0
  536. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code/workspace_tools.py +0 -0
  537. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
  538. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code.egg-info/entry_points.txt +0 -0
  539. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code.egg-info/requires.txt +0 -0
  540. {aria_code-0.126.0 → aria_code-0.128.0}/src/aria_code.egg-info/top_level.txt +0 -0
  541. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_action_view.py +0 -0
  542. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_adk_market_tools.py +0 -0
  543. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_agent_key_points_language.py +0 -0
  544. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_agent_team_fallback.py +0 -0
  545. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_analyze_file_tool.py +0 -0
  546. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_architecture_ledger_is_true.py +0 -0
  547. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_architecture_report.py +0 -0
  548. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_aria_cli_core.py +0 -0
  549. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_aria_mcp_server.py +0 -0
  550. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_aria_sdk.py +0 -0
  551. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_artifact_publishing.py +0 -0
  552. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_artifacts_and_reports.py +0 -0
  553. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ashare_prediction_cmds.py +0 -0
  554. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_background_processes.py +0 -0
  555. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_backtest_cmds.py +0 -0
  556. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_backtest_engine.py +0 -0
  557. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_backtest_report.py +0 -0
  558. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_backtest_runs_what_it_names.py +0 -0
  559. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_baseline.py +0 -0
  560. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
  561. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_broken_akshare_is_optional.py +0 -0
  562. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_broker_automation.py +0 -0
  563. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_broker_chat_confirm_gate.py +0 -0
  564. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_broker_planning.py +0 -0
  565. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_broker_safety.py +0 -0
  566. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_broker_tools.py +0 -0
  567. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_budget.py +0 -0
  568. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_business_workflow_cmds.py +0 -0
  569. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_callback_provider_cleanup.py +0 -0
  570. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_canva_client.py +0 -0
  571. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_canvas_cmds.py +0 -0
  572. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_card_approvals.py +0 -0
  573. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_change_contract.py +0 -0
  574. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_channel_intake.py +0 -0
  575. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_channels.py +0 -0
  576. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_chart_handlers.py +0 -0
  577. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_chat_bots_fail_closed.py +0 -0
  578. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_chat_routing.py +0 -0
  579. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_checkpoints_since.py +0 -0
  580. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ci_security_workflow.py +0 -0
  581. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_app_split.py +0 -0
  582. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_bootstrap.py +0 -0
  583. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_config_store.py +0 -0
  584. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_lifecycle_hooks.py +0 -0
  585. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_runtime_consumer.py +0 -0
  586. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_tool_executor_module.py +0 -0
  587. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cli_updater.py +0 -0
  588. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_client_isolation_guard.py +0 -0
  589. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_cloud_memory.py +0 -0
  590. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_code_audit_tools.py +0 -0
  591. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_code_review_agent.py +0 -0
  592. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_codegen_output.py +0 -0
  593. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_coder_tester_self_healing.py +0 -0
  594. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_coder_tool_safety.py +0 -0
  595. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_collaboration.py +0 -0
  596. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_command_loggers.py +0 -0
  597. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_command_safety.py +0 -0
  598. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_compare_strategies.py +0 -0
  599. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_completions_builder.py +0 -0
  600. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_config_paths.py +0 -0
  601. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_configured_provider.py +0 -0
  602. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_container_entrypoint.py +0 -0
  603. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_container_entrypoints.py +0 -0
  604. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_context_checkpoints.py +0 -0
  605. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_context_references.py +0 -0
  606. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_context_service.py +0 -0
  607. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_conversation_core.py +0 -0
  608. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_crash_report.py +0 -0
  609. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_credential_file_permissions.py +0 -0
  610. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_custom_providers.py +0 -0
  611. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_daemon_gateway_config.py +0 -0
  612. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_dashboard_generator.py +0 -0
  613. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_data_service.py +0 -0
  614. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_data_service_imports.py +0 -0
  615. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_data_without_model.py +0 -0
  616. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_datasource_routing.py +0 -0
  617. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_deep_analysis.py +0 -0
  618. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_degrades_without_quant_engine.py +0 -0
  619. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_delivery_report.py +0 -0
  620. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
  621. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_doctor.py +0 -0
  622. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_doctor_describes_the_current_install.py +0 -0
  623. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_doctor_npm_scope.py +0 -0
  624. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_doctor_sandbox.py +0 -0
  625. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_engine_boundary.py +0 -0
  626. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_english_output_group.py +0 -0
  627. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_enterprise_tool_honesty.py +0 -0
  628. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_env_switch_docs.py +0 -0
  629. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_eval_behavior.py +0 -0
  630. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_eval_hard_suite.py +0 -0
  631. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_eval_holdout.py +0 -0
  632. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_eval_summary.py +0 -0
  633. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_eval_task_bank.py +0 -0
  634. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_eval_trajectories.py +0 -0
  635. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_evals_harness.py +0 -0
  636. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_event_import_roots.py +0 -0
  637. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_exec_events.py +0 -0
  638. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_extended_tools.py +0 -0
  639. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_feishu_swarm_config.py +0 -0
  640. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_file_links.py +0 -0
  641. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_finalize_release.py +0 -0
  642. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_finance_renderers.py +0 -0
  643. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_finance_service_catalog.py +0 -0
  644. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_first_run_output.py +0 -0
  645. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_first_run_works.py +0 -0
  646. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_football_agent.py +0 -0
  647. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_football_prediction_output.py +0 -0
  648. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_gemini_retirement.py +0 -0
  649. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_google_cloud_models.py +0 -0
  650. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_google_cloud_routing.py +0 -0
  651. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_google_login.py +0 -0
  652. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_google_search_provider.py +0 -0
  653. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_headless_command_approval.py +0 -0
  654. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_headless_is_agentic.py +0 -0
  655. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_honest_surfaces.py +0 -0
  656. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_image_gen_tools.py +0 -0
  657. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_image_inputs.py +0 -0
  658. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_import_aliasing.py +0 -0
  659. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_import_graph_budget.py +0 -0
  660. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_intent_router.py +0 -0
  661. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_intent_signals.py +0 -0
  662. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_kling_video_client.py +0 -0
  663. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_lazy_rebind.py +0 -0
  664. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_legacy_module_imports.py +0 -0
  665. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_license_consistency.py +0 -0
  666. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_licensing.py +0 -0
  667. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_linux_sandbox_integration.py +0 -0
  668. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_local_image_provider.py +0 -0
  669. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_local_workspace_execution.py +0 -0
  670. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_logistics_3pl.py +0 -0
  671. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_logistics_and_finance_agents.py +0 -0
  672. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_lsp.py +0 -0
  673. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_markdown_pdf.py +0 -0
  674. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_answers_in_english.py +0 -0
  675. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_data_client.py +0 -0
  676. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_history_inheritance.py +0 -0
  677. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_history_tool.py +0 -0
  678. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_hours.py +0 -0
  679. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_questions_on_backend.py +0 -0
  680. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_symbol_extraction.py +0 -0
  681. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_market_universe.py +0 -0
  682. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_mcp_circuit.py +0 -0
  683. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_mcp_client.py +0 -0
  684. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_mentions.py +0 -0
  685. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_model_capability_registry.py +0 -0
  686. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_model_choice_is_the_users.py +0 -0
  687. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_model_probe.py +0 -0
  688. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_model_selection_state.py +0 -0
  689. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_narrow_chinese_output.py +0 -0
  690. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_native_binary_entrypoints.py +0 -0
  691. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_native_installer.py +0 -0
  692. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_natural_language_routing.py +0 -0
  693. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_new_modules.py +0 -0
  694. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
  695. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_no_tools_route.py +0 -0
  696. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_no_uncommitted_imports.py +0 -0
  697. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_numeric_listings.py +0 -0
  698. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ollama_stream_imports.py +0 -0
  699. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ollama_stream_tools.py +0 -0
  700. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_openai_image_client.py +0 -0
  701. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_operations_suite.py +0 -0
  702. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_os_sandbox.py +0 -0
  703. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_output_discipline_prompt.py +0 -0
  704. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_output_rendering.py +0 -0
  705. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_packages_facade.py +0 -0
  706. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_packaging_constraints.py +0 -0
  707. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_packaging_manifest.py +0 -0
  708. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_packs_domains.py +0 -0
  709. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_pdf_report.py +0 -0
  710. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_pick_best_installed_model.py +0 -0
  711. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_plan_mode.py +0 -0
  712. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_platform_package_assembly.py +0 -0
  713. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_platform_packages.py +0 -0
  714. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_platform_publish.py +0 -0
  715. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_plotly_html_output.py +0 -0
  716. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_portfolio_language.py +0 -0
  717. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_portfolio_ledger.py +0 -0
  718. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_post_turn_context_decision.py +0 -0
  719. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_preflight.py +0 -0
  720. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_preview_server.py +0 -0
  721. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_privacy_feedback.py +0 -0
  722. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_project_aria.py +0 -0
  723. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_project_context_files.py +0 -0
  724. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_project_graph.py +0 -0
  725. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_project_review.py +0 -0
  726. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_project_review_api.py +0 -0
  727. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_prompt_assembly.py +0 -0
  728. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_prompt_dates.py +0 -0
  729. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_prompt_selection.py +0 -0
  730. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_provider_autoconfig.py +0 -0
  731. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_provider_error_classification.py +0 -0
  732. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_provider_error_messages.py +0 -0
  733. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_provider_integration.py +0 -0
  734. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_provider_registry.py +0 -0
  735. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_public_service_status.py +0 -0
  736. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_quant_engine_namespace.py +0 -0
  737. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_rebind_contract.py +0 -0
  738. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_rebind_namespace_contract.py +0 -0
  739. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_relay_client_credentials.py +0 -0
  740. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_relay_event_verification.py +0 -0
  741. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_relay_sends_for_clients.py +0 -0
  742. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_relay_store.py +0 -0
  743. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_relay_url.py +0 -0
  744. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_badges.py +0 -0
  745. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_chain.py +0 -0
  746. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_commit_identity.py +0 -0
  747. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_download.py +0 -0
  748. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_push_is_atomic.py +0 -0
  749. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_reaches_the_registries.py +0 -0
  750. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_verification_waits.py +0 -0
  751. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_release_workflow_permissions.py +0 -0
  752. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_report_charts.py +0 -0
  753. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_report_generator.py +0 -0
  754. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_report_prompt_language.py +0 -0
  755. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_research_protocol.py +0 -0
  756. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_research_quality.py +0 -0
  757. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_responsive_rendering.py +0 -0
  758. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_review_gate.py +0 -0
  759. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_review_service.py +0 -0
  760. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_risk_approval.py +0 -0
  761. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_risk_assessment.py +0 -0
  762. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_risk_earnings_ops.py +0 -0
  763. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_robot_artwork.py +0 -0
  764. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_root_module_budget.py +0 -0
  765. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_rsi_without_pandas_ta.py +0 -0
  766. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_run_store_redaction.py +0 -0
  767. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_acceptance.py +0 -0
  768. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_agent_loop.py +0 -0
  769. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_approval.py +0 -0
  770. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_bridge.py +0 -0
  771. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_bridge_fallback.py +0 -0
  772. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_checkpoints.py +0 -0
  773. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_event_identity.py +0 -0
  774. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_gateway.py +0 -0
  775. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_repo_map.py +0 -0
  776. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_run_store.py +0 -0
  777. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_tool_executor.py +0 -0
  778. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runtime_worktrees.py +0 -0
  779. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_runway_video_client.py +0 -0
  780. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_safety_permissions.py +0 -0
  781. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_safety_service.py +0 -0
  782. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_safety_service_adoption.py +0 -0
  783. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_semantic_diff.py +0 -0
  784. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_service_diagnostics_security.py +0 -0
  785. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_session_search.py +0 -0
  786. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_settings_service.py +0 -0
  787. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_shell_commands_as_written.py +0 -0
  788. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_shipper_digest.py +0 -0
  789. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_single_import_root.py +0 -0
  790. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_skill_agent_binding.py +0 -0
  791. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_skill_catalog.py +0 -0
  792. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_skill_loader.py +0 -0
  793. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_slash_popup.py +0 -0
  794. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_spreadsheet_tools.py +0 -0
  795. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_sse_http_roundtrip.py +0 -0
  796. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_sse_stream_contract.py +0 -0
  797. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_startup_dashboard.py +0 -0
  798. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_startup_keeps_cloud_model.py +0 -0
  799. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_startup_latency.py +0 -0
  800. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_status_language.py +0 -0
  801. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_streaming_pipeline.py +0 -0
  802. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_stripe_agent.py +0 -0
  803. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_subagent.py +0 -0
  804. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_subagent_workspace.py +0 -0
  805. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_supervisor_routing.py +0 -0
  806. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_symbol_edit.py +0 -0
  807. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_system_prompts.py +0 -0
  808. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_system_tools_output.py +0 -0
  809. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_task_isolation_turn.py +0 -0
  810. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_task_orchestrator.py +0 -0
  811. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_task_restore_startup.py +0 -0
  812. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_task_worktree.py +0 -0
  813. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_team_analysts.py +0 -0
  814. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_team_synthesis.py +0 -0
  815. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_terminal_mixins.py +0 -0
  816. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_terminal_snapshots.py +0 -0
  817. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_tls_trust_store.py +0 -0
  818. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_tool_policy.py +0 -0
  819. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
  820. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_tool_scope.py +0 -0
  821. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_tool_step_output.py +0 -0
  822. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_trading_service.py +0 -0
  823. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_tradingview_bridge.py +0 -0
  824. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_training_pipeline.py +0 -0
  825. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_transactions.py +0 -0
  826. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_transactions_turn.py +0 -0
  827. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_turn_planning.py +0 -0
  828. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ui_completer_references.py +0 -0
  829. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ui_console_theme.py +0 -0
  830. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ui_input_box.py +0 -0
  831. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ui_language_and_model.py +0 -0
  832. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_ui_robot_banner.py +0 -0
  833. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_update_health_routes.py +0 -0
  834. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_verification_hint.py +0 -0
  835. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_verification_policy.py +0 -0
  836. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_verification_runner_selection.py +0 -0
  837. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_version_consistency.py +0 -0
  838. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_version_counter.py +0 -0
  839. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_vertex_busy_retry.py +0 -0
  840. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_vertex_empty_rounds.py +0 -0
  841. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_vertex_models.py +0 -0
  842. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_vertexai_tool_history.py +0 -0
  843. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_video_analysis.py +0 -0
  844. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_video_editor.py +0 -0
  845. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_vscode_mcp.py +0 -0
  846. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_warehouse_agents.py +0 -0
  847. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_warehouse_cli_registration.py +0 -0
  848. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_warehouse_erp_client.py +0 -0
  849. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_warehouse_workflow.py +0 -0
  850. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_wheel_is_installable.py +0 -0
  851. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workflows.py +0 -0
  852. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workspace_changes.py +0 -0
  853. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workspace_context.py +0 -0
  854. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workspace_scope.py +0 -0
  855. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workspace_service.py +0 -0
  856. {aria_code-0.126.0 → aria_code-0.128.0}/tests/test_workspace_verify.py +0 -0
  857. {aria_code-0.126.0 → aria_code-0.128.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.126.0
3
+ Version: 0.128.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.126.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.126.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.128.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.128.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>
@@ -281,6 +281,7 @@ Install extras only for features you use; see [pyproject.toml](pyproject.toml) f
281
281
  | Topic | Start here |
282
282
  | --- | --- |
283
283
  | Architecture and runtime | [Architecture](docs/architecture.md) |
284
+ | Opt-in Rust CLI prototype and migration stages | [Rust CLI migration](docs/rust-cli-migration.md) |
284
285
  | Tool permissions and data boundaries | [Safety notes](docs/aria-code-safety.md) |
285
286
  | Warehouse agents and their read-only data contract | [Warehouse ERP agents](docs/warehouse-erp-agents.md) |
286
287
  | Strategy and backtesting workflows | [Strategy workspace](docs/strategy_workspace.md) |
@@ -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.126.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.126.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.128.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.128.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>
@@ -124,6 +124,7 @@ Install extras only for features you use; see [pyproject.toml](pyproject.toml) f
124
124
  | Topic | Start here |
125
125
  | --- | --- |
126
126
  | Architecture and runtime | [Architecture](docs/architecture.md) |
127
+ | Opt-in Rust CLI prototype and migration stages | [Rust CLI migration](docs/rust-cli-migration.md) |
127
128
  | Tool permissions and data boundaries | [Safety notes](docs/aria-code-safety.md) |
128
129
  | Warehouse agents and their read-only data contract | [Warehouse ERP agents](docs/warehouse-erp-agents.md) |
129
130
  | Strategy and backtesting workflows | [Strategy workspace](docs/strategy_workspace.md) |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "aria-code"
7
- version = "0.126.0"
7
+ version = "0.128.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" }
@@ -66,12 +66,20 @@ class _OneModulePerFile(_importlib_abc.MetaPathFinder, _importlib_abc.Loader):
66
66
  def __init__(self, root: str) -> None:
67
67
  self._own: dict = {}
68
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
- }
69
+ if not getattr(_sys, "frozen", False) and _os.path.isdir(root):
70
+ self.names = {
71
+ entry[:-3] if entry.endswith(".py") else entry
72
+ for entry in _os.listdir(root)
73
+ if entry != "__init__.py" and not entry.startswith(("_", "."))
74
+ and (entry.endswith(".py") or _os.path.isfile(_os.path.join(root, entry, "__init__.py")))
75
+ }
76
+ else:
77
+ # Frozen Python modules live in PYZ, not a physical source tree.
78
+ # PyInstaller's pkgutil hook enumerates that archive even when the
79
+ # package directory is absent, or contains only bundled data files.
80
+ from pkgutil import iter_modules
81
+ self.names = {module.name for module in iter_modules([root])
82
+ if not module.name.startswith(("_", "."))}
75
83
 
76
84
  def find_spec(self, fullname, path=None, target=None):
77
85
  if fullname.partition(".")[0] not in self.names:
@@ -17,4 +17,4 @@ from __future__ import annotations
17
17
 
18
18
  __all__ = ["__version__"]
19
19
 
20
- __version__ = "0.126.0"
20
+ __version__ = "0.128.0"
@@ -0,0 +1,118 @@
1
+ """Experimental, workspace-confined JSON-RPC worker for the Rust CLI.
2
+
3
+ The host selects the workspace and approves one named write via process flags.
4
+ Request parameters never establish permissions. Existing CLI handlers retain
5
+ their diff, change-store and verification behavior; stdout is protocol only.
6
+ """
7
+ from __future__ import annotations
8
+
9
+ import argparse
10
+ import contextlib
11
+ import json
12
+ import sys
13
+ from pathlib import Path
14
+ from typing import Any
15
+
16
+ MAX_MESSAGE = 1_048_576
17
+ READ_TOOLS = frozenset({"read_file", "list_files", "search_code"})
18
+ WRITE_TOOLS = frozenset({"write_file", "edit_file"})
19
+
20
+
21
+ def error(code: int, message: str, request_id: Any = None) -> dict:
22
+ return {"jsonrpc": "2.0", "id": request_id, "error": {"code": code, "message": message}}
23
+
24
+
25
+ def execute(name: str, arguments: dict, workspace: Path, approved_tool: str | None) -> dict:
26
+ from aria_code.runtime.approval import ApprovalDecision
27
+ from aria_code.runtime.tool_executor import ToolExecutor
28
+ from aria_code.runtime.tool_policy import check_tool_policy
29
+
30
+ if name not in READ_TOOLS | WRITE_TOOLS:
31
+ return {"success": False, "error": f"Tool not exposed by native bridge: {name}"}
32
+ verdict = check_tool_policy(name)
33
+ if verdict == "deny":
34
+ return {"success": False, "error": "Blocked by persistent tool policy"}
35
+ approved = name in WRITE_TOOLS and name == approved_tool
36
+ if verdict == "ask" and not approved:
37
+ return {"success": False, "error": "Tool requires explicit approval; use the interactive Python CLI"}
38
+ if name in WRITE_TOOLS and not approved:
39
+ return {"success": False, "error": "Writes require host --approve-write for this invocation"}
40
+ def handler(params: dict) -> dict:
41
+ # Load UI-dependent write code only after ToolExecutor grants the path.
42
+ if name in READ_TOOLS:
43
+ from aria_code.apps.cli.tools import file_tools
44
+ return getattr(file_tools, "tool_" + name)(params)
45
+ from aria_code.apps.cli.tools import write_tools
46
+ cli = write_tools._ac()
47
+ console = getattr(cli, "console", None)
48
+ previous = console.file if console is not None else None
49
+ try:
50
+ if console is not None:
51
+ console.file = sys.stderr
52
+ return getattr(write_tools, "tool_" + name)(params)
53
+ finally:
54
+ if console is not None:
55
+ console.file = previous
56
+ executor = ToolExecutor(
57
+ {name: (handler,)},
58
+ config={"workspace_root": str(workspace), "permission_mode": "workspace-write" if approved else "read-only"},
59
+ execution_context=lambda: {"_workspace_restricted": True},
60
+ )
61
+ decision = ApprovalDecision.allow(user_approved=True, tool_scope=name) if approved else None
62
+ return executor.execute_local(name, arguments, approval=decision)
63
+
64
+
65
+ def dispatch(request: Any, workspace: Path, approved_tool: str | None = None) -> dict | None:
66
+ if not isinstance(request, dict):
67
+ return error(-32600, "Expected a single JSON-RPC request object")
68
+ request_id = request.get("id")
69
+ valid_id = request_id is None or isinstance(request_id, str) or type(request_id) is int
70
+ if request.get("jsonrpc") != "2.0" or not isinstance(request.get("method"), str) or not valid_id:
71
+ return error(-32600, "Invalid JSON-RPC request")
72
+ # This bridge only executes requests with an ID. Notifications never cause
73
+ # file changes and never produce a response, including unknown methods.
74
+ if "id" not in request:
75
+ return None
76
+ if request["method"] != "tools.call":
77
+ return error(-32601, "Method not found", request_id)
78
+ params = request.get("params")
79
+ if not isinstance(params, dict) or not isinstance(params.get("name"), str) or not isinstance(params.get("arguments"), dict):
80
+ return error(-32602, "Expected name and arguments object", request_id)
81
+ try:
82
+ with contextlib.redirect_stdout(sys.stderr):
83
+ result = execute(params["name"], params["arguments"], workspace, approved_tool)
84
+ return {"jsonrpc": "2.0", "id": request_id, "result": result}
85
+ except Exception as exc:
86
+ return error(-32603, f"Python tool failed: {exc}", request_id)
87
+
88
+
89
+ def main() -> None:
90
+ parser = argparse.ArgumentParser(description=__doc__)
91
+ parser.add_argument("--workspace", type=Path, required=True)
92
+ parser.add_argument("--approve-tool", choices=sorted(WRITE_TOOLS))
93
+ args = parser.parse_args()
94
+ workspace = args.workspace.expanduser().resolve(strict=True)
95
+ if not workspace.is_dir():
96
+ parser.error("workspace must be a directory")
97
+ # One request per process bounds trace memory and approval lifetime. Read
98
+ # size is bounded before JSON decoding; no unbounded readline allocation.
99
+ raw = sys.stdin.buffer.readline(MAX_MESSAGE + 1)
100
+ if len(raw) > MAX_MESSAGE:
101
+ response = error(-32600, "Request exceeds 1 MiB")
102
+ else:
103
+ try:
104
+ request = json.loads(raw)
105
+ except (ValueError, UnicodeDecodeError):
106
+ response = error(-32700, "Parse error")
107
+ else:
108
+ response = dispatch(request, workspace, args.approve_tool)
109
+ if response is not None:
110
+ encoded = json.dumps(response, ensure_ascii=True, allow_nan=False).encode("ascii")
111
+ if len(encoded) + 1 > MAX_MESSAGE:
112
+ encoded = json.dumps(error(-32603, "Response exceeds 1 MiB", response["id"])).encode("ascii")
113
+ sys.stdout.buffer.write(encoded + b"\n")
114
+ sys.stdout.buffer.flush()
115
+
116
+
117
+ if __name__ == "__main__":
118
+ main()
@@ -302,7 +302,7 @@ def _write_policy_confirm(p: pathlib.Path, content: str, existed: bool) -> tuple
302
302
  if has_rich and console:
303
303
  console.print()
304
304
  if existed:
305
- old_content = p.read_text(errors="replace")
305
+ old_content = p.read_text(encoding="utf-8", errors="replace")
306
306
  diff = list(difflib.unified_diff(
307
307
  old_content.splitlines(keepends=True),
308
308
  content.splitlines(keepends=True),
@@ -723,7 +723,7 @@ def tool_edit_file(params: dict) -> dict:
723
723
  if not _is_safe(p, params):
724
724
  return {"success": False, "error": f"Access denied: path '{p}' is outside allowed directories"}
725
725
 
726
- content = p.read_text(errors="replace")
726
+ content = p.read_text(encoding="utf-8", errors="replace")
727
727
  before_mode = _stat.S_IMODE(p.stat().st_mode)
728
728
  if content.count(old_str) == 0:
729
729
  preview = "\n".join(content.splitlines()[:10])
@@ -845,7 +845,7 @@ def tool_multi_edit(params: dict) -> dict:
845
845
  if not _is_safe(p, params):
846
846
  return {"success": False, "error": f"Access denied: path '{p}' is outside allowed directories"}
847
847
 
848
- content = p.read_text(errors="replace")
848
+ content = p.read_text(encoding="utf-8", errors="replace")
849
849
  before_mode = _stat.S_IMODE(p.stat().st_mode)
850
850
  working = content
851
851
  applied_count = 0
@@ -0,0 +1,66 @@
1
+ """Project-graph imports from the native ``aria-native index imports``.
2
+
3
+ Parsing every Python file's imports is most of the time a graph build takes
4
+ (``ast.parse`` and ``ast.walk`` per file). The Rust ``aria-graph`` crate does
5
+ the same resolution in parallel; ``project_graph`` asks it first and keeps the
6
+ Python implementation for everything it does not answer:
7
+
8
+ * no binary — ``ARIA_NATIVE_BINARY`` or ``aria-native`` on ``PATH`` — or
9
+ ``ARIA_NATIVE_GRAPH=off``;
10
+ * too few files to be worth a process (``_MIN_FILES``);
11
+ * the binary failing, timing out or answering out of shape;
12
+ * a file its parser rejects (``fallback``), which Python then parses itself.
13
+
14
+ The two implementations must agree; ``tests/test_native_index.py`` holds them
15
+ to it on this repository and on edge cases.
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import json
21
+ import os
22
+ import shutil
23
+ import subprocess
24
+ from pathlib import Path
25
+ from typing import Optional, Sequence
26
+
27
+ _MIN_FILES = 32
28
+ _TIMEOUT = 120
29
+
30
+
31
+ def native_binary() -> Optional[str]:
32
+ configured = os.environ.get("ARIA_NATIVE_BINARY", "").strip()
33
+ if configured:
34
+ return configured if Path(configured).is_file() else None
35
+ return shutil.which("aria-native")
36
+
37
+
38
+ def enabled() -> bool:
39
+ return os.environ.get("ARIA_NATIVE_GRAPH", "").strip().lower() not in ("0", "off", "false", "no")
40
+
41
+
42
+ def resolve_imports(root: Path, files: Sequence[tuple[str, str]], parse: Sequence[str],
43
+ *, minimum: Optional[int] = None) -> Optional[tuple[dict[str, list[str]], list[str]]]:
44
+ """``(imports by path, paths to parse in Python)``, or None to do it all in Python."""
45
+ if len(parse) < (_MIN_FILES if minimum is None else minimum) or not enabled():
46
+ return None
47
+ binary = native_binary()
48
+ if not binary:
49
+ return None
50
+ request = json.dumps({"root": str(root), "files": [list(f) for f in files], "parse": list(parse)})
51
+ try:
52
+ done = subprocess.run([binary, "index", "imports"], input=request, capture_output=True,
53
+ text=True, encoding="utf-8", timeout=_TIMEOUT, check=False)
54
+ if done.returncode != 0:
55
+ return None
56
+ data = json.loads(done.stdout)
57
+ except (OSError, ValueError, subprocess.SubprocessError):
58
+ return None
59
+ imports, fallback = data.get("imports"), data.get("fallback")
60
+ if not isinstance(imports, dict) or not isinstance(fallback, list):
61
+ return None
62
+ wanted = set(parse)
63
+ if not set(imports) | set(fallback) >= wanted: # every file answered one way or the other
64
+ return None
65
+ return ({path: list(found) for path, found in imports.items() if path in wanted},
66
+ [path for path in fallback if path in wanted])
@@ -42,6 +42,7 @@ from dataclasses import dataclass, field
42
42
  from pathlib import Path
43
43
  from typing import Iterable, Optional, Sequence
44
44
 
45
+ from . import native_index
45
46
  from .repo_map import RepoMap
46
47
 
47
48
  GRAPH_VERSION = 1
@@ -141,13 +142,21 @@ class ProjectGraph:
141
142
  repo = RepoMap(self.root).build()
142
143
  prior = previous.files if previous is not None else {}
143
144
  modules = _module_index(repo.files)
145
+ stale = [path for path, entry in repo.files.items()
146
+ if not ((cached := prior.get(path))
147
+ and cached.get("mtime") == entry.mtime and cached.get("size") == entry.size)]
148
+ native = native_index.resolve_imports(
149
+ self.root, [(path, entry.language) for path, entry in repo.files.items()], stale)
150
+ resolved, python_side = native if native is not None else ({}, stale)
151
+ for path in python_side:
152
+ entry = repo.files[path]
153
+ resolved[path] = _imports(self.root, path, entry.language, modules, repo.files)
144
154
  files: dict[str, dict] = {}
145
155
  for path, entry in repo.files.items():
146
- cached = prior.get(path)
147
- if cached and cached.get("mtime") == entry.mtime and cached.get("size") == entry.size:
148
- imports = cached.get("imports") or []
156
+ if path in resolved:
157
+ imports = resolved[path]
149
158
  else:
150
- imports = _imports(self.root, path, entry.language, modules, repo.files)
159
+ imports = prior[path].get("imports") or []
151
160
  files[path] = {
152
161
  "mtime": entry.mtime, "size": entry.size, "language": entry.language,
153
162
  "imports": sorted(set(imports) - {path}),
@@ -147,7 +147,7 @@ class WorkspaceFiles:
147
147
  f"File too large: {size:,} bytes (max 2 MB). "
148
148
  "Use offset/limit parameters to read sections."
149
149
  )
150
- text = target.read_text(errors="replace")
150
+ text = target.read_text(encoding="utf-8", errors="replace")
151
151
  lines = text.splitlines()
152
152
  total_lines = len(lines)
153
153
  if not offset and not limit and size > self.LARGE_FILE_BYTES:
@@ -202,7 +202,7 @@ class WorkspaceFiles:
202
202
  if not safe_file.is_file() or safe_file.stat().st_size > self.MAX_SEARCH_BYTES:
203
203
  continue
204
204
  try:
205
- lines = safe_file.read_text(errors="replace").splitlines()
205
+ lines = safe_file.read_text(encoding="utf-8", errors="replace").splitlines()
206
206
  except Exception:
207
207
  continue
208
208
  for line_number, line in enumerate(lines, 1):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aria-code
3
- Version: 0.126.0
3
+ Version: 0.128.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.126.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.126.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.128.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.128.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>
@@ -281,6 +281,7 @@ Install extras only for features you use; see [pyproject.toml](pyproject.toml) f
281
281
  | Topic | Start here |
282
282
  | --- | --- |
283
283
  | Architecture and runtime | [Architecture](docs/architecture.md) |
284
+ | Opt-in Rust CLI prototype and migration stages | [Rust CLI migration](docs/rust-cli-migration.md) |
284
285
  | Tool permissions and data boundaries | [Safety notes](docs/aria-code-safety.md) |
285
286
  | Warehouse agents and their read-only data contract | [Warehouse ERP agents](docs/warehouse-erp-agents.md) |
286
287
  | Strategy and backtesting workflows | [Strategy workspace](docs/strategy_workspace.md) |
@@ -187,6 +187,7 @@ src/aria_code/apps/cli/mixin_binding.py
187
187
  src/aria_code/apps/cli/model_catalog.py
188
188
  src/aria_code/apps/cli/model_probe.py
189
189
  src/aria_code/apps/cli/model_retirement.py
190
+ src/aria_code/apps/cli/native_bridge.py
190
191
  src/aria_code/apps/cli/pdf_report.py
191
192
  src/aria_code/apps/cli/plan_mode.py
192
193
  src/aria_code/apps/cli/plotly_html.py
@@ -456,6 +457,7 @@ src/aria_code/runtime/delivery.py
456
457
  src/aria_code/runtime/events.py
457
458
  src/aria_code/runtime/gateway.py
458
459
  src/aria_code/runtime/lsp.py
460
+ src/aria_code/runtime/native_index.py
459
461
  src/aria_code/runtime/orchestrator.py
460
462
  src/aria_code/runtime/processes.py
461
463
  src/aria_code/runtime/project_graph.py
@@ -636,6 +638,7 @@ tests/test_first_run_output.py
636
638
  tests/test_first_run_works.py
637
639
  tests/test_football_agent.py
638
640
  tests/test_football_prediction_output.py
641
+ tests/test_frozen_module_aliases.py
639
642
  tests/test_gemini_retirement.py
640
643
  tests/test_google_cloud_models.py
641
644
  tests/test_google_cloud_routing.py
@@ -679,6 +682,8 @@ tests/test_model_probe.py
679
682
  tests/test_model_selection_state.py
680
683
  tests/test_narrow_chinese_output.py
681
684
  tests/test_native_binary_entrypoints.py
685
+ tests/test_native_bridge.py
686
+ tests/test_native_index.py
682
687
  tests/test_native_installer.py
683
688
  tests/test_natural_language_routing.py
684
689
  tests/test_new_modules.py
@@ -768,6 +773,7 @@ tests/test_runtime_run_store.py
768
773
  tests/test_runtime_tool_executor.py
769
774
  tests/test_runtime_worktrees.py
770
775
  tests/test_runway_video_client.py
776
+ tests/test_rust_cli.py
771
777
  tests/test_safety_permissions.py
772
778
  tests/test_safety_service.py
773
779
  tests/test_safety_service_adoption.py
@@ -65,6 +65,27 @@ def test_replace_all_changes_every_match(workspace):
65
65
  assert "return None" not in workspace.read_text()
66
66
 
67
67
 
68
+ def test_single_and_multi_edit_preserve_utf8_under_legacy_locale(workspace, monkeypatch):
69
+ from aria_code.apps.cli.tools.write_tools import tool_multi_edit
70
+
71
+ source = "# 中文注释\nvalue = '你好'\n"
72
+ workspace.write_text(source, encoding="utf-8")
73
+ original = pathlib.Path.read_text
74
+
75
+ def legacy_default(path, *args, **kwargs):
76
+ if path == workspace:
77
+ kwargs.setdefault("encoding", "cp1252")
78
+ return original(path, *args, **kwargs)
79
+
80
+ monkeypatch.setattr(pathlib.Path, "read_text", legacy_default)
81
+ result = edit({"path": str(workspace), "old_string": "你好", "new_string": "世界"})
82
+ assert result["success"], result
83
+ assert workspace.read_text(encoding="utf-8") == source.replace("你好", "世界")
84
+ result = tool_multi_edit({"path": str(workspace), "edits": [{"old_string": "世界", "new_string": "再见"}]})
85
+ assert result["success"], result
86
+ assert workspace.read_text(encoding="utf-8") == source.replace("你好", "再见")
87
+
88
+
68
89
  def test_the_schema_offers_replace_all():
69
90
  from aria_code.apps.cli.local_tool_schemas import build_local_tool_schemas
70
91
 
@@ -0,0 +1,56 @@
1
+ """Run the package alias finder inside a real PYZ archive, without source files."""
2
+ import importlib.util
3
+ import json
4
+ import os
5
+ from pathlib import Path
6
+ import subprocess
7
+ import sys
8
+
9
+ import pytest
10
+
11
+
12
+ @pytest.mark.skipif(importlib.util.find_spec("PyInstaller") is None, reason="requires the native packaging test environment")
13
+ @pytest.mark.timeout(120)
14
+ def test_frozen_aliases_work_without_a_physical_package_directory(tmp_path):
15
+ root = Path(__file__).resolve().parents[1]
16
+ source = tmp_path / "src"
17
+ package = source / "aria_code"
18
+ nested = package / "compat_pkg"
19
+ nested.mkdir(parents=True)
20
+ (package / "__init__.py").write_text((root / "src/aria_code/__init__.py").read_text(encoding="utf-8"), encoding="utf-8")
21
+ (package / "helper.py").write_text("sentinel = object()\n", encoding="utf-8")
22
+ (nested / "__init__.py").write_text("", encoding="utf-8")
23
+ (nested / "state.py").write_text("items = []\n", encoding="utf-8")
24
+ entry = tmp_path / "smoke.py"
25
+ entry.write_text("""
26
+ import json
27
+ from pathlib import Path
28
+ import aria_code
29
+ import helper
30
+ import aria_code.helper
31
+ import compat_pkg.state
32
+ import aria_code.compat_pkg.state
33
+ assert helper is aria_code.helper
34
+ assert compat_pkg.state is aria_code.compat_pkg.state
35
+ compat_pkg.state.items.append('shared')
36
+ assert aria_code.compat_pkg.state.items == ['shared']
37
+ root = Path(aria_code.__file__).parent
38
+ print(json.dumps({'root': str(root), 'root_exists': root.is_dir(), 'aliases_shared': True}))
39
+ """, encoding="utf-8")
40
+ env = {**os.environ, "PYTHONPATH": str(source)}
41
+ build = subprocess.run([sys.executable, "-m", "PyInstaller", "--clean", "--noconfirm", "--onedir",
42
+ "--name", "alias-smoke", "--distpath", str(tmp_path / "dist"),
43
+ "--workpath", str(tmp_path / "build"), "--specpath", str(tmp_path),
44
+ "--paths", str(source), "--hidden-import", "aria_code.helper",
45
+ "--hidden-import", "aria_code.compat_pkg.state", str(entry)],
46
+ cwd=tmp_path, env=env, capture_output=True, timeout=90)
47
+ assert build.returncode == 0, build.stderr.decode(errors="replace")[-5000:]
48
+ binary = tmp_path / "dist" / "alias-smoke" / ("alias-smoke.exe" if os.name == "nt" else "alias-smoke")
49
+ for physical_directory in (False, True):
50
+ run = subprocess.run([str(binary)], cwd=tmp_path, capture_output=True, timeout=10)
51
+ assert run.returncode == 0, run.stderr.decode(errors="replace")
52
+ result = json.loads(run.stdout)
53
+ assert result["aliases_shared"]
54
+ assert result["root_exists"] is physical_directory
55
+ Path(result["root"]).mkdir(exist_ok=True)
56
+
@@ -0,0 +1,99 @@
1
+ """Contract and authority regressions for the opt-in Rust/Python boundary."""
2
+ import json
3
+ import os
4
+ from pathlib import Path
5
+ import subprocess
6
+ import sys
7
+
8
+ import pytest
9
+
10
+ from aria_code.apps.cli.native_bridge import MAX_MESSAGE, dispatch
11
+
12
+
13
+ @pytest.fixture(autouse=True)
14
+ def isolated_state(tmp_path, monkeypatch):
15
+ monkeypatch.setenv("ARIA_HOME", str(tmp_path / "state"))
16
+ monkeypatch.setenv("ARIA_USER_OUTPUT_ROOT", str(tmp_path / "outputs"))
17
+
18
+
19
+ def request(name="read_file", **arguments):
20
+ return {"jsonrpc": "2.0", "id": "request-你好", "method": "tools.call",
21
+ "params": {"name": name, "arguments": arguments}}
22
+
23
+
24
+ def test_protocol_errors_and_notifications(tmp_path):
25
+ for invalid in (None, [], {"jsonrpc": "1.0", "method": "tools.call"},
26
+ {"jsonrpc": "2.0", "id": True, "method": "tools.call"}):
27
+ assert dispatch(invalid, tmp_path)["error"]["code"] == -32600
28
+ assert dispatch({"jsonrpc": "2.0", "id": 1, "method": "unknown"}, tmp_path)["error"]["code"] == -32601
29
+ assert dispatch({"jsonrpc": "2.0", "id": None, "method": "tools.call", "params": []}, tmp_path)["error"]["code"] == -32602
30
+ note = request("write_file", path="note.txt", content="a notification cannot write this")
31
+ del note["id"]
32
+ assert dispatch(note, tmp_path, "write_file") is None
33
+ assert not (tmp_path / "note.txt").exists()
34
+
35
+
36
+ def test_reads_use_existing_handler_and_preserve_id(tmp_path):
37
+ cli_loaded_before = "aria_code.aria_cli" in sys.modules
38
+ (tmp_path / "你好.txt").write_text("hello 你好\n", encoding="utf-8")
39
+ result = dispatch(request(path="你好.txt"), tmp_path)
40
+ assert result["id"] == "request-你好"
41
+ assert result["result"]["success"]
42
+ assert "hello 你好" in result["result"]["data"]["content"]
43
+ assert cli_loaded_before or "aria_code.aria_cli" not in sys.modules
44
+
45
+
46
+ def test_request_cannot_expand_workspace_or_grant_approval(tmp_path):
47
+ workspace = tmp_path / "project"
48
+ workspace.mkdir()
49
+ outside = tmp_path / "private.txt"
50
+ outside.write_text("private")
51
+ arguments = {"path": "../private.txt", "_workspace": str(tmp_path),
52
+ "_allowed_read_roots": [str(tmp_path)], "_permission_mode": "full-access"}
53
+ result = dispatch(request(**arguments), workspace)
54
+ assert not result["result"]["success"]
55
+ assert "private" not in result["result"].get("data", {}).get("content", "")
56
+ forged = dispatch(request("write_file", path="new.txt", content="a complete text file to write",
57
+ _skip_confirm=True, approved=True), workspace)
58
+ assert not forged["result"]["success"]
59
+ assert not (workspace / "new.txt").exists()
60
+
61
+
62
+ def test_symlinks_cannot_escape_workspace(tmp_path):
63
+ workspace = tmp_path / "project"
64
+ workspace.mkdir()
65
+ outside = tmp_path / "outside.txt"
66
+ outside.write_text("secret")
67
+ try:
68
+ (workspace / "link.txt").symlink_to(outside)
69
+ except OSError:
70
+ pytest.skip("symlink privilege unavailable")
71
+ result = dispatch(request(path="link.txt"), workspace)
72
+ assert not result["result"]["success"]
73
+
74
+
75
+ def test_persistent_deny_wins_over_host_approval(tmp_path):
76
+ state = Path(os.environ["ARIA_HOME"])
77
+ state.mkdir()
78
+ (state / "tool_policy.json").write_text(json.dumps({"denied": ["write_file", "read_file"]}))
79
+ assert not dispatch(request(path="README.md"), tmp_path)["result"]["success"]
80
+ result = dispatch(request("write_file", path="new.txt", content="a complete text file to write"), tmp_path, "write_file")
81
+ assert not result["result"]["success"]
82
+ assert not (tmp_path / "new.txt").exists()
83
+
84
+
85
+ def test_ask_always_does_not_execute_without_host_approval(tmp_path):
86
+ state = Path(os.environ["ARIA_HOME"])
87
+ state.mkdir()
88
+ (state / "tool_policy.json").write_text(json.dumps({"ask_always": ["read_file"]}))
89
+ result = dispatch(request(path="README.md"), tmp_path)
90
+ assert not result["result"]["success"]
91
+ assert "approval" in result["result"]["error"]
92
+
93
+
94
+ @pytest.mark.parametrize("raw,code", [(b"{bad\n", -32700), (b"x" * (MAX_MESSAGE + 1), -32600)], ids=["malformed", "oversized"])
95
+ def test_worker_bounds_input_and_stdout_is_protocol(tmp_path, raw, code):
96
+ proc = subprocess.run([sys.executable, "-m", "aria_code.apps.cli.native_bridge", "--workspace", str(tmp_path)],
97
+ input=raw, capture_output=True, timeout=10)
98
+ assert proc.returncode == 0, proc.stderr
99
+ assert json.loads(proc.stdout)["error"]["code"] == code