aria-code 0.83.0__tar.gz → 0.84.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.
- {aria_code-0.83.0/src/aria_code.egg-info → aria_code-0.84.0}/PKG-INFO +1 -1
- {aria_code-0.83.0 → aria_code-0.84.0}/pyproject.toml +1 -1
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/_version.py +1 -1
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prompts/coding.py +6 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prompts/system_prompts.py +3 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/runtime_consumer.py +46 -4
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tool_executor.py +9 -3
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/system_tools.py +37 -14
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_cli.py +5 -2
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/gateway.py +3 -1
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/console.py +6 -2
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/picker.py +41 -16
- {aria_code-0.83.0 → aria_code-0.84.0/src/aria_code.egg-info}/PKG-INFO +1 -1
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code.egg-info/SOURCES.txt +1 -0
- aria_code-0.84.0/tests/test_tool_step_output.py +147 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ui_console_theme.py +7 -2
- {aria_code-0.83.0 → aria_code-0.84.0}/LICENSE +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/NOTICE +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/README.md +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/setup.cfg +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/adk_apps/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/base.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/code_review.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/critic.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/deepen.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/models.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/pipeline.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/themes.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/deep/tiers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/engineering/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/engineering/coder.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/engineering/tester.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/catalyst.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/debate.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/earnings.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/fundamental.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/macro.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/news.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/risk.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/sector.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/strategist.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/synthesis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/financial/technical.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/orchestrator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/portfolio_agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/business_match.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/signal_scheme.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/sports/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/sports/football_agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/supervisor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/team.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aliyun_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/README.md +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/README.md +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/approvals.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/conversation.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/digest.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/intake.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/channels/tradingview.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/README.md +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/_optional.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/broker_render.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/market.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/team.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/config_paths.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/config_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/constants.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/context.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/deterministic.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/direct.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/football_reports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/google_login.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/helpers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/hooks.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/i18n.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/intent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/intent_router.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/main.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/market_hours.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/market_universe.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/message_processing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/preflight.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/project_aria.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/base.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/review_runner.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/sandbox.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/session_export.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/session_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/context.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/update_check.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/updater.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/daemon/README.md +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/vscode/README.md +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/apps/vscode/package.json +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_daemon.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_feishu_bot.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_mcp_server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_relay_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_relay_server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/aria_telegram_bot.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ariarc.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/artifacts.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/backtest_engine.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/backtest_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/automation.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/base.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/capabilities.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/cn/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/config.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/intl/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/paper_broker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/planning.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/brokers/trading.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/canva_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/change_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/aria_relay_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/canva_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/figma_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/football_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/kling_video_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/market_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/openai_image_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/runway_video_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/cloud_memory.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/command_safety.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/computer_use_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/dashboard_generator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/data_analysis_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/data_cleaner.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/data_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/base.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/router.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/demo_player.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/doctor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/domain/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/domain/backtest_engine.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/domain/backtest_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/domain/finance_formulas.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/domain/strategy_vault.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/evals/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/evals/harness.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/evals/runner.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/external_agent_runner.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/figma_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/file_analysis_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/finance_formulas.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/football_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/image_gen_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/intent_classifier.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/kling_video_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/licensing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/local_finance_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/local_image_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/local_llm_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/macro_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/markdown_pdf.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/market_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/mcp_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/memory_manager.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/model_capability.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/notification_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/openai_image_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_core/export.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_core/paths.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_infra/product.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/cache.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/context.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/data.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/references.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/settings.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_services/usage.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/base.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/finance/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/logistics/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/payments/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/realty/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/packs/rules.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/plan_utils.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/plugin_loader.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/portfolio_ledger.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/preview_server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/privacy/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/privacy/feedback.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/project_review.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/project_review_api.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/project_review_server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/project_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/anthropic.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/base.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/custom.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/ollama.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/llm/registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/local_image_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/local_llm_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/providers/tool_messages.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/realty_data_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/relay_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/report_exporters.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/report_generator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/review_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/acceptance.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/agent_loop.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/approval.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/budget.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/checkpoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/crash_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/events.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/lsp.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/orchestrator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/repo_map.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/run_state.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/run_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/self_healing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/subagent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/task_ledger.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/tool_executor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/tool_policy.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runtime/worktrees.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/runway_video_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/safety/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/safety/permissions.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/safety/service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/setup_wizard.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/spreadsheet_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/strategy_vault.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/artifact_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/broker_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/build_quant_engine.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/code_audit_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/computer_use_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/extended_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/image_gen_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/local_finance_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/logistics_carriers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/logistics_inventory.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/logistics_io.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/logistics_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/macro_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/notification_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/project_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/realty_data_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/tools/stripe_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/banner.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/completer.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/image_render.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/input_box.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/render/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/render/finance.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/render/market.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/render/output.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/render/responsive.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/render/team.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/robot.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/ui/startup_dashboard.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/utils/vscode_uri.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/video_analysis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/video_editor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace/__init__.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace/files.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace/verify.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace_changes.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace_context.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code/workspace_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code.egg-info/entry_points.txt +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code.egg-info/requires.txt +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/src/aria_code.egg-info/top_level.txt +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_adk_market_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_agent_team_fallback.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_analyze_file_tool.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_architecture_ledger_is_true.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_architecture_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_aria_cli_core.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_aria_mcp_server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_aria_sdk.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_artifact_publishing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_artifacts_and_reports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ashare_prediction_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_backtest_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_backtest_engine.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_backtest_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_broken_akshare_is_optional.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_broker_automation.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_broker_chat_confirm_gate.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_broker_planning.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_broker_safety.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_broker_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_budget.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_business_workflow_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_canva_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_canvas_cmds.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_card_approvals.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_channel_intake.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_channels.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_chart_handlers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_chat_bots_fail_closed.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_chat_routing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ci_security_workflow.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_app_split.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_bootstrap.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_config_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_lifecycle_hooks.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_runtime_consumer.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_tool_executor_module.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cli_updater.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_cloud_memory.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_code_audit_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_code_review_agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_codegen_output.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_coder_tester_self_healing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_coder_tool_safety.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_collaboration.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_command_loggers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_command_safety.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_completions_builder.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_config_paths.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_configured_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_container_entrypoint.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_container_entrypoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_context_checkpoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_context_references.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_context_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_conversation_core.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_crash_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_credential_file_permissions.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_custom_providers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_daemon_gateway_config.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_dashboard_generator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_data_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_data_service_imports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_datasource_routing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_deep_analysis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_degrades_without_quant_engine.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_doctor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_doctor_describes_the_current_install.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_doctor_npm_scope.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_engine_boundary.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_enterprise_tool_honesty.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_env_switch_docs.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_evals_harness.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_event_import_roots.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_extended_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_feishu_swarm_config.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_finalize_release.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_finance_renderers.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_finance_service_catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_first_run_output.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_first_run_works.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_football_agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_football_prediction_output.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_google_cloud_models.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_google_cloud_routing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_google_login.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_google_search_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_headless_is_agentic.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_honest_surfaces.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_image_gen_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_image_inputs.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_import_graph_budget.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_intent_router.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_intent_signals.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_kling_video_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_lazy_rebind.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_legacy_module_imports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_license_consistency.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_licensing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_local_image_provider.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_logistics_3pl.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_logistics_and_finance_agents.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_lsp.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_markdown_pdf.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_answers_in_english.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_data_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_history_inheritance.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_history_tool.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_hours.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_questions_on_backend.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_symbol_extraction.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_market_universe.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_mcp_circuit.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_mcp_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_model_capability_registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_model_choice_is_the_users.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_model_selection_state.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_native_binary_entrypoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_native_installer.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_new_modules.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_no_uncommitted_imports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_numeric_listings.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ollama_stream_imports.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ollama_stream_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_openai_image_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_operations_suite.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_output_rendering.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_packages_facade.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_packaging_constraints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_packaging_manifest.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_packs_domains.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_pdf_report.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_pick_best_installed_model.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_plan_mode.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_platform_package_assembly.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_platform_packages.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_plotly_html_output.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_portfolio_ledger.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_post_turn_context_decision.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_preflight.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_preview_server.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_privacy_feedback.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_project_aria.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_project_review.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_project_review_api.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_prompt_assembly.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_prompt_selection.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_provider_autoconfig.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_provider_error_messages.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_provider_integration.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_provider_registry.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_public_service_status.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_quant_engine_namespace.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_rebind_contract.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_rebind_namespace_contract.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_relay_client_credentials.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_relay_event_verification.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_relay_sends_for_clients.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_relay_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_relay_url.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_release_chain.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_release_commit_identity.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_release_push_is_atomic.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_release_reaches_the_registries.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_release_verification_waits.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_release_workflow_permissions.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_report_charts.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_report_generator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_research_protocol.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_research_quality.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_responsive_rendering.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_review_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_root_module_budget.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_rsi_without_pandas_ta.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_acceptance.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_agent_loop.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_approval.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_bridge.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_bridge_fallback.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_checkpoints.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_event_identity.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_gateway.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_repo_map.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_run_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_tool_executor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runtime_worktrees.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_runway_video_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_safety_permissions.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_safety_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_safety_service_adoption.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_service_diagnostics_security.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_session_search.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_settings_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_shipper_digest.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_single_import_root.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_skill_agent_binding.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_skill_catalog.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_skill_loader.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_slash_popup.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_spreadsheet_tools.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_sse_stream_contract.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_startup_dashboard.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_startup_latency.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_status_language.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_streaming_pipeline.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_stripe_agent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_subagent.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_supervisor_routing.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_system_prompts.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_system_tools_output.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_task_orchestrator.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_team_synthesis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_tls_trust_store.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_tool_policy.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_tool_scope.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_trading_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_tradingview_bridge.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_turn_planning.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ui_completer_references.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ui_input_box.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ui_language_and_model.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_ui_robot_banner.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_update_health_routes.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_verification_hint.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_verification_policy.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_version_consistency.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_version_counter.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_video_analysis.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_video_editor.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_vscode_mcp.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_warehouse_agents.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_warehouse_cli_registration.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_warehouse_erp_client.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_warehouse_workflow.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_wheel_is_installable.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_workspace_changes.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_workspace_context.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_workspace_files.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_workspace_scope.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_workspace_service.py +0 -0
- {aria_code-0.83.0 → aria_code-0.84.0}/tests/test_workspace_verify.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aria-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.84.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
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "aria-code"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.84.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" }
|
|
@@ -26,6 +26,12 @@ CODING_SYSTEM_PROMPT = (
|
|
|
26
26
|
"For multi-file projects: emit one <tool_call> per file in the SAME response (up to 5 write_file calls). "
|
|
27
27
|
"Then run/verify in the NEXT response. Never mix write_file and run_command in the same response.\n\n"
|
|
28
28
|
|
|
29
|
+
"## FINAL SUMMARY\n"
|
|
30
|
+
"The user has already seen every step: each file written, with a preview, and each command's "
|
|
31
|
+
"output. End with 1-4 sentences: which files changed, what was verified and the result "
|
|
32
|
+
"(\"3 tests passed\"), and anything left open. Do NOT paste file contents, diffs or command "
|
|
33
|
+
"output back; quote a line or two only when it matters.\n\n"
|
|
34
|
+
|
|
29
35
|
"## ABSOLUTELY FORBIDDEN\n"
|
|
30
36
|
"1. NEVER pass slash-commands (/config, /model, /note, /apikey, etc.) to run_command — "
|
|
31
37
|
" they are NOT shell commands. To change policy tell the user to type the slash command directly.\n"
|
|
@@ -46,6 +46,8 @@ def build_response_style_rule(lang: str) -> str:
|
|
|
46
46
|
"- For analysis: Conclusion -> Evidence -> Risk/Limitations -> Next.\n"
|
|
47
47
|
"- Keep output compact: avoid repeated disclaimers, generic education, and duplicated sections.\n"
|
|
48
48
|
"- Keep the interactive answer near one terminal screen (about 24 lines) unless the user explicitly requests detail.\n"
|
|
49
|
+
"- After using tools, do not paste back what the user already saw: name the files you wrote or changed and "
|
|
50
|
+
"quote only the lines that matter, and summarise command output (\"4 tests passed\") instead of reprinting it.\n"
|
|
49
51
|
"- Never invent data. If a field is unavailable, omit it or note 'N/A' and continue with available data.\n\n"
|
|
50
52
|
)
|
|
51
53
|
return (
|
|
@@ -59,6 +61,7 @@ def build_response_style_rule(lang: str) -> str:
|
|
|
59
61
|
"- 分析类回答按:结论 -> 依据 -> 风险/限制 -> 下一步。\n"
|
|
60
62
|
"- 输出要紧凑:避免重复免责声明、泛泛教学和重复章节。\n"
|
|
61
63
|
"- 交互回答尽量控制在一屏(约24行);用户明确要求详细内容时除外。\n"
|
|
64
|
+
"- 用过工具后不要重复用户已看到的内容:写入或修改的文件只说文件名并只引用关键几行,命令输出用一句话概括(如“4 个测试全部通过”),不要整段重贴。\n"
|
|
62
65
|
"- 绝不编造数据。字段不可用时说明数据源未返回,并继续使用已有数据。\n\n"
|
|
63
66
|
)
|
|
64
67
|
|
|
@@ -33,15 +33,44 @@ _REPETITION_NOTICE = (
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
def _redact_activity_text(value: Any, limit: int = 90) -> str:
|
|
36
|
+
"""One line, secrets masked — for anything echoed to the screen or a log.
|
|
37
|
+
|
|
38
|
+
Shell commands are now shown on their step line, so this also covers
|
|
39
|
+
"Authorization: Bearer …", credentials in URLs and the usual key shapes.
|
|
40
|
+
"""
|
|
36
41
|
text = re.sub(r"\s+", " ", str(value or "")).strip()
|
|
37
42
|
text = re.sub(
|
|
38
|
-
r"(?i)(api[_-]?key|token|password|secret)(\s*[=:]\s*|\s+)[^\s]+",
|
|
43
|
+
r"(?i)(api[_-]?key|token|password|passwd|secret)(\s*[=:]\s*|\s+)[^\s]+",
|
|
39
44
|
r"\1\2***",
|
|
40
45
|
text,
|
|
41
46
|
)
|
|
47
|
+
text = re.sub(r"(?i)\b(bearer|basic)\s+[A-Za-z0-9._~+/=-]+", r"\1 ***", text)
|
|
48
|
+
text = re.sub(r"://[^/\s:@]+:[^@\s]+@", "://***@", text)
|
|
49
|
+
text = re.sub(r"\b(sk|pk|rk)-[A-Za-z0-9_-]{8,}|\bgh[pousr]_[A-Za-z0-9]{12,}|\bAIza[0-9A-Za-z_-]{20,}"
|
|
50
|
+
r"|\bxox[abposr]-[A-Za-z0-9-]{10,}", "***", text)
|
|
42
51
|
return text[:limit]
|
|
43
52
|
|
|
44
53
|
|
|
54
|
+
# How long the runtime measured a tool call to take, carried with its result.
|
|
55
|
+
MEASURED_ELAPSED_KEY = "_elapsed_s"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def with_measured_elapsed(result: Any, elapsed: Any) -> Any:
|
|
59
|
+
if isinstance(result, dict) and isinstance(elapsed, (int, float)):
|
|
60
|
+
return {**result, MEASURED_ELAPSED_KEY: float(elapsed)}
|
|
61
|
+
return result
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def approval_subject(tool_name: str, params: dict[str, Any]) -> str:
|
|
65
|
+
"""What an answered approval leaves behind: the file, or the command with secrets masked."""
|
|
66
|
+
if tool_name == "run_command":
|
|
67
|
+
return _redact_activity_text(params.get("command", ""), limit=80)
|
|
68
|
+
for key in ("path", "file_path"):
|
|
69
|
+
if params.get(key):
|
|
70
|
+
return Path(str(params[key])).name
|
|
71
|
+
return tool_name.replace("_", " ")
|
|
72
|
+
|
|
73
|
+
|
|
45
74
|
def _tool_activity_hint(tool: str, params: dict[str, Any]) -> str:
|
|
46
75
|
"""Return one safe, useful argument for a compact activity row."""
|
|
47
76
|
if not isinstance(params, dict):
|
|
@@ -506,6 +535,11 @@ class TerminalRuntimeEventConsumer:
|
|
|
506
535
|
if not starts:
|
|
507
536
|
self.tool_start_times.pop(tool, None)
|
|
508
537
|
elapsed_ms = int((time.time() - started_at) * 1000)
|
|
538
|
+
# The runtime times each call itself. Measuring from the announcement
|
|
539
|
+
# counted the person reading an approval, and results of a batch
|
|
540
|
+
# arrive together — "✓ writing file test_fx.py 13.9s" for a 9ms write.
|
|
541
|
+
if isinstance(summary, dict) and isinstance(summary.get(MEASURED_ELAPSED_KEY), (int, float)):
|
|
542
|
+
elapsed_ms = int(summary[MEASURED_ELAPSED_KEY] * 1000)
|
|
509
543
|
params_queue = self.tool_params.get(tool) or []
|
|
510
544
|
params = params_queue.pop(0) if params_queue else {}
|
|
511
545
|
if not params_queue:
|
|
@@ -519,6 +553,10 @@ class TerminalRuntimeEventConsumer:
|
|
|
519
553
|
detail = ""
|
|
520
554
|
if not ok and isinstance(summary, dict):
|
|
521
555
|
detail = str(summary.get("error") or "")[:90]
|
|
556
|
+
elif ok:
|
|
557
|
+
# Name what was done: two bare "✓ writing file" lines in a row
|
|
558
|
+
# did not say which file each was.
|
|
559
|
+
detail = _tool_activity_hint(tool, params)
|
|
522
560
|
self.print_tool_done(tool, elapsed_ms, success=ok, summary=detail)
|
|
523
561
|
|
|
524
562
|
ts = time.strftime("%H:%M:%S")
|
|
@@ -588,7 +626,7 @@ class TerminalRuntimeEventConsumer:
|
|
|
588
626
|
elif isinstance(event, AgentEventToolCall):
|
|
589
627
|
self.on_tool_call(event.tool, event.params)
|
|
590
628
|
elif isinstance(event, AgentEventToolResult):
|
|
591
|
-
self.on_tool_result(event.tool, event.result)
|
|
629
|
+
self.on_tool_result(event.tool, with_measured_elapsed(event.result, getattr(event, "elapsed", None)))
|
|
592
630
|
elif isinstance(event, AgentEventStatus):
|
|
593
631
|
self.on_status(event.state, event.message)
|
|
594
632
|
|
|
@@ -638,7 +676,9 @@ class TerminalApprovalEventConsumer:
|
|
|
638
676
|
if not approval.approved:
|
|
639
677
|
from aria_code.ui.render.output import print_tool_blocked
|
|
640
678
|
|
|
641
|
-
|
|
679
|
+
zh = str(self.terminal.config.get("ui_lang", "en")).lower().startswith("zh")
|
|
680
|
+
print_tool_blocked(tool_name, "用户取消" if zh else "declined", console=self.console,
|
|
681
|
+
has_rich=self.has_rich)
|
|
642
682
|
return approval
|
|
643
683
|
|
|
644
684
|
def apply(self, tool_params: dict, approval: ApprovalDecision) -> dict:
|
|
@@ -649,7 +689,9 @@ class TerminalApprovalEventConsumer:
|
|
|
649
689
|
try:
|
|
650
690
|
self.save_config(self.terminal.config)
|
|
651
691
|
if self.has_rich:
|
|
652
|
-
self.
|
|
692
|
+
zh = str(self.terminal.config.get("ui_lang", "en")).lower().startswith("zh")
|
|
693
|
+
self.console.print(" [dim]策略已升级为 balanced 并保存[/dim]" if zh else
|
|
694
|
+
" [dim]Policy set to balanced and saved[/dim]")
|
|
653
695
|
except Exception:
|
|
654
696
|
pass
|
|
655
697
|
return tool_params
|
|
@@ -57,7 +57,7 @@ def _command_approval_prefix(command: str) -> tuple[str, ...]:
|
|
|
57
57
|
return ()
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
def _arrow_select(options, selected: int = 0, title: str = "") -> int:
|
|
60
|
+
def _arrow_select(options, selected: int = 0, title: str = "", **_kwargs) -> int:
|
|
61
61
|
return len(options) - 1
|
|
62
62
|
|
|
63
63
|
|
|
@@ -472,7 +472,10 @@ def _confirm_tool_execution_decision(tool_name: str, params: dict,
|
|
|
472
472
|
("Allow & set balanced", "允许并升级策略(本会话有效)" if zh else "and use balanced for this session"),
|
|
473
473
|
("No", "拒绝执行" if zh else "do not run it"),
|
|
474
474
|
]
|
|
475
|
-
|
|
475
|
+
# Imported here: aria_cli rebinds this function to its own globals.
|
|
476
|
+
from aria_code.apps.cli.runtime_consumer import approval_subject as _subject
|
|
477
|
+
choice = _arrow_select(options, selected=0, title="",
|
|
478
|
+
collapse_to=_subject(tool_name, params))
|
|
476
479
|
if choice == 0:
|
|
477
480
|
return ApprovalDecision.allow(policy="balanced", user_approved=True)
|
|
478
481
|
if choice == 1:
|
|
@@ -518,7 +521,10 @@ def _confirm_tool_execution_decision(tool_name: str, params: dict,
|
|
|
518
521
|
("Yes, allow all tools", "本会话内所有工具自动允许" if zh else "every tool, this session"),
|
|
519
522
|
("No", ""),
|
|
520
523
|
]
|
|
521
|
-
|
|
524
|
+
# Imported here: aria_cli rebinds this function to its own globals.
|
|
525
|
+
from aria_code.apps.cli.runtime_consumer import approval_subject as _subject
|
|
526
|
+
choice = _arrow_select(options, selected=0, title="",
|
|
527
|
+
collapse_to=_subject(tool_name, params))
|
|
522
528
|
|
|
523
529
|
if choice == 0:
|
|
524
530
|
if tool_name == "run_command":
|
|
@@ -77,6 +77,41 @@ def _cprint(msg: str, *, console, has_rich: bool) -> None:
|
|
|
77
77
|
print(plain)
|
|
78
78
|
|
|
79
79
|
|
|
80
|
+
OUTPUT_PREVIEW_LINES = 5
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def print_command_outcome(console, returncode: int, stdout: str, stderr: str, full_output_path: str = "") -> None:
|
|
84
|
+
"""One step line and the last few lines of what the command printed.
|
|
85
|
+
|
|
86
|
+
This printed "Command completed (exit 0)", up to six stdout lines and
|
|
87
|
+
"full output saved" — and nothing at all for `python3 -m unittest -v`,
|
|
88
|
+
whose report goes to stderr, so the model pasted the test results into
|
|
89
|
+
its answer instead. Lines are plain text: program output such as
|
|
90
|
+
"[/dim]" is not Rich markup. As Codex does, the tail is kept — that is
|
|
91
|
+
where "OK" or the failure is — and the rest is counted.
|
|
92
|
+
"""
|
|
93
|
+
from rich.text import Text
|
|
94
|
+
|
|
95
|
+
lines = stdout.rstrip().splitlines() + (stderr.rstrip().splitlines() if stderr.strip() else [])
|
|
96
|
+
ok = returncode == 0
|
|
97
|
+
head = Text(" ⎿ ", style="dim")
|
|
98
|
+
head.append(f"exit {returncode}", style="green" if ok else "red")
|
|
99
|
+
if lines:
|
|
100
|
+
head.append(f" · {len(lines)} line{'s' if len(lines) != 1 else ''}", style="dim")
|
|
101
|
+
console.print(head)
|
|
102
|
+
notes = []
|
|
103
|
+
if len(lines) > OUTPUT_PREVIEW_LINES:
|
|
104
|
+
notes.append(f"… +{len(lines) - OUTPUT_PREVIEW_LINES} lines")
|
|
105
|
+
if full_output_path:
|
|
106
|
+
from aria_code.ui.render.output import display_path
|
|
107
|
+
|
|
108
|
+
notes.append(f"full output saved: {display_path(full_output_path)}")
|
|
109
|
+
if notes:
|
|
110
|
+
console.print(Text(" " + " · ".join(notes), style="dim"))
|
|
111
|
+
for line in lines[-OUTPUT_PREVIEW_LINES:]:
|
|
112
|
+
console.print(Text(" " + line[:160], style="dim" if ok else "red"), overflow="ellipsis", no_wrap=True)
|
|
113
|
+
|
|
114
|
+
|
|
80
115
|
def tool_run_command(
|
|
81
116
|
params: dict,
|
|
82
117
|
*,
|
|
@@ -374,20 +409,8 @@ def tool_run_command(
|
|
|
374
409
|
# ── End auto-fix ─────────────────────────────────────────────────────
|
|
375
410
|
|
|
376
411
|
if has_rich and console is not None:
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
else:
|
|
380
|
-
console.print(f" [dim]Command exited {result.returncode}[/dim]")
|
|
381
|
-
out_preview = output.strip().splitlines()[:6]
|
|
382
|
-
for ol in out_preview:
|
|
383
|
-
console.print(f" [dim]{ol[:120]}[/dim]")
|
|
384
|
-
if len(output.strip().splitlines()) > 6:
|
|
385
|
-
console.print(" [dim]...truncated[/dim]")
|
|
386
|
-
if output_artifact.get("full_output_path"):
|
|
387
|
-
console.print(" [dim]full output saved[/dim]")
|
|
388
|
-
if stderr.strip() and result.returncode != 0:
|
|
389
|
-
for el in stderr.strip().splitlines()[:3]:
|
|
390
|
-
console.print(f" [red]{el[:120]}[/red]")
|
|
412
|
+
print_command_outcome(console, result.returncode, output, stderr,
|
|
413
|
+
output_artifact.get("full_output_path", ""))
|
|
391
414
|
else:
|
|
392
415
|
print(f" Command exit: {result.returncode}")
|
|
393
416
|
data = {
|
|
@@ -2623,7 +2623,10 @@ def _format_tool_params(tool_name: str, params: dict) -> str:
|
|
|
2623
2623
|
# Basename only — informative without leaking full workspace paths.
|
|
2624
2624
|
return _short(pathlib.Path(str(params.get("path", ""))).name or "file tool", 40)
|
|
2625
2625
|
if tool_name == "run_command":
|
|
2626
|
-
|
|
2626
|
+
# The command itself, secrets masked: "shell tool" said nothing, while
|
|
2627
|
+
# the approval menu under it named the command anyway.
|
|
2628
|
+
from apps.cli.runtime_consumer import _redact_activity_text
|
|
2629
|
+
return _short(_redact_activity_text(params.get("command", ""), limit=200) or "shell", 72)
|
|
2627
2630
|
if tool_name == "list_files":
|
|
2628
2631
|
return _short(params.get("pattern") or params.get("path") or "file tool", 40)
|
|
2629
2632
|
if tool_name == "search_code":
|
|
@@ -2782,7 +2785,7 @@ def _print_tool_done(tool_name: str, elapsed_ms: int, success: bool = True, summ
|
|
|
2782
2785
|
return
|
|
2783
2786
|
action = _TOOL_ACTION_LABELS.get(tool_name, tool_name.replace("_", " "))
|
|
2784
2787
|
icon = "[green]✓[/green]" if success else "[red]✗[/red]"
|
|
2785
|
-
t_txt = f"
|
|
2788
|
+
t_txt = ("" if elapsed_ms <= 0 else f"{elapsed_ms}ms" if elapsed_ms < 1000 else f"{elapsed_ms / 1000:.1f}s")
|
|
2786
2789
|
if summary:
|
|
2787
2790
|
# 单行预算:summary 按显示宽度(CJK 记 2 格)截断,保证图标+动作+摘要+时长
|
|
2788
2791
|
# 排在同一行——否则 Rich 整行回卷,时长 chip 顶格孤立在下一行,树形缩进被破坏。
|
|
@@ -126,7 +126,9 @@ async def run_turn(
|
|
|
126
126
|
on_tool_call(ev.tool, dict(ev.params))
|
|
127
127
|
elif isinstance(ev, AgentEventToolResult):
|
|
128
128
|
if on_tool_result is not None:
|
|
129
|
-
|
|
129
|
+
from aria_code.apps.cli.runtime_consumer import with_measured_elapsed
|
|
130
|
+
|
|
131
|
+
on_tool_result(ev.tool, with_measured_elapsed(dict(ev.result), getattr(ev, "elapsed", None)))
|
|
130
132
|
elif isinstance(ev, AgentEventStatus):
|
|
131
133
|
if on_status is not None:
|
|
132
134
|
phase = getattr(ev, "phase", "") or getattr(ev, "state", "") or ""
|
|
@@ -139,10 +139,14 @@ if HAS_RICH:
|
|
|
139
139
|
from ui.render.output import adapt_markdown_for_width
|
|
140
140
|
|
|
141
141
|
markup = adapt_markdown_for_width(markup, getattr(console, "width", 80))
|
|
142
|
+
# Rich's "bw" theme paints its own white background, so every code
|
|
143
|
+
# block was a white slab in a dark terminal. The ANSI themes keep the
|
|
144
|
+
# terminal's background and colour with its palette.
|
|
145
|
+
code_theme = "ansi_light" if ARIA_RICH_THEME_NAME == "light" else "ansi_dark"
|
|
142
146
|
return Markdown(
|
|
143
147
|
markup,
|
|
144
|
-
code_theme=
|
|
145
|
-
inline_code_theme=
|
|
148
|
+
code_theme=code_theme,
|
|
149
|
+
inline_code_theme=code_theme,
|
|
146
150
|
)
|
|
147
151
|
else:
|
|
148
152
|
class _FallbackConsole:
|
|
@@ -19,7 +19,8 @@ if _HAS_TERMIOS:
|
|
|
19
19
|
|
|
20
20
|
def arrow_select(options: list, selected: int = 0, title: str = "",
|
|
21
21
|
max_visible: int = 10,
|
|
22
|
-
controls_hint: str = "↑↓ Enter Esc/q Cancel"
|
|
22
|
+
controls_hint: str = "↑↓ Enter Esc/q Cancel",
|
|
23
|
+
collapse_to: str | None = None) -> int:
|
|
23
24
|
"""Interactive arrow-key selector with scrolling.
|
|
24
25
|
|
|
25
26
|
Args:
|
|
@@ -27,6 +28,10 @@ def arrow_select(options: list, selected: int = 0, title: str = "",
|
|
|
27
28
|
selected: initially highlighted index
|
|
28
29
|
title: optional header line
|
|
29
30
|
max_visible: max rows shown at once; scrolls when list is larger
|
|
31
|
+
collapse_to: when given, the menu is erased once answered and one
|
|
32
|
+
line is left in its place — "✓ Yes fx.py" — instead of
|
|
33
|
+
the whole menu, as Codex leaves an answered approval.
|
|
34
|
+
The text names what was being approved.
|
|
30
35
|
Returns:
|
|
31
36
|
index of chosen option, or -1 if cancelled
|
|
32
37
|
"""
|
|
@@ -130,21 +135,13 @@ def arrow_select(options: list, selected: int = 0, title: str = "",
|
|
|
130
135
|
|
|
131
136
|
_render.drawn = False
|
|
132
137
|
_render.last_phys_height = visible + 1
|
|
138
|
+
header_text = f" {title} {controls_hint}" if title else f" {controls_hint}"
|
|
139
|
+
# blank line + rule, then the title/hint line(s) + blank line
|
|
140
|
+
header_height = 2 + _physical_lines(header_text) + 1
|
|
141
|
+
result = -1
|
|
133
142
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
tty.setcbreak(fd)
|
|
137
|
-
sys.stdout.flush()
|
|
138
|
-
|
|
139
|
-
# Top boundary
|
|
140
|
-
_raw(f"\n \033[2m{_rule}\033[0m\n")
|
|
141
|
-
if title:
|
|
142
|
-
_raw(f" \033[1m{title}\033[0m \033[2m{controls_hint}\033[0m\n\n")
|
|
143
|
-
else:
|
|
144
|
-
_raw(f" \033[2m{controls_hint}\033[0m\n\n")
|
|
145
|
-
|
|
146
|
-
_render()
|
|
147
|
-
|
|
143
|
+
def _choose() -> int:
|
|
144
|
+
nonlocal selected
|
|
148
145
|
while True:
|
|
149
146
|
ch = os.read(fd, 1)
|
|
150
147
|
if ch == b'\x1b':
|
|
@@ -175,12 +172,40 @@ def arrow_select(options: list, selected: int = 0, title: str = "",
|
|
|
175
172
|
selected = n - 1; _render()
|
|
176
173
|
elif ch in (b'\x03', b'\x04'):
|
|
177
174
|
return -1
|
|
175
|
+
|
|
176
|
+
try:
|
|
177
|
+
_esc_watcher.pause()
|
|
178
|
+
tty.setcbreak(fd)
|
|
179
|
+
sys.stdout.flush()
|
|
180
|
+
|
|
181
|
+
# Top boundary
|
|
182
|
+
_raw(f"\n \033[2m{_rule}\033[0m\n")
|
|
183
|
+
if title:
|
|
184
|
+
_raw(f" \033[1m{title}\033[0m \033[2m{controls_hint}\033[0m\n\n")
|
|
185
|
+
else:
|
|
186
|
+
_raw(f" \033[2m{controls_hint}\033[0m\n\n")
|
|
187
|
+
|
|
188
|
+
_render()
|
|
189
|
+
result = _choose()
|
|
190
|
+
return result
|
|
178
191
|
except (EOFError, KeyboardInterrupt, OSError):
|
|
179
192
|
return -1
|
|
180
193
|
finally:
|
|
181
194
|
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
|
|
182
195
|
_esc_watcher.resume()
|
|
183
|
-
|
|
196
|
+
if collapse_to is not None and _render.drawn:
|
|
197
|
+
label = ""
|
|
198
|
+
if 0 <= result < n:
|
|
199
|
+
opt = options[result]
|
|
200
|
+
label = opt[0] if isinstance(opt, tuple) else opt
|
|
201
|
+
declined = result < 0 or label.strip().lower() in ("no", "否", "取消", "cancel")
|
|
202
|
+
mark = "\033[31m✗\033[0m" if declined else "\033[32m✓\033[0m"
|
|
203
|
+
shown = label or "Cancelled"
|
|
204
|
+
subject = f" \033[2m{collapse_to}\033[0m" if collapse_to else ""
|
|
205
|
+
# Up over the header and the menu, clear to the end, one line instead.
|
|
206
|
+
_raw(f"\033[{header_height + _render.last_phys_height}A\r\033[J {mark} {shown}{subject}\n")
|
|
207
|
+
else:
|
|
208
|
+
_raw(f" \033[2m{_rule}\033[0m\n\n")
|
|
184
209
|
|
|
185
210
|
|
|
186
211
|
async def run_picker_in_thread(options: list, current_idx: int,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aria-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.84.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
|
|
@@ -711,6 +711,7 @@ tests/test_tls_trust_store.py
|
|
|
711
711
|
tests/test_tool_policy.py
|
|
712
712
|
tests/test_tool_rounds_on_openai_apis.py
|
|
713
713
|
tests/test_tool_scope.py
|
|
714
|
+
tests/test_tool_step_output.py
|
|
714
715
|
tests/test_trading_service.py
|
|
715
716
|
tests/test_tradingview_bridge.py
|
|
716
717
|
tests/test_turn_planning.py
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"""Each tool step reads as one block, as Codex shows it.
|
|
2
|
+
|
|
3
|
+
Recorded on a real coding turn: the command header said "executing command
|
|
4
|
+
shell tool"; two "✓ writing file (13910ms)" lines named no file and counted
|
|
5
|
+
the person reading the diff; answered approval menus stayed on screen in
|
|
6
|
+
full; `python3 -m unittest -v` showed no output (its report is on stderr),
|
|
7
|
+
so the model pasted the results into its answer; code blocks were white
|
|
8
|
+
slabs in a dark terminal.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import io
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
import pytest
|
|
17
|
+
from rich.console import Console
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _console(width=100):
|
|
21
|
+
return Console(file=io.StringIO(), width=width, color_system=None, highlight=False)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def test_command_outcome_shows_the_tail_of_stdout_and_stderr():
|
|
25
|
+
from aria_code.apps.cli.tools.system_tools import print_command_outcome
|
|
26
|
+
|
|
27
|
+
console = _console()
|
|
28
|
+
report = "\n".join(f"test_{i} ... ok" for i in range(8)) + "\n" + "-" * 20 + "\nRan 8 tests in 0.001s\n\nOK"
|
|
29
|
+
print_command_outcome(console, 0, "", report, "/Users/someone/.aria/out/abc.log")
|
|
30
|
+
lines = console.file.getvalue().splitlines()
|
|
31
|
+
assert lines[0].strip() == "⎿ exit 0 · 12 lines"
|
|
32
|
+
assert "… +7 lines · full output saved: abc.log" in lines[1]
|
|
33
|
+
assert lines[-1].strip() == "OK" and len(lines) == 2 + 5
|
|
34
|
+
assert "/Users/someone" not in console.file.getvalue()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_program_output_is_not_markup():
|
|
38
|
+
from aria_code.apps.cli.tools.system_tools import print_command_outcome
|
|
39
|
+
|
|
40
|
+
console = _console()
|
|
41
|
+
print_command_outcome(console, 1, "[bold]not bold[/bold] and a stray [/dim]", "")
|
|
42
|
+
text = console.file.getvalue()
|
|
43
|
+
assert "exit 1" in text and "[bold]not bold[/bold] and a stray [/dim]" in text
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@pytest.mark.parametrize("raw, hidden", [
|
|
47
|
+
("curl -H 'Authorization: Bearer abc.def.ghi' https://x", "abc.def.ghi"),
|
|
48
|
+
("git clone https://user:hunter2@github.com/o/r", "hunter2"),
|
|
49
|
+
("OPENAI_API_KEY=sk-live1234567890abcd python run.py", "sk-live1234567890abcd"),
|
|
50
|
+
("export GITHUB_TOKEN=ghp_abcdefghijklmnop", "ghp_abcdefghijklmnop"),
|
|
51
|
+
("gemini --key AIzaSyA1234567890abcdefghijk", "AIzaSyA1234567890abcdefghijk"),
|
|
52
|
+
])
|
|
53
|
+
def test_commands_are_shown_with_secrets_masked(raw, hidden):
|
|
54
|
+
from aria_code.apps.cli.runtime_consumer import _redact_activity_text
|
|
55
|
+
|
|
56
|
+
shown = _redact_activity_text(raw, limit=200)
|
|
57
|
+
assert hidden not in shown and "***" in shown
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def test_the_step_header_names_the_command():
|
|
61
|
+
sys.argv = ["aria-code"]
|
|
62
|
+
import aria_code.aria_cli as cli
|
|
63
|
+
|
|
64
|
+
assert cli._format_tool_params("run_command", {"command": "python3 -m unittest -v"}) == "python3 -m unittest -v"
|
|
65
|
+
assert "s3cr3t" not in cli._format_tool_params("run_command", {"command": "mysql --password s3cr3t"})
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def _consumer(calls):
|
|
69
|
+
from aria_code.apps.cli.runtime_consumer import TerminalRuntimeEventConsumer
|
|
70
|
+
|
|
71
|
+
done = []
|
|
72
|
+
consumer = TerminalRuntimeEventConsumer.__new__(TerminalRuntimeEventConsumer)
|
|
73
|
+
consumer.tool_start_times = {"write_file": [100.0] * len(calls)}
|
|
74
|
+
consumer.tool_params = {"write_file": [{"path": path} for path in calls]}
|
|
75
|
+
consumer.print_tool_done = lambda tool, ms, success=True, summary="": done.append((summary, ms))
|
|
76
|
+
consumer.terminal = type("T", (), {"_transcript_log": []})()
|
|
77
|
+
consumer.tool_spinner = None
|
|
78
|
+
return consumer, done
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def test_the_done_line_names_its_target_and_shows_the_measured_time(monkeypatch):
|
|
82
|
+
"""Two writes announced together, approved one after the other, reported
|
|
83
|
+
together: each line shows its own file and the time the runtime measured,
|
|
84
|
+
not the time since it was announced."""
|
|
85
|
+
from aria_code.apps.cli.runtime_consumer import with_measured_elapsed
|
|
86
|
+
|
|
87
|
+
monkeypatch.setattr("aria_code.apps.cli.runtime_consumer.time.time", lambda: 113.9)
|
|
88
|
+
consumer, done = _consumer(["src/fx.py", "test_fx.py"])
|
|
89
|
+
consumer.on_tool_result("write_file", with_measured_elapsed({"success": True}, 0.009))
|
|
90
|
+
consumer.on_tool_result("write_file", with_measured_elapsed({"success": True}, 0.012))
|
|
91
|
+
assert done == [("fx.py", 9), ("test_fx.py", 12)]
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def test_without_a_measurement_the_announcement_time_is_used(monkeypatch):
|
|
95
|
+
monkeypatch.setattr("aria_code.apps.cli.runtime_consumer.time.time", lambda: 100.25)
|
|
96
|
+
consumer, done = _consumer(["fx.py"])
|
|
97
|
+
consumer.on_tool_result("write_file", {"success": True})
|
|
98
|
+
assert done == [("fx.py", 250)]
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def test_the_gateway_passes_the_measured_time_on():
|
|
102
|
+
import inspect
|
|
103
|
+
|
|
104
|
+
from aria_code.runtime import gateway
|
|
105
|
+
|
|
106
|
+
assert "with_measured_elapsed" in inspect.getsource(gateway)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def test_an_approval_collapses_to_what_was_approved(monkeypatch):
|
|
110
|
+
"""Through aria_cli, which rebinds the approval function to its own
|
|
111
|
+
globals: a helper defined in tool_executor was not visible there, and the
|
|
112
|
+
first recorded run crashed every approval with a NameError."""
|
|
113
|
+
sys.argv = ["aria-code"]
|
|
114
|
+
import aria_code.aria_cli as cli
|
|
115
|
+
|
|
116
|
+
seen = {}
|
|
117
|
+
|
|
118
|
+
def fake_select(options, selected=0, title="", **kwargs):
|
|
119
|
+
seen.update(kwargs)
|
|
120
|
+
return 0
|
|
121
|
+
|
|
122
|
+
monkeypatch.setattr(cli, "_arrow_select", fake_select)
|
|
123
|
+
monkeypatch.setattr(cli, "HAS_RICH", False)
|
|
124
|
+
decision = cli._confirm_tool_execution_decision(
|
|
125
|
+
"write_file", {"path": "/tmp/w/fx.py", "content": "x = 1\n"}, config_policy="safe")
|
|
126
|
+
assert decision.approved and seen["collapse_to"] == "fx.py"
|
|
127
|
+
seen.clear()
|
|
128
|
+
cli._confirm_tool_execution_decision(
|
|
129
|
+
"run_command", {"command": "TOKEN=abc123 python3 -m unittest -v"}, config_policy="safe")
|
|
130
|
+
assert "abc123" not in seen.get("collapse_to", "") and "unittest" in seen.get("collapse_to", "")
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def test_the_answer_rules_say_not_to_paste_back_tool_output():
|
|
134
|
+
from aria_code.apps.cli.prompts.system_prompts import build_response_style_rule
|
|
135
|
+
|
|
136
|
+
assert "do not paste back" in build_response_style_rule("en")
|
|
137
|
+
assert "不要整段重贴" in build_response_style_rule("zh")
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def test_the_coding_prompt_asks_for_a_short_summary():
|
|
141
|
+
"""A coding turn gets CODING_SYSTEM_PROMPT, not the answer-style rule: the
|
|
142
|
+
recorded turn pasted both files and the whole test run back."""
|
|
143
|
+
from aria_code.apps.cli.prompts.coding import CODING_SYSTEM_PROMPT
|
|
144
|
+
|
|
145
|
+
assert "## FINAL SUMMARY" in CODING_SYSTEM_PROMPT
|
|
146
|
+
assert "Do NOT paste file contents" in CODING_SYSTEM_PROMPT
|
|
147
|
+
|
|
@@ -30,10 +30,15 @@ def test_light_markdown_theme_uses_high_contrast_text():
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def test_make_markdown_uses_neutral_code_theme():
|
|
33
|
+
"""Code keeps the terminal's background. "bw" was meant to be neutral, but
|
|
34
|
+
it paints #ffffff behind every block: white slabs in a dark terminal."""
|
|
35
|
+
from rich.syntax import Syntax
|
|
36
|
+
|
|
33
37
|
md = make_markdown("`AAPL` and ```python\nprint('ok')\n```")
|
|
34
38
|
|
|
35
|
-
assert
|
|
36
|
-
assert
|
|
39
|
+
assert md.code_theme in ("ansi_dark", "ansi_light")
|
|
40
|
+
assert md.inline_code_theme == md.code_theme
|
|
41
|
+
assert not Syntax.get_theme(md.code_theme).get_background_style()
|
|
37
42
|
|
|
38
43
|
|
|
39
44
|
def test_rich_theme_defaults_apple_terminal_to_light_without_color_metadata():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|