aria-code 0.112.0__tar.gz → 0.114.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aria_code-0.112.0/src/aria_code.egg-info → aria_code-0.114.0}/PKG-INFO +2 -2
- {aria_code-0.112.0 → aria_code-0.114.0}/README.md +1 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/pyproject.toml +2 -2
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/_version.py +1 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/bootstrap.py +5 -2
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/model_cmds.py +12 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +1 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/config_store.py +43 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/model_catalog.py +30 -12
- aria_code-0.114.0/src/aria_code/apps/cli/model_retirement.py +63 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/write_tools.py +22 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_cli.py +8 -8
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ariarc.py +1 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/doctor.py +1 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/model_capability.py +5 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/openai_compat.py +1 -1
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/registry.py +1 -1
- aria_code-0.114.0/src/aria_code/safety/client_isolation.py +178 -0
- aria_code-0.114.0/src/aria_code/training/__init__.py +1 -0
- aria_code-0.114.0/src/aria_code/training/compare.py +117 -0
- aria_code-0.114.0/src/aria_code/training/sft_dataset.py +230 -0
- {aria_code-0.112.0 → aria_code-0.114.0/src/aria_code.egg-info}/PKG-INFO +2 -2
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/SOURCES.txt +9 -0
- aria_code-0.114.0/tests/test_client_isolation_guard.py +102 -0
- aria_code-0.114.0/tests/test_eval_hard_suite.py +479 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_eval_task_bank.py +1 -1
- aria_code-0.114.0/tests/test_gemini_retirement.py +101 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_capability_registry.py +5 -3
- aria_code-0.114.0/tests/test_training_pipeline.py +172 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/LICENSE +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/NOTICE +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/setup.cfg +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/base.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/code_review.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/critic.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/deepen.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/models.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/pipeline.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/themes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/deep/tiers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/engineering/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/engineering/coder.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/engineering/tester.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/catalyst.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/debate.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/earnings.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/fundamental.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/macro.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/news.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/risk.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/sector.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/strategist.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/synthesis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/financial/technical.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/orchestrator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/portfolio_agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/business_match.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/signal_scheme.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/sports/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/sports/football_agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/supervisor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/team.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aliyun_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/README.md +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/README.md +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/approvals.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/conversation.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/digest.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/intake.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/channels/tradingview.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/README.md +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/_optional.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/broker_render.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/chat_turn.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/team.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/config_paths.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/constants.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/context.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/deterministic.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/direct.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/exec_events.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/football_reports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/google_login.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/headless.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/helpers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/hooks.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/i18n.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/intent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/intent_router.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/main.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/market_hours.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/market_universe.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/message_processing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/model_probe.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/preflight.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/project_aria.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/base.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/release_download.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/review_runner.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/sandbox.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/session_export.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/session_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/context.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/update_check.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/updater.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/daemon/README.md +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/vscode/README.md +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/vscode/package.json +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_daemon.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_feishu_bot.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_mcp_server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_relay_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_relay_server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/aria_telegram_bot.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/artifacts.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/backtest_engine.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/backtest_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/automation.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/base.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/capabilities.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/config.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/paper_broker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/planning.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/brokers/trading.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/canva_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/change_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/aria_relay_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/canva_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/figma_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/football_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/kling_video_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/market_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/openai_image_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/runway_video_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/cloud_memory.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/command_safety.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/computer_use_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/dashboard_generator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/data_analysis_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/data_cleaner.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/data_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/base.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/router.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/demo_player.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/backtest_engine.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/backtest_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/finance_formulas.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/domain/strategy_vault.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/harness.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/runner.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/evals/summary.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/external_agent_runner.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/figma_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/file_analysis_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/finance_formulas.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/football_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/image_gen_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/intent_classifier.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/kling_video_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/licensing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/local_finance_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/local_image_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/local_llm_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/macro_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/markdown_pdf.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/market_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/mcp_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/memory_manager.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/notification_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/openai_image_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/export.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/paths.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_infra/product.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/cache.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/context.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/data.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/references.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/settings.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_services/usage.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/base.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/finance/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/logistics/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/payments/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/realty/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/packs/rules.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/plan_utils.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/plugin_loader.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/portfolio_ledger.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/preview_server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/privacy/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/privacy/feedback.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_review.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_review_api.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_review_server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/project_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/anthropic.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/base.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/custom.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/llm/ollama.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/local_image_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/local_llm_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/providers/tool_messages.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/realty_data_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/relay_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/report_exporters.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/report_generator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/review_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/acceptance.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/agent_loop.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/approval.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/budget.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/checkpoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/crash_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/events.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/gateway.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/lsp.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/orchestrator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/processes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/repo_map.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/run_state.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/run_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/self_healing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/subagent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/task_ledger.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/tool_executor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/tool_policy.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runtime/worktrees.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/runway_video_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/permissions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/sandbox.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/safety/service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/setup_wizard.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/spreadsheet_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/strategy_vault.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/artifact_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/broker_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/build_quant_engine.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/code_audit_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/computer_use_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/extended_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/image_gen_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/local_finance_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_carriers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_inventory.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_io.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/logistics_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/macro_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/notification_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/project_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/realty_data_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/tools/stripe_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/banner.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/completer.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/console.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/image_render.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/input_box.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/mentions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/picker.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/finance.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/market.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/responsive.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/render/team.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/robot.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/ui/startup_dashboard.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/utils/vscode_uri.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/video_analysis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/video_editor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace/__init__.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace/files.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace/verify.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_changes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_context.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/workspace_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/entry_points.txt +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/requires.txt +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code.egg-info/top_level.txt +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_adk_market_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_agent_key_points_language.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_agent_team_fallback.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_analyze_file_tool.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_architecture_ledger_is_true.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_architecture_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_aria_cli_core.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_aria_mcp_server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_aria_sdk.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_artifact_publishing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_artifacts_and_reports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ashare_prediction_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_background_processes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_engine.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_backtest_runs_what_it_names.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broken_akshare_is_optional.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_automation.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_chat_confirm_gate.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_planning.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_safety.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_broker_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_budget.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_business_workflow_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_callback_provider_cleanup.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_canva_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_canvas_cmds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_card_approvals.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_channel_intake.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_channels.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_chart_handlers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_chat_bots_fail_closed.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_chat_routing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ci_security_workflow.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_app_split.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_bootstrap.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_config_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_lifecycle_hooks.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_runtime_consumer.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_tool_executor_module.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cli_updater.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_cloud_memory.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_code_audit_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_code_review_agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_codegen_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_coder_tester_self_healing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_coder_tool_safety.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_collaboration.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_command_loggers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_command_safety.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_compare_strategies.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_completions_builder.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_config_paths.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_configured_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_container_entrypoint.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_container_entrypoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_context_checkpoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_context_references.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_context_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_conversation_core.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_crash_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_credential_file_permissions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_custom_providers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_daemon_gateway_config.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_dashboard_generator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_data_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_data_service_imports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_data_without_model.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_datasource_routing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_deep_analysis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_degrades_without_quant_engine.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_doctor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_doctor_describes_the_current_install.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_doctor_npm_scope.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_edit_and_command_safety.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_engine_boundary.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_english_output_group.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_enterprise_tool_honesty.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_env_switch_docs.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_eval_summary.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_eval_trajectories.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_evals_harness.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_event_import_roots.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_exec_events.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_extended_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_feishu_swarm_config.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_file_links.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_finalize_release.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_finance_renderers.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_finance_service_catalog.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_first_run_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_first_run_works.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_football_agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_football_prediction_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_cloud_models.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_cloud_routing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_login.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_google_search_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_headless_command_approval.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_headless_is_agentic.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_honest_surfaces.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_image_gen_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_image_inputs.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_import_graph_budget.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_intent_router.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_intent_signals.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_kling_video_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_lazy_rebind.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_legacy_module_imports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_license_consistency.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_licensing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_local_image_provider.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_local_workspace_execution.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_logistics_3pl.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_logistics_and_finance_agents.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_lsp.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_markdown_pdf.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_answers_in_english.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_data_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_history_inheritance.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_history_tool.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_hours.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_questions_on_backend.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_symbol_extraction.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_market_universe.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_mcp_circuit.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_mcp_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_mentions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_choice_is_the_users.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_probe.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_model_selection_state.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_narrow_chinese_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_native_binary_entrypoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_native_installer.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_natural_language_routing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_new_modules.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_no_tools_route.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_no_uncommitted_imports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_numeric_listings.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ollama_stream_imports.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ollama_stream_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_openai_image_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_operations_suite.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_os_sandbox.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_output_discipline_prompt.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_output_rendering.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packages_facade.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packaging_constraints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packaging_manifest.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_packs_domains.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_pdf_report.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_pick_best_installed_model.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_plan_mode.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_platform_package_assembly.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_platform_packages.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_platform_publish.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_plotly_html_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_portfolio_language.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_portfolio_ledger.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_post_turn_context_decision.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_preflight.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_preview_server.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_privacy_feedback.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_aria.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_context_files.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_review.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_project_review_api.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_prompt_assembly.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_prompt_selection.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_autoconfig.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_error_classification.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_error_messages.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_integration.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_provider_registry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_public_service_status.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_quant_engine_namespace.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_rebind_contract.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_rebind_namespace_contract.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_client_credentials.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_event_verification.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_sends_for_clients.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_relay_url.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_badges.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_chain.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_commit_identity.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_download.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_push_is_atomic.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_reaches_the_registries.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_verification_waits.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_release_workflow_permissions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_report_charts.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_report_generator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_report_prompt_language.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_research_protocol.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_research_quality.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_responsive_rendering.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_review_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_risk_earnings_ops.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_root_module_budget.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_rsi_without_pandas_ta.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_acceptance.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_agent_loop.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_approval.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_bridge.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_bridge_fallback.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_checkpoints.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_event_identity.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_gateway.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_repo_map.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_run_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_tool_executor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runtime_worktrees.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_runway_video_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_safety_permissions.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_safety_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_safety_service_adoption.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_service_diagnostics_security.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_session_search.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_settings_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_shell_commands_as_written.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_shipper_digest.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_single_import_root.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_skill_agent_binding.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_skill_catalog.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_skill_loader.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_slash_popup.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_spreadsheet_tools.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_sse_stream_contract.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_startup_dashboard.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_startup_keeps_cloud_model.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_startup_latency.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_status_language.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_streaming_pipeline.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_stripe_agent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_subagent.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_supervisor_routing.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_system_prompts.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_system_tools_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_task_orchestrator.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_team_analysts.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_team_synthesis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_terminal_mixins.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_terminal_snapshots.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tls_trust_store.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_policy.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_scope.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tool_step_output.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_trading_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_tradingview_bridge.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_turn_planning.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_completer_references.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_console_theme.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_input_box.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_language_and_model.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_ui_robot_banner.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_update_health_routes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_verification_hint.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_verification_policy.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_version_consistency.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_version_counter.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vertex_busy_retry.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vertex_empty_rounds.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vertex_models.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_video_analysis.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_video_editor.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_vscode_mcp.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_agents.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_cli_registration.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_erp_client.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_warehouse_workflow.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_wheel_is_installable.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_changes.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_context.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_files.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_scope.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_service.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_workspace_verify.py +0 -0
- {aria_code-0.112.0 → aria_code-0.114.0}/tests/test_wrapped_indent.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aria-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.114.0
|
|
4
4
|
Summary: Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Project-URL: Homepage, https://github.com/artheras/aria-code
|
|
@@ -171,7 +171,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
171
171
|
<p align="center">
|
|
172
172
|
<a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
|
|
173
173
|
<!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
|
|
174
|
-
<a href="https://pypi.org/project/aria-code/0.
|
|
174
|
+
<a href="https://pypi.org/project/aria-code/0.114.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.114.0%2Fjson&query=%24.info.version&prefix=v&style=flat-square&logo=pypi&label=PyPI&color=blue&cacheSeconds=300" alt="PyPI version"></a>
|
|
175
175
|
<a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
|
|
176
176
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
|
|
177
177
|
</p>
|
|
@@ -15,7 +15,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
15
15
|
<p align="center">
|
|
16
16
|
<a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
|
|
17
17
|
<!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
|
|
18
|
-
<a href="https://pypi.org/project/aria-code/0.
|
|
18
|
+
<a href="https://pypi.org/project/aria-code/0.114.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.114.0%2Fjson&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.114.0"
|
|
8
8
|
description = "Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "Apache-2.0" }
|
|
@@ -45,7 +45,7 @@ classifiers = [
|
|
|
45
45
|
# parsers, the SQL engine and chart renderer are optional extras below — the
|
|
46
46
|
# code already lazy-imports them and degrades gracefully when absent.
|
|
47
47
|
dependencies = [
|
|
48
|
-
# The default model's client. DEFAULT_MODEL is google/gemini-
|
|
48
|
+
# The default model's client. DEFAULT_MODEL is google/gemini-3.5-flash, and
|
|
49
49
|
# this used to be the optional `google` extra — so a plain
|
|
50
50
|
# `pip install aria-code` failed on the very first prompt with "Gemini/Vertex
|
|
51
51
|
# AI 需要 google-genai,当前未安装". The comment above that extra said as
|
|
@@ -146,7 +146,10 @@ def initialize_cli_environment() -> None:
|
|
|
146
146
|
# Provider configuration is the user's to make (that is what `/model` and
|
|
147
147
|
# `.ariarc` are for); the code's job is to have a sane default and then get
|
|
148
148
|
# out of the way.
|
|
149
|
-
DEFAULT_MODEL = os.getenv("ARIA_DEFAULT_MODEL", "google/gemini-
|
|
149
|
+
DEFAULT_MODEL = os.getenv("ARIA_DEFAULT_MODEL", "google/gemini-3.5-flash")
|
|
150
|
+
# A stable model (Google: available until at least May 2027), not a short-term
|
|
151
|
+
# one: an install that is rarely updated should not lose its default within
|
|
152
|
+
# months. gemini-2.5-pro, the previous default, retires in October 2026.
|
|
150
153
|
|
|
151
154
|
|
|
152
155
|
def default_config() -> dict:
|
|
@@ -159,7 +162,7 @@ def default_config() -> dict:
|
|
|
159
162
|
"ollama_url": os.getenv("OLLAMA_URL", "http://localhost:11434"),
|
|
160
163
|
# Which backend serves a bare, unprefixed model name. Only consulted
|
|
161
164
|
# for names that do not name their own provider ("qwen2.5:7b"); a
|
|
162
|
-
# prefixed id like "google/gemini-
|
|
165
|
+
# prefixed id like "google/gemini-3.5-flash" always wins.
|
|
163
166
|
"local_provider": os.getenv("ARIA_LLM_PROVIDER", "ollama"),
|
|
164
167
|
"provider_fallback": "configured",
|
|
165
168
|
"model": DEFAULT_MODEL,
|
|
@@ -185,6 +185,17 @@ class ModelCommandsMixin:
|
|
|
185
185
|
async def cmd_model(self, args: str):
|
|
186
186
|
name = args.strip()
|
|
187
187
|
|
|
188
|
+
# A model Google has retired would fail on the next request; switch
|
|
189
|
+
# to its replacement and say so (model_retirement.py).
|
|
190
|
+
from aria_code.apps.cli.model_retirement import retired_replacement
|
|
191
|
+
|
|
192
|
+
_replacement = retired_replacement(name)
|
|
193
|
+
if _replacement:
|
|
194
|
+
msg = ui_text(self, f"ℹ {name} 已被 Google 停用,改用 {_replacement}。",
|
|
195
|
+
f"ℹ {name} has been retired by Google; using {_replacement}.")
|
|
196
|
+
self.context.console.print(f"[yellow]{msg}[/yellow]") if self.context.has_rich else print(msg)
|
|
197
|
+
name = _replacement
|
|
198
|
+
|
|
188
199
|
# ── "provider/model" format (Open Interpreter style) ─────────────────
|
|
189
200
|
# Examples: /model deepseek/deepseek-chat /model ollama/qwen2.5:7b
|
|
190
201
|
# /model openai/gpt-4.5 /model openai/o3 /model openai/o4-mini
|
|
@@ -1421,7 +1432,7 @@ class ModelCommandsMixin:
|
|
|
1421
1432
|
("deepseek", "DeepSeek", "deepseek/deepseek-chat"),
|
|
1422
1433
|
("anthropic", "Anthropic", "anthropic/claude-sonnet-4-6"),
|
|
1423
1434
|
("openai", "OpenAI", "openai/gpt-4.5"),
|
|
1424
|
-
("google", "Google Gemini", "google/gemini-
|
|
1435
|
+
("google", "Google Gemini", "google/gemini-3.5-flash"),
|
|
1425
1436
|
("xai", "xAI Grok", "xai/grok-3-fast"),
|
|
1426
1437
|
("groq", "Groq", "groq/llama-3.3-70b-versatile"),
|
|
1427
1438
|
("mistral", "Mistral", "mistral/mistral-large-latest"),
|
{aria_code-0.112.0 → aria_code-0.114.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py
RENAMED
|
@@ -78,7 +78,7 @@ class OrchestratorCommandsMixin:
|
|
|
78
78
|
return
|
|
79
79
|
|
|
80
80
|
if self.context.has_rich:
|
|
81
|
-
provider = ConfiguredProvider(self.context.config, "gemini-
|
|
81
|
+
provider = ConfiguredProvider(self.context.config, "gemini-3.5-flash")
|
|
82
82
|
|
|
83
83
|
with self.context.console.status(f"[dim]{ui_text(self, 'Orchestrator 正在编排智能体网络', 'Orchestrator is planning the agent network')}...[/dim]"):
|
|
84
84
|
result = await dynamic_agent_orchestration(request, provider)
|
|
@@ -64,15 +64,57 @@ def load_cli_config(
|
|
|
64
64
|
starting, because the user would then have no way to run the tool that
|
|
65
65
|
would fix it.
|
|
66
66
|
"""
|
|
67
|
-
|
|
67
|
+
service = build_settings_service(paths, defaults, sync_policy=sync_policy)
|
|
68
|
+
config = service.load()
|
|
69
|
+
# A model Google has retired fails on every request. The user's own saved
|
|
70
|
+
# choice is replaced once and written back; see model_retirement.
|
|
71
|
+
from aria_code.apps.cli.model_retirement import migrate_config
|
|
72
|
+
|
|
73
|
+
saved = migrate_config(config)
|
|
74
|
+
if saved:
|
|
75
|
+
try:
|
|
76
|
+
service.save(config)
|
|
77
|
+
except Exception:
|
|
78
|
+
pass
|
|
79
|
+
_announce(saved, config, pinned=False)
|
|
68
80
|
try:
|
|
69
81
|
from aria_code.ariarc import apply_to_config
|
|
70
82
|
|
|
71
83
|
apply_to_config(config)
|
|
72
84
|
except Exception:
|
|
73
85
|
pass
|
|
86
|
+
# A project's .ariarc is the user's file: replace in memory, say so, never rewrite it.
|
|
87
|
+
pinned = migrate_config(config)
|
|
88
|
+
if pinned:
|
|
89
|
+
_announce(pinned, config, pinned=True)
|
|
74
90
|
return config
|
|
75
91
|
|
|
76
92
|
|
|
93
|
+
_ANNOUNCED: set[tuple[str, str]] = set()
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _announce(changes, config: dict, *, pinned: bool) -> None:
|
|
97
|
+
"""One line on stderr per retired model, once per process."""
|
|
98
|
+
import sys
|
|
99
|
+
|
|
100
|
+
zh = str(config.get("ui_lang", "")).lower().startswith("zh")
|
|
101
|
+
for _key, old, new in changes:
|
|
102
|
+
if (old, new) in _ANNOUNCED:
|
|
103
|
+
continue
|
|
104
|
+
_ANNOUNCED.add((old, new))
|
|
105
|
+
if zh:
|
|
106
|
+
where = "项目 .ariarc 里固定的" if pinned else "你设置的"
|
|
107
|
+
tail = ",请修改 .ariarc 里的 model" if pinned else "。可以用 /model 换成其他模型"
|
|
108
|
+
msg = f"ℹ {where}模型 {old} 已被 Google 停用,本次改用 {new}{tail}。"
|
|
109
|
+
else:
|
|
110
|
+
where = "The model pinned in this project's .ariarc" if pinned else "Your model"
|
|
111
|
+
tail = "; update the model in .ariarc" if pinned else "; use /model to pick another"
|
|
112
|
+
msg = f"ℹ {where}, {old}, has been retired by Google. Using {new}{tail}."
|
|
113
|
+
try:
|
|
114
|
+
print(msg, file=sys.stderr)
|
|
115
|
+
except Exception:
|
|
116
|
+
pass
|
|
117
|
+
|
|
118
|
+
|
|
77
119
|
def save_cli_config(paths: AriaConfigPaths, cfg: dict) -> None:
|
|
78
120
|
build_settings_service(paths, {}).save(cfg)
|
|
@@ -16,27 +16,43 @@ MODELS = {
|
|
|
16
16
|
# ════════════════════════════════════════════════════════════════════
|
|
17
17
|
# ── Google Gemini 平台核心默认模型(Google Cloud)───────────────────────
|
|
18
18
|
# ════════════════════════════════════════════════════════════════════
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
# Gemini 2.5 retires in October 2026 (model_retirement.py). The default is
|
|
20
|
+
# a stable model; the newest Flash is offered beside it, but its line is
|
|
21
|
+
# replaced every few months.
|
|
22
|
+
"gemini-flash": {
|
|
23
|
+
"id": "google/gemini-3.5-flash",
|
|
24
|
+
"name": "Gemini Flash",
|
|
25
|
+
"version": "3.5",
|
|
23
26
|
"tag": "Platform",
|
|
24
27
|
"speed": "★★★★★",
|
|
25
28
|
"intelligence": "★★★★★",
|
|
26
|
-
"description": "
|
|
29
|
+
"description": "平台默认:稳定版(至少到 2027 年 5 月)、百万级上下文、代码与金融分析",
|
|
27
30
|
"capabilities": ["multimodal", "1M context", "tool calls", "quant", "code"],
|
|
28
31
|
"thinking": True, "tools": True,
|
|
29
32
|
"max_tokens": 8192, "num_ctx": 1048576, "temperature": 0.2,
|
|
30
33
|
"badge": "Default",
|
|
31
34
|
},
|
|
32
|
-
"gemini-
|
|
33
|
-
"id": "google/gemini-
|
|
34
|
-
"name": "Gemini Flash",
|
|
35
|
-
"version": "
|
|
35
|
+
"gemini-pro": {
|
|
36
|
+
"id": "google/gemini-3.8-flash",
|
|
37
|
+
"name": "Gemini Flash (latest)",
|
|
38
|
+
"version": "3.8",
|
|
39
|
+
"tag": "Platform",
|
|
40
|
+
"speed": "★★★★★",
|
|
41
|
+
"intelligence": "★★★★★",
|
|
42
|
+
"description": "最新最强:推理与工具调用最好;迭代快,Google 几个月内会推出替代版",
|
|
43
|
+
"capabilities": ["multimodal", "1M context", "tool calls", "quant", "code"],
|
|
44
|
+
"thinking": True, "tools": True,
|
|
45
|
+
"max_tokens": 8192, "num_ctx": 1048576, "temperature": 0.2,
|
|
46
|
+
"badge": "Latest",
|
|
47
|
+
},
|
|
48
|
+
"gemini-lite": {
|
|
49
|
+
"id": "google/gemini-3.5-flash-lite",
|
|
50
|
+
"name": "Gemini Flash-Lite",
|
|
51
|
+
"version": "3.5",
|
|
36
52
|
"tag": "Platform",
|
|
37
53
|
"speed": "★★★★★",
|
|
38
54
|
"intelligence": "★★★★",
|
|
39
|
-
"description": "
|
|
55
|
+
"description": "极速低价:低延迟、适合批量与实时行情",
|
|
40
56
|
"capabilities": ["fast inference", "1M context", "tool calls", "low latency"],
|
|
41
57
|
"thinking": False, "tools": True,
|
|
42
58
|
"max_tokens": 8192, "num_ctx": 1048576, "temperature": 0.2,
|
|
@@ -341,8 +357,10 @@ MODELS = {
|
|
|
341
357
|
# Model aliases: short names / Ollama IDs → MODELS key
|
|
342
358
|
MODEL_ALIASES = {
|
|
343
359
|
# ── Google Gemini ─────────────────────────────────────────────────
|
|
344
|
-
"gemini": "gemini-
|
|
360
|
+
"gemini": "gemini-flash", "gemini-pro": "gemini-pro", "gemini2.5": "gemini-flash", "gpro": "gemini-pro",
|
|
361
|
+
"gemini-latest": "gemini-pro", "glatest": "gemini-pro",
|
|
345
362
|
"gemini-flash": "gemini-flash", "gflash": "gemini-flash", "flash": "gemini-flash",
|
|
363
|
+
"gemini-lite": "gemini-lite", "glite": "gemini-lite",
|
|
346
364
|
# ── Qwen 2.5 ──────────────────────────────────────────────────────
|
|
347
365
|
"qwen7b": "qwen7b", "q7": "qwen7b", "sonata": "qwen7b", "s": "qwen7b",
|
|
348
366
|
"qwen14b": "qwen14b", "q14": "qwen14b",
|
|
@@ -464,7 +482,7 @@ _MODEL_ID_INDEX: dict[str, str] | None = None
|
|
|
464
482
|
def _model_id_index() -> dict[str, str]:
|
|
465
483
|
"""Lazily build a lowercase {model id -> MODELS key} index.
|
|
466
484
|
|
|
467
|
-
The config stores the provider-qualified *id* ("google/gemini-
|
|
485
|
+
The config stores the provider-qualified *id* ("google/gemini-3.5-flash")
|
|
468
486
|
while MODELS is keyed by short name ("gemini-pro"), so without this lookup
|
|
469
487
|
a registered model resolves to "_community_" and its own registry entry is
|
|
470
488
|
never used.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"""Models Google has retired, and what Aria moves their users to.
|
|
2
|
+
|
|
3
|
+
Google's Vertex AI lifecycle page retires gemini-2.5-pro, -flash and
|
|
4
|
+
-flash-lite on 20 October 2026 (the release notes give 16 October, so plan
|
|
5
|
+
for the earlier date); the Gemini API already admits only users who have
|
|
6
|
+
used 2.5 before. gemini-2.0-flash and -flash-lite shut down on 1 June 2026,
|
|
7
|
+
and every 1.5 model in 2025. A saved config that still names one of them
|
|
8
|
+
would fail on every request with an error that does not say why.
|
|
9
|
+
|
|
10
|
+
So a retired id is replaced when the config is loaded, and the replacement
|
|
11
|
+
is written back so it happens once: a stable model, not a short-term one,
|
|
12
|
+
so an install that is rarely updated does not break again within months.
|
|
13
|
+
The replacements follow Google's recommendations; 2.5 Flash moves to 3.5
|
|
14
|
+
Flash rather than a Lite model so the user loses nothing in capability.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
import re
|
|
20
|
+
|
|
21
|
+
# bare id -> bare replacement
|
|
22
|
+
RETIRED: dict[str, str] = {
|
|
23
|
+
"gemini-2.5-pro": "gemini-3.5-flash",
|
|
24
|
+
"gemini-2.5-flash": "gemini-3.5-flash",
|
|
25
|
+
"gemini-2.5-flash-lite": "gemini-3.1-flash-lite",
|
|
26
|
+
"gemini-2.0-flash": "gemini-3.5-flash",
|
|
27
|
+
"gemini-2.0-flash-lite": "gemini-3.1-flash-lite",
|
|
28
|
+
"gemini-1.5-pro": "gemini-3.5-flash",
|
|
29
|
+
"gemini-1.5-flash": "gemini-3.5-flash",
|
|
30
|
+
"gemini-1.0-pro": "gemini-3.5-flash",
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
# Dated, versioned and preview spellings of the same models:
|
|
34
|
+
# gemini-2.5-pro-preview-06-05, gemini-2.0-flash-001, gemini-1.5-pro-latest.
|
|
35
|
+
_SUFFIX = re.compile(r"(-preview(-[\w-]+)?|-exp(-[\w-]+)?|-latest|-\d{3}|-\d{2}-\d{2}|-\d{2}-\d{4})+$")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def retired_replacement(model: str) -> str | None:
|
|
39
|
+
"""The id to use instead of *model*, keeping its provider prefix; None if it is not retired."""
|
|
40
|
+
if not model:
|
|
41
|
+
return None
|
|
42
|
+
text = str(model).strip()
|
|
43
|
+
prefix, _, bare = text.rpartition("/")
|
|
44
|
+
key = _SUFFIX.sub("", bare.lower())
|
|
45
|
+
replacement = RETIRED.get(key)
|
|
46
|
+
if replacement is None:
|
|
47
|
+
return None
|
|
48
|
+
return f"{prefix}/{replacement}" if prefix else replacement
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def migrate_config(config: dict, keys: tuple[str, ...] = ("model",)) -> list[tuple[str, str, str]]:
|
|
52
|
+
"""Replace retired model ids in *config* in place; return (key, old, new) for each."""
|
|
53
|
+
changes = []
|
|
54
|
+
for key in keys:
|
|
55
|
+
old = config.get(key)
|
|
56
|
+
new = retired_replacement(old) if isinstance(old, str) else None
|
|
57
|
+
if new:
|
|
58
|
+
config[key] = new
|
|
59
|
+
changes.append((key, old, new))
|
|
60
|
+
return changes
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
__all__ = ["RETIRED", "migrate_config", "retired_replacement"]
|
|
@@ -118,6 +118,19 @@ def _print_lsp_diags(diags: list, console, has_rich: bool, limit: int = 6) -> No
|
|
|
118
118
|
console.print(f" [dim]… +{extra} more[/dim]") if has_rich else print(f" ... +{extra} more")
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
def _client_isolation_error(p: pathlib.Path, content: str) -> str | None:
|
|
122
|
+
"""Why a client's document must not be written as it stands (aria_code.safety.client_isolation).
|
|
123
|
+
|
|
124
|
+
A failure inside the check never blocks a write: it is a guard on top of
|
|
125
|
+
the write path, not a new way for writing to break.
|
|
126
|
+
"""
|
|
127
|
+
try:
|
|
128
|
+
from aria_code.safety.client_isolation import check_write
|
|
129
|
+
return check_write(p, content, [pathlib.Path.cwd()])
|
|
130
|
+
except Exception:
|
|
131
|
+
return None
|
|
132
|
+
|
|
133
|
+
|
|
121
134
|
def _is_safe(p: pathlib.Path, params: dict | None = None) -> bool:
|
|
122
135
|
if params and params.get("_workspace"):
|
|
123
136
|
from aria_code.workspace.files import WorkspaceSecurity
|
|
@@ -463,6 +476,9 @@ def tool_write_file(params: dict) -> dict:
|
|
|
463
476
|
p = raw_path.resolve()
|
|
464
477
|
if not _is_safe(p, params):
|
|
465
478
|
return {"success": False, "error": f"Access denied: path '{p}' is outside allowed directories"}
|
|
479
|
+
leak = _client_isolation_error(p, content)
|
|
480
|
+
if leak:
|
|
481
|
+
return {"success": False, "error": leak, "data": {"client_isolation": True}}
|
|
466
482
|
|
|
467
483
|
existed = p.exists()
|
|
468
484
|
desktop = pathlib.Path.home() / "Desktop"
|
|
@@ -719,6 +735,9 @@ def tool_edit_file(params: dict) -> dict:
|
|
|
719
735
|
|
|
720
736
|
replacements = occurrences if replace_all else 1
|
|
721
737
|
new_content = content.replace(old_str, new_str, -1 if replace_all else 1)
|
|
738
|
+
leak = _client_isolation_error(p, new_content)
|
|
739
|
+
if leak:
|
|
740
|
+
return {"success": False, "error": leak, "data": {"client_isolation": True}}
|
|
722
741
|
store = _change_store()
|
|
723
742
|
change = store.stage(p, new_content, source="edit_file")
|
|
724
743
|
added = len(new_str.splitlines())
|
|
@@ -855,6 +874,9 @@ def tool_multi_edit(params: dict) -> dict:
|
|
|
855
874
|
|
|
856
875
|
# ── Phase 2: stage + apply once ───────────────────────────────────────
|
|
857
876
|
store = _change_store()
|
|
877
|
+
leak = _client_isolation_error(p, working)
|
|
878
|
+
if leak:
|
|
879
|
+
return {"success": False, "error": leak, "data": {"client_isolation": True}}
|
|
858
880
|
change = store.stage(p, working, source="multi_edit")
|
|
859
881
|
console, has_rich = _ui()
|
|
860
882
|
|
|
@@ -508,7 +508,7 @@ _PROVIDER_DESC: Dict[str, str] = {
|
|
|
508
508
|
"anthropic": "Claude Sonnet 4 / Opus 4 长文档·代码·分析",
|
|
509
509
|
"groq": "Llama3/Qwen 超高速推理 (免费额度)",
|
|
510
510
|
"together": "开源模型聚合 Llama/Qwen/DeepSeek 等 100+ 模型",
|
|
511
|
-
"google": "Gemini
|
|
511
|
+
"google": "Gemini 3.8 Flash / 3.5 Flash / 3.5 Flash-Lite 多模态·超长上下文",
|
|
512
512
|
"xai": "Grok-3 / Grok-3-Fast 实时网络数据·Twitter整合",
|
|
513
513
|
"mistral": "Mistral Large / Codestral 欧洲顶级·代码生成强",
|
|
514
514
|
"cohere": "Command R+ RAG检索增强·企业文档处理",
|
|
@@ -660,17 +660,17 @@ _PROVIDER_GUIDE: Dict[str, str] = {
|
|
|
660
660
|
"1. 打开 aistudio.google.com/app/apikey\n"
|
|
661
661
|
"2. 用 Google 账号登录 → 「Create API key」\n"
|
|
662
662
|
"3. 复制 AIzaSy... 格式的密钥\n\n"
|
|
663
|
-
"解锁: Gemini
|
|
664
|
-
"用法: /model google/gemini-
|
|
665
|
-
"
|
|
663
|
+
"解锁: Gemini 3.8 Flash · Gemini 3.5 Flash · 多模态视觉\n"
|
|
664
|
+
"用法: /model google/gemini-3.5-flash\n"
|
|
665
|
+
"免费额度以 Google AI Studio 当前公布为准"
|
|
666
666
|
),
|
|
667
667
|
"gemini": (
|
|
668
668
|
"同 google provider,填入 Google AI Studio 的 API Key\n\n"
|
|
669
669
|
"推荐模型:\n"
|
|
670
|
-
" gemini-
|
|
671
|
-
" gemini-
|
|
672
|
-
" gemini-
|
|
673
|
-
"用法: /model gemini/gemini-
|
|
670
|
+
" gemini-3.5-flash — 稳定版,适合生产(默认)\n"
|
|
671
|
+
" gemini-3.8-flash — 最新最强,迭代较快\n"
|
|
672
|
+
" gemini-3.5-flash-lite — 更快更省\n\n"
|
|
673
|
+
"用法: /model gemini/gemini-3.5-flash"
|
|
674
674
|
),
|
|
675
675
|
"xai": (
|
|
676
676
|
"1. 打开 console.x.ai → 注册/登录\n"
|
|
@@ -51,7 +51,7 @@ parent directories (walks up to filesystem root, stops at $HOME).
|
|
|
51
51
|
// Which model this project runs on. Pins the backend for everyone who
|
|
52
52
|
// opens the repo, so it does not depend on each developer's global
|
|
53
53
|
// config. An explicit /model during a session still wins.
|
|
54
|
-
"model": "google/gemini-
|
|
54
|
+
"model": "google/gemini-3.5-flash",
|
|
55
55
|
"provider": "google",
|
|
56
56
|
"max_rounds": 40,
|
|
57
57
|
|
|
@@ -680,7 +680,7 @@ def _iter_required_modules() -> Iterable[tuple[str, str]]:
|
|
|
680
680
|
yield "pandas", "dataframes"
|
|
681
681
|
yield "numpy", "numeric processing"
|
|
682
682
|
yield "yfinance", "US/HK/global market data"
|
|
683
|
-
# The default model is google/gemini-
|
|
683
|
+
# The default model is google/gemini-3.5-flash, so without this a fresh
|
|
684
684
|
# install cannot answer a single prompt.
|
|
685
685
|
yield "google.genai", "Gemini / Vertex AI (the default model)"
|
|
686
686
|
|
|
@@ -196,6 +196,11 @@ _CAPABILITY_TABLE: Dict[str, ModelCapability] = {
|
|
|
196
196
|
# Registered here as well as in the MODELS catalogue: callers such as the
|
|
197
197
|
# tool-routing check in aria_cli use get_model_capability() directly, and a
|
|
198
198
|
# missing entry silently degrades the model to text_only / 4K context.
|
|
199
|
+
"gemini-3.8-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="large", vision=True, thinking=True, notes="Gemini 3.8 Flash — 1M context, short-term line"),
|
|
200
|
+
"gemini-3.5-flash-lite": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True, notes="Gemini 3.5 Flash-Lite — 1M context"),
|
|
201
|
+
"gemini-3.5-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="large", vision=True, thinking=True, notes="Gemini 3.5 Flash — 1M context, stable (default)"),
|
|
202
|
+
"gemini-3.1-flash-lite": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True, notes="Gemini 3.1 Flash-Lite — 1M context"),
|
|
203
|
+
# Retired by Google (model_retirement.py migrates configs that name them).
|
|
199
204
|
"gemini-2.5-pro": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="large", vision=True, thinking=True, notes="Gemini 2.5 Pro — 1M context"),
|
|
200
205
|
"gemini-2.5-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True, notes="Gemini 2.5 Flash — 1M context"),
|
|
201
206
|
"gemini-2.0-flash": ModelCapability(tool_calls=True, format="openai_native", context_window=1048576, temperature=0.2, size_class="medium", vision=True),
|
|
@@ -225,7 +225,7 @@ class GoogleProvider(OpenAICompatProvider):
|
|
|
225
225
|
|
|
226
226
|
provider_name = "google"
|
|
227
227
|
DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai"
|
|
228
|
-
DEFAULT_MODEL = "gemini-
|
|
228
|
+
DEFAULT_MODEL = "gemini-3.5-flash"
|
|
229
229
|
|
|
230
230
|
def __init__(self, config: ProviderConfig):
|
|
231
231
|
if not config.api_key:
|
|
@@ -73,7 +73,7 @@ _DEFAULT_FALLBACK_CHAIN = [
|
|
|
73
73
|
("dashscope", "DASHSCOPE_API_KEY", "qwen-plus"),
|
|
74
74
|
("moonshot", "MOONSHOT_API_KEY", "moonshot-v1-8k"),
|
|
75
75
|
("zhipu", "ZHIPUAI_API_KEY", "glm-4-flash"),
|
|
76
|
-
("google", "GEMINI_API_KEY", "gemini-
|
|
76
|
+
("google", "GEMINI_API_KEY", "gemini-3.5-flash"),
|
|
77
77
|
("openai", "OPENAI_API_KEY", "gpt-4o-mini"),
|
|
78
78
|
("anthropic", "ANTHROPIC_API_KEY", "claude-3-5-haiku-latest"),
|
|
79
79
|
("groq", "GROQ_API_KEY", "llama-3.3-70b-versatile"),
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"""Keep one client's document free of other clients' data.
|
|
2
|
+
|
|
3
|
+
A 3PL's stock file, a fund's holdings export or a merchant ledger often holds
|
|
4
|
+
several clients side by side. A document written *for one of them* (named for
|
|
5
|
+
it: ``report_BETA.md``, ``statement-acme.csv``) must not carry another
|
|
6
|
+
client's name, id or item codes. The prompt says so, and in an eval run the
|
|
7
|
+
agent still copied two notes from Beta's own rows that named Acme and Gamma
|
|
8
|
+
SKUs into Beta's report.
|
|
9
|
+
|
|
10
|
+
This is the check behind that rule, the way a liquid handler's checker
|
|
11
|
+
tracks what each tip has touched rather than trusting the protocol's
|
|
12
|
+
comments: before a client document is written, its text is scanned for the
|
|
13
|
+
identifiers of every *other* client found in the workspace's data files, and
|
|
14
|
+
the write is refused with a list of what leaked.
|
|
15
|
+
|
|
16
|
+
Clients are found in CSV files near the document that have an owner column
|
|
17
|
+
(``owner_id``, ``shipper``, ``client``, ``customer``…). A document is a
|
|
18
|
+
client's when its file name names exactly one of them. Code is not checked:
|
|
19
|
+
a script that processes every client legitimately names them all, and so
|
|
20
|
+
does an internal report whose name does not single one out.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
from __future__ import annotations
|
|
24
|
+
|
|
25
|
+
import csv
|
|
26
|
+
import re
|
|
27
|
+
from dataclasses import dataclass, field
|
|
28
|
+
from pathlib import Path
|
|
29
|
+
from typing import Iterable
|
|
30
|
+
|
|
31
|
+
OWNER_COLUMNS = ("owner_id", "owner", "shipper_id", "shipper", "client_id", "client",
|
|
32
|
+
"customer_id", "customer", "account_id", "货主", "客户")
|
|
33
|
+
NAME_COLUMNS = ("owner_name", "shipper_name", "client_name", "customer_name", "account_name",
|
|
34
|
+
"货主名称", "客户名称")
|
|
35
|
+
ITEM_COLUMNS = ("sku", "item", "item_id", "item_code", "product_id", "product_code", "sku_id")
|
|
36
|
+
DOCUMENT_SUFFIXES = {".md", ".markdown", ".txt", ".csv", ".tsv", ".json", ".html", ".htm",
|
|
37
|
+
".xml", ".yaml", ".yml", ".rst", ".eml"}
|
|
38
|
+
MIN_TERM = 3 # "A" or "AB" as an owner id would match everywhere
|
|
39
|
+
MAX_FILE_BYTES = 5 * 1024 * 1024
|
|
40
|
+
MAX_FILES = 25
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@dataclass
|
|
44
|
+
class Client:
|
|
45
|
+
id: str
|
|
46
|
+
names: set[str] = field(default_factory=set)
|
|
47
|
+
items: set[str] = field(default_factory=set)
|
|
48
|
+
|
|
49
|
+
def terms(self) -> list[str]:
|
|
50
|
+
return sorted({t for t in {self.id, *self.names, *self.items} if len(t) >= MIN_TERM}, key=len, reverse=True)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
_CACHE: dict[tuple[str, float, int], dict[str, Client]] = {}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _column(header: Iterable[str], wanted: tuple[str, ...]) -> str | None:
|
|
57
|
+
lowered = {h.strip().lower(): h for h in header if h}
|
|
58
|
+
for name in wanted:
|
|
59
|
+
if name in lowered:
|
|
60
|
+
return lowered[name]
|
|
61
|
+
return None
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _clients_in(path: Path) -> dict[str, Client]:
|
|
65
|
+
try:
|
|
66
|
+
stat = path.stat()
|
|
67
|
+
except OSError:
|
|
68
|
+
return {}
|
|
69
|
+
if stat.st_size > MAX_FILE_BYTES:
|
|
70
|
+
return {}
|
|
71
|
+
key = (str(path), stat.st_mtime, stat.st_size)
|
|
72
|
+
if key in _CACHE:
|
|
73
|
+
return _CACHE[key]
|
|
74
|
+
found: dict[str, Client] = {}
|
|
75
|
+
try:
|
|
76
|
+
with path.open(newline="", encoding="utf-8-sig", errors="replace") as fh:
|
|
77
|
+
reader = csv.DictReader(fh)
|
|
78
|
+
header = reader.fieldnames or []
|
|
79
|
+
owner = _column(header, OWNER_COLUMNS)
|
|
80
|
+
if owner:
|
|
81
|
+
name = _column(header, NAME_COLUMNS)
|
|
82
|
+
item = _column(header, ITEM_COLUMNS)
|
|
83
|
+
for row in reader:
|
|
84
|
+
cid = (row.get(owner) or "").strip()
|
|
85
|
+
if not cid:
|
|
86
|
+
continue
|
|
87
|
+
client = found.setdefault(cid, Client(cid))
|
|
88
|
+
if name and (row.get(name) or "").strip():
|
|
89
|
+
client.names.add(row[name].strip())
|
|
90
|
+
if item and (row.get(item) or "").strip():
|
|
91
|
+
client.items.add(row[item].strip())
|
|
92
|
+
except (OSError, csv.Error, UnicodeError):
|
|
93
|
+
found = {}
|
|
94
|
+
_CACHE[key] = found
|
|
95
|
+
return found
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def client_index(roots: Iterable[Path]) -> dict[str, Client]:
|
|
99
|
+
"""Every client named in the CSV data files in *roots* and their immediate subfolders."""
|
|
100
|
+
index: dict[str, Client] = {}
|
|
101
|
+
seen = 0
|
|
102
|
+
for root in dict.fromkeys(Path(r) for r in roots):
|
|
103
|
+
if not root.is_dir():
|
|
104
|
+
continue
|
|
105
|
+
candidates = sorted(root.glob("*.csv")) + sorted(root.glob("*/*.csv"))
|
|
106
|
+
for path in candidates:
|
|
107
|
+
if seen >= MAX_FILES:
|
|
108
|
+
return index
|
|
109
|
+
seen += 1
|
|
110
|
+
for cid, client in _clients_in(path).items():
|
|
111
|
+
merged = index.setdefault(cid, Client(cid))
|
|
112
|
+
merged.names |= client.names
|
|
113
|
+
merged.items |= client.items
|
|
114
|
+
return index if len(index) > 1 else {}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _words(text: str) -> set[str]:
|
|
118
|
+
return {w.lower() for w in re.split(r"[^0-9A-Za-z一-鿿]+", text) if w}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def target_client(path: Path, index: dict[str, Client]) -> str | None:
|
|
122
|
+
"""The one client a document's file name singles out, if it singles out exactly one."""
|
|
123
|
+
words = _words(Path(path).stem)
|
|
124
|
+
compact = re.sub(r"[^0-9a-z一-鿿]", "", Path(path).stem.lower())
|
|
125
|
+
hits = set()
|
|
126
|
+
for cid, client in index.items():
|
|
127
|
+
if cid.lower() in words:
|
|
128
|
+
hits.add(cid)
|
|
129
|
+
continue
|
|
130
|
+
for name in client.names:
|
|
131
|
+
squashed = re.sub(r"[^0-9a-z一-鿿]", "", name.lower())
|
|
132
|
+
if len(squashed) >= MIN_TERM and squashed in compact:
|
|
133
|
+
hits.add(cid)
|
|
134
|
+
return next(iter(hits)) if len(hits) == 1 else None
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def _mentions(text: str, term: str) -> bool:
|
|
138
|
+
if re.search(r"[一-鿿]", term):
|
|
139
|
+
return term in text
|
|
140
|
+
return re.search(rf"(?<![0-9A-Za-z]){re.escape(term)}(?![0-9A-Za-z])", text, re.IGNORECASE) is not None
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def foreign_mentions(text: str, target: str, index: dict[str, Client]) -> dict[str, list[str]]:
|
|
144
|
+
"""Other clients' identifiers that appear in *text*, by client."""
|
|
145
|
+
own = {t.lower() for t in index[target].terms()} if target in index else set()
|
|
146
|
+
leaks: dict[str, list[str]] = {}
|
|
147
|
+
for cid, client in sorted(index.items()):
|
|
148
|
+
if cid == target:
|
|
149
|
+
continue
|
|
150
|
+
hits = [t for t in client.terms() if t.lower() not in own and _mentions(text, t)]
|
|
151
|
+
if hits:
|
|
152
|
+
leaks[cid] = hits[:4]
|
|
153
|
+
return leaks
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def check_write(path: Path | str, content: str, roots: Iterable[Path | str] = ()) -> str | None:
|
|
157
|
+
"""Why this write must be refused, or None when it may go ahead."""
|
|
158
|
+
path = Path(path)
|
|
159
|
+
if path.suffix.lower() not in DOCUMENT_SUFFIXES:
|
|
160
|
+
return None
|
|
161
|
+
search = [path.parent, *(Path(r) for r in roots)]
|
|
162
|
+
index = client_index(search)
|
|
163
|
+
if not index:
|
|
164
|
+
return None
|
|
165
|
+
target = target_client(path, index)
|
|
166
|
+
if target is None:
|
|
167
|
+
return None
|
|
168
|
+
leaks = foreign_mentions(content, target, index)
|
|
169
|
+
if not leaks:
|
|
170
|
+
return None
|
|
171
|
+
listed = "; ".join(f"{cid} ({', '.join(terms)})" for cid, terms in leaks.items())
|
|
172
|
+
return (f"Not written: {path.name} is for client {target}, but it contains other clients' data: {listed}. "
|
|
173
|
+
f"A client's document holds only that client's data. Remove these, including any that came "
|
|
174
|
+
f"from notes or comments in {target}'s own rows, and write it again. If this is meant to be an "
|
|
175
|
+
f"internal cross-client document, name it without singling out one client.")
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
__all__ = ["Client", "check_write", "client_index", "foreign_mentions", "target_client"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Training data and evaluation for Aria's own model (docs/training-protocol.md)."""
|