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