aria-code 0.117.0__tar.gz → 0.119.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.117.0/src/aria_code.egg-info → aria_code-0.119.0}/PKG-INFO +2 -2
- {aria_code-0.117.0 → aria_code-0.119.0}/README.md +1 -1
- {aria_code-0.117.0 → aria_code-0.119.0}/pyproject.toml +1 -2
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/_version.py +1 -1
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/base.py +9 -1
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +181 -22
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_sdk/streaming.py +4 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/agent_loop.py +75 -1
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/banner.py +9 -53
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/robot.py +17 -15
- {aria_code-0.117.0 → aria_code-0.119.0/src/aria_code.egg-info}/PKG-INFO +2 -2
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code.egg-info/SOURCES.txt +1 -3
- aria_code-0.119.0/tests/test_robot_artwork.py +50 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_agent_loop.py +96 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ui_robot_banner.py +10 -9
- aria_code-0.119.0/tests/test_vertexai_tool_history.py +145 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_wheel_is_installable.py +1 -2
- aria_code-0.117.0/src/aria_code/ui/assets/aria-robot.png +0 -0
- aria_code-0.117.0/src/aria_code/ui/image_render.py +0 -239
- aria_code-0.117.0/src/aria_code/ui/robot_pixels.py +0 -6
- aria_code-0.117.0/tests/test_robot_artwork.py +0 -101
- {aria_code-0.117.0 → aria_code-0.119.0}/LICENSE +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/NOTICE +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/setup.cfg +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/adk_apps/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/base.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/code_review.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/critic.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/deepen.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/models.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/pipeline.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/themes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/deep/tiers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/engineering/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/engineering/coder.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/engineering/tester.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/catalyst.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/debate.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/earnings.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/fundamental.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/macro.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/news.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/risk.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/sector.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/strategist.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/synthesis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/financial/technical.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/orchestrator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/portfolio_agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/business_match.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/signal_scheme.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/sports/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/sports/football_agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/supervisor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/team.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aliyun_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/README.md +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/README.md +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/approvals.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/conversation.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/digest.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/intake.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/channels/tradingview.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/README.md +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/_optional.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/broker_render.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/chat_turn.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/market.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/team.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/config_paths.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/config_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/constants.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/context.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/deterministic.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/direct.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/earnings_view.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/exec_events.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/football_reports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/google_login.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/headless.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/helpers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/hooks.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/i18n.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/intent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/intent_router.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/main.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/market_hours.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/market_universe.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/message_processing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/mixin_binding.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/model_probe.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/model_retirement.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/preflight.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/project_aria.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/release_download.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/review_runner.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/sandbox.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/session_export.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/session_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/terminal_chrome.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/context.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/update_check.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/updater.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/cli/workspace_route.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/daemon/README.md +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/vscode/README.md +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/apps/vscode/package.json +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_cli.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_daemon.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_feishu_bot.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_mcp_server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_relay_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_relay_server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/aria_telegram_bot.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ariarc.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/artifacts.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/backtest_engine.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/backtest_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/automation.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/base.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/capabilities.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/cn/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/config.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/intl/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/paper_broker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/planning.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/brokers/trading.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/canva_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/change_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/aria_relay_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/canva_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/figma_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/football_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/kling_video_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/market_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/openai_image_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/runway_video_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/cloud_memory.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/command_safety.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/computer_use_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/dashboard_generator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/data_analysis_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/data_cleaner.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/data_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/base.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/router.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/demo_player.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/doctor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/domain/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/domain/backtest_engine.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/domain/backtest_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/domain/finance_formulas.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/domain/strategy_vault.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/evals/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/evals/gap.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/evals/harness.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/evals/runner.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/evals/summary.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/external_agent_runner.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/figma_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/file_analysis_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/finance_formulas.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/football_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/image_gen_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/intent_classifier.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/kling_video_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/licensing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/local_finance_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/local_image_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/local_llm_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/macro_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/markdown_pdf.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/market_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/mcp_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/memory_manager.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/model_capability.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/notification_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/openai_image_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_core/export.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_core/paths.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_infra/product.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/cache.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/context.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/data.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/references.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/settings.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_services/usage.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/base.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/finance/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/logistics/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/payments/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/realty/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/packs/rules.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/plan_utils.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/plugin_loader.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/portfolio_ledger.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/preview_server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/privacy/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/privacy/feedback.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/project_review.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/project_review_api.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/project_review_server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/project_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/anthropic.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/base.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/custom.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/ollama.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/llm/registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/local_image_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/local_llm_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/providers/tool_messages.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/realty_data_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/relay_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/report_exporters.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/report_generator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/review_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/acceptance.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/approval.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/budget.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/checkpoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/crash_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/events.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/gateway.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/lsp.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/orchestrator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/processes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/repo_map.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/run_state.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/run_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/self_healing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/subagent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/task_ledger.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/tool_executor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/tool_policy.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/windows_job.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runtime/worktrees.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/runway_video_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/safety/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/safety/client_isolation.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/safety/permissions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/safety/sandbox.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/safety/service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/setup_wizard.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/spreadsheet_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/strategy_vault.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/artifact_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/broker_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/build_quant_engine.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/code_audit_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/computer_use_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/extended_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/image_gen_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/local_finance_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/logistics_carriers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/logistics_inventory.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/logistics_io.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/logistics_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/macro_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/notification_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/project_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/realty_data_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/tools/stripe_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/training/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/training/compare.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/training/sft_dataset.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/completer.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/console.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/input_box.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/mentions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/picker.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/render/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/render/finance.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/render/market.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/render/output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/render/responsive.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/render/team.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/ui/startup_dashboard.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/utils/vscode_uri.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/video_analysis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/video_editor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace/__init__.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace/files.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace/verify.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace_changes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace_context.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code/workspace_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code.egg-info/entry_points.txt +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code.egg-info/requires.txt +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/src/aria_code.egg-info/top_level.txt +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_adk_market_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_agent_key_points_language.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_agent_team_fallback.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_analyze_file_tool.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_architecture_ledger_is_true.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_architecture_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_aria_cli_core.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_aria_mcp_server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_aria_sdk.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_artifact_publishing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_artifacts_and_reports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ashare_prediction_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_background_processes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_backtest_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_backtest_engine.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_backtest_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_backtest_runs_what_it_names.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_broken_akshare_is_optional.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_broker_automation.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_broker_chat_confirm_gate.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_broker_planning.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_broker_safety.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_broker_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_budget.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_business_workflow_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_callback_provider_cleanup.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_canva_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_canvas_cmds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_card_approvals.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_channel_intake.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_channels.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_chart_handlers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_chat_bots_fail_closed.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_chat_routing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ci_security_workflow.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_app_split.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_bootstrap.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_config_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_lifecycle_hooks.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_runtime_consumer.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_tool_executor_module.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cli_updater.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_client_isolation_guard.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_cloud_memory.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_code_audit_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_code_review_agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_codegen_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_coder_tester_self_healing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_coder_tool_safety.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_collaboration.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_command_loggers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_command_safety.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_compare_strategies.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_completions_builder.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_config_paths.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_configured_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_container_entrypoint.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_container_entrypoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_context_checkpoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_context_references.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_context_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_conversation_core.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_crash_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_credential_file_permissions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_custom_providers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_daemon_gateway_config.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_dashboard_generator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_data_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_data_service_imports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_data_without_model.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_datasource_routing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_deep_analysis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_degrades_without_quant_engine.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_doctor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_doctor_describes_the_current_install.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_doctor_npm_scope.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_doctor_sandbox.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_edit_and_command_safety.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_engine_boundary.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_english_output_group.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_enterprise_tool_honesty.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_env_switch_docs.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_eval_hard_suite.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_eval_holdout.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_eval_summary.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_eval_task_bank.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_eval_trajectories.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_evals_harness.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_event_import_roots.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_exec_events.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_extended_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_feishu_swarm_config.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_file_links.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_finalize_release.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_finance_renderers.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_finance_service_catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_first_run_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_first_run_works.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_football_agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_football_prediction_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_gemini_retirement.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_google_cloud_models.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_google_cloud_routing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_google_login.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_google_search_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_headless_command_approval.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_headless_is_agentic.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_honest_surfaces.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_image_gen_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_image_inputs.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_import_graph_budget.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_intent_router.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_intent_signals.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_kling_video_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_lazy_rebind.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_legacy_module_imports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_license_consistency.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_licensing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_linux_sandbox_integration.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_local_image_provider.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_local_workspace_execution.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_logistics_3pl.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_logistics_and_finance_agents.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_lsp.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_markdown_pdf.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_answers_in_english.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_data_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_history_inheritance.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_history_tool.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_hours.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_questions_on_backend.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_symbol_extraction.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_market_universe.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_mcp_circuit.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_mcp_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_mentions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_model_capability_registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_model_choice_is_the_users.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_model_probe.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_model_selection_state.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_narrow_chinese_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_native_binary_entrypoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_native_installer.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_natural_language_routing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_new_modules.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_no_tools_route.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_no_uncommitted_imports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_numeric_listings.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ollama_stream_imports.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ollama_stream_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_openai_image_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_operations_suite.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_os_sandbox.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_output_discipline_prompt.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_output_rendering.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_packages_facade.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_packaging_constraints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_packaging_manifest.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_packs_domains.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_pdf_report.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_pick_best_installed_model.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_plan_mode.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_platform_package_assembly.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_platform_packages.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_platform_publish.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_plotly_html_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_portfolio_language.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_portfolio_ledger.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_post_turn_context_decision.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_preflight.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_preview_server.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_privacy_feedback.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_project_aria.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_project_context_files.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_project_review.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_project_review_api.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_prompt_assembly.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_prompt_dates.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_prompt_selection.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_provider_autoconfig.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_provider_error_classification.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_provider_error_messages.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_provider_integration.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_provider_registry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_public_service_status.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_quant_engine_namespace.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_rebind_contract.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_rebind_namespace_contract.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_relay_client_credentials.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_relay_event_verification.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_relay_sends_for_clients.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_relay_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_relay_url.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_badges.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_chain.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_commit_identity.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_download.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_push_is_atomic.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_reaches_the_registries.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_verification_waits.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_release_workflow_permissions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_report_charts.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_report_generator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_report_prompt_language.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_research_protocol.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_research_quality.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_responsive_rendering.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_review_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_risk_earnings_ops.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_root_module_budget.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_rsi_without_pandas_ta.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_acceptance.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_approval.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_bridge.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_bridge_fallback.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_checkpoints.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_event_identity.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_gateway.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_repo_map.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_run_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_tool_executor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runtime_worktrees.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_runway_video_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_safety_permissions.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_safety_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_safety_service_adoption.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_service_diagnostics_security.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_session_search.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_settings_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_shell_commands_as_written.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_shipper_digest.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_single_import_root.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_skill_agent_binding.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_skill_catalog.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_skill_loader.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_slash_popup.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_spreadsheet_tools.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_sse_http_roundtrip.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_sse_stream_contract.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_startup_dashboard.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_startup_keeps_cloud_model.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_startup_latency.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_status_language.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_streaming_pipeline.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_stripe_agent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_subagent.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_supervisor_routing.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_system_prompts.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_system_tools_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_task_orchestrator.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_task_restore_startup.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_team_analysts.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_team_synthesis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_terminal_mixins.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_terminal_snapshots.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_tls_trust_store.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_tool_policy.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_tool_rounds_on_openai_apis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_tool_scope.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_tool_step_output.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_trading_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_tradingview_bridge.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_training_pipeline.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_turn_planning.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ui_completer_references.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ui_console_theme.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ui_input_box.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_ui_language_and_model.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_update_health_routes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_verification_hint.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_verification_policy.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_verification_runner_selection.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_version_consistency.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_version_counter.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_vertex_busy_retry.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_vertex_empty_rounds.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_vertex_models.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_video_analysis.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_video_editor.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_vscode_mcp.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_warehouse_agents.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_warehouse_cli_registration.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_warehouse_erp_client.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_warehouse_workflow.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_workspace_changes.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_workspace_context.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_workspace_files.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_workspace_scope.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_workspace_service.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.0}/tests/test_workspace_verify.py +0 -0
- {aria_code-0.117.0 → aria_code-0.119.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.119.0
|
|
4
4
|
Summary: Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Project-URL: Homepage, https://github.com/artheras/aria-code
|
|
@@ -172,7 +172,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
172
172
|
<p align="center">
|
|
173
173
|
<a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
|
|
174
174
|
<!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
|
|
175
|
-
<a href="https://pypi.org/project/aria-code/0.
|
|
175
|
+
<a href="https://pypi.org/project/aria-code/0.119.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.119.0%2Fjson&query=%24.info.version&prefix=v&style=flat-square&logo=pypi&label=PyPI&color=blue&cacheSeconds=300" alt="PyPI version"></a>
|
|
176
176
|
<a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
|
|
177
177
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
|
|
178
178
|
</p>
|
|
@@ -15,7 +15,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
15
15
|
<p align="center">
|
|
16
16
|
<a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
|
|
17
17
|
<!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
|
|
18
|
-
<a href="https://pypi.org/project/aria-code/0.
|
|
18
|
+
<a href="https://pypi.org/project/aria-code/0.119.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.119.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.119.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" }
|
|
@@ -276,7 +276,6 @@ include = ["aria_code*"]
|
|
|
276
276
|
|
|
277
277
|
[tool.setuptools.package-data]
|
|
278
278
|
"*" = ["*.yaml", "*.json", "*.md", "*.txt", "*.sh"]
|
|
279
|
-
"aria_code.ui" = ["assets/*.png"]
|
|
280
279
|
|
|
281
280
|
# ── Ruff linting ───────────────────────────────────────────────────────────────
|
|
282
281
|
[tool.ruff]
|
|
@@ -33,9 +33,17 @@ class LLMThinking:
|
|
|
33
33
|
|
|
34
34
|
@dataclass(frozen=True)
|
|
35
35
|
class LLMToolCall:
|
|
36
|
-
"""Model requested a tool call.
|
|
36
|
+
"""Model requested a tool call.
|
|
37
|
+
|
|
38
|
+
``call_id`` and ``thought_signature`` are opaque values some backends
|
|
39
|
+
(Gemini) hand out with a call and require back, unchanged, when the call
|
|
40
|
+
is replayed in history. Providers that have no such thing leave them None.
|
|
41
|
+
The signature is base64 text, not bytes, because history is JSON.
|
|
42
|
+
"""
|
|
37
43
|
tool: str
|
|
38
44
|
params: dict
|
|
45
|
+
call_id: Optional[str] = None
|
|
46
|
+
thought_signature: Optional[str] = None
|
|
39
47
|
|
|
40
48
|
|
|
41
49
|
@dataclass(frozen=True)
|
|
@@ -7,8 +7,10 @@ what to do rather than leaking a ModuleNotFoundError.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import asyncio
|
|
10
|
+
import base64
|
|
10
11
|
import json
|
|
11
12
|
import os
|
|
13
|
+
import re
|
|
12
14
|
from typing import AsyncGenerator, Optional
|
|
13
15
|
|
|
14
16
|
from aria_code.apps.cli.providers.base import (
|
|
@@ -26,6 +28,13 @@ _MISSING_SDK_MESSAGE = (
|
|
|
26
28
|
" 或改用其他模型:/model (Ollama 本地模型无需额外依赖)"
|
|
27
29
|
)
|
|
28
30
|
|
|
31
|
+
# How runtime.agent_loop.build_tool_followup ends its results text; what
|
|
32
|
+
# follows is guidance, not a copy of the results.
|
|
33
|
+
_TOOL_RESULTS_TRAILERS = (
|
|
34
|
+
"\n\n⚠ Tool(s) returned errors:",
|
|
35
|
+
"\n\nAll tools completed successfully.",
|
|
36
|
+
)
|
|
37
|
+
|
|
29
38
|
|
|
30
39
|
import logging
|
|
31
40
|
|
|
@@ -88,6 +97,40 @@ def _chunk_text(chunk) -> str:
|
|
|
88
97
|
return ""
|
|
89
98
|
|
|
90
99
|
|
|
100
|
+
def _chunk_calls(chunk) -> list:
|
|
101
|
+
"""The function calls in a chunk, with their ids and thought signatures.
|
|
102
|
+
|
|
103
|
+
Signatures are base64 text: the call is recorded in history, and history
|
|
104
|
+
is JSON.
|
|
105
|
+
"""
|
|
106
|
+
calls = []
|
|
107
|
+
for candidate in (getattr(chunk, "candidates", None) or [])[:1]:
|
|
108
|
+
content = getattr(candidate, "content", None)
|
|
109
|
+
for part in (getattr(content, "parts", None) or []):
|
|
110
|
+
fc = getattr(part, "function_call", None)
|
|
111
|
+
if not fc:
|
|
112
|
+
continue
|
|
113
|
+
call = {
|
|
114
|
+
"tool": fc.name,
|
|
115
|
+
"params": {k: v for k, v in fc.args.items()} if fc.args else {},
|
|
116
|
+
}
|
|
117
|
+
if getattr(fc, "id", None):
|
|
118
|
+
call["call_id"] = fc.id
|
|
119
|
+
signature = getattr(part, "thought_signature", None)
|
|
120
|
+
if signature:
|
|
121
|
+
call["thought_signature"] = base64.b64encode(signature).decode("ascii")
|
|
122
|
+
calls.append(call)
|
|
123
|
+
if not calls:
|
|
124
|
+
# No call parts to read (a chunk without candidates): take the SDK's
|
|
125
|
+
# own list, which has no signatures.
|
|
126
|
+
for fc in (getattr(chunk, "function_calls", None) or []):
|
|
127
|
+
calls.append({
|
|
128
|
+
"tool": fc.name,
|
|
129
|
+
"params": {k: v for k, v in fc.args.items()} if fc.args else {},
|
|
130
|
+
})
|
|
131
|
+
return calls
|
|
132
|
+
|
|
133
|
+
|
|
91
134
|
class VertexAIProvider(LLMProvider):
|
|
92
135
|
"""Native Vertex AI provider using google-genai."""
|
|
93
136
|
|
|
@@ -170,40 +213,109 @@ class VertexAIProvider(LLMProvider):
|
|
|
170
213
|
self._client = genai.Client(api_key=api_key)
|
|
171
214
|
return self._client
|
|
172
215
|
|
|
216
|
+
def _requires_thought_signatures(self) -> bool:
|
|
217
|
+
"""Gemini 3 and later reject a replayed function call without its signature."""
|
|
218
|
+
match = re.search(r"gemini-(\d+)", str(self.model).lower())
|
|
219
|
+
return bool(match) and int(match.group(1)) >= 3
|
|
220
|
+
|
|
221
|
+
@staticmethod
|
|
222
|
+
def _append(contents: list, role: str, parts: list, types) -> None:
|
|
223
|
+
# Gemini requires alternating roles: user, model, user, model.
|
|
224
|
+
if contents and contents[-1].role == role:
|
|
225
|
+
contents[-1].parts.extend(parts)
|
|
226
|
+
else:
|
|
227
|
+
contents.append(types.Content(role=role, parts=parts))
|
|
228
|
+
|
|
229
|
+
@staticmethod
|
|
230
|
+
def _strip_tool_results_text(text: str) -> str:
|
|
231
|
+
"""Drop the text copy of tool results from the loop's follow-up message.
|
|
232
|
+
|
|
233
|
+
The follow-up repeats every result as ``## Tool Results ...`` text for
|
|
234
|
+
providers that have no native tool turn. Once the results have gone to
|
|
235
|
+
Gemini as function responses, that copy is not just redundant: it is a
|
|
236
|
+
transcript of tool calls written as prose, and Gemini learns from it to
|
|
237
|
+
write its next calls — and their results — as prose too, which run
|
|
238
|
+
nothing. Only what the loop appends after the results is kept: the
|
|
239
|
+
error / completion guidance and any loop-guard directives.
|
|
240
|
+
"""
|
|
241
|
+
cut = max(text.rfind(marker) for marker in _TOOL_RESULTS_TRAILERS)
|
|
242
|
+
return text[cut:].strip() if cut >= 0 else ""
|
|
243
|
+
|
|
173
244
|
def _messages_to_contents(self, messages: list):
|
|
174
245
|
# Convert aria chat messages to genai Content objects
|
|
175
246
|
from google.genai import types
|
|
176
|
-
|
|
247
|
+
|
|
177
248
|
system_instruction = self.system_override or ""
|
|
178
249
|
contents = []
|
|
179
|
-
|
|
250
|
+
# Calls from the latest native model turn that still need a
|
|
251
|
+
# function_response, as [name, id] pairs.
|
|
252
|
+
unanswered: list = []
|
|
253
|
+
native_results = False
|
|
254
|
+
|
|
255
|
+
def answer_leftovers() -> None:
|
|
256
|
+
# Gemini rejects a turn that leaves any call of the previous model
|
|
257
|
+
# turn unanswered — e.g. when the batch was cut short.
|
|
258
|
+
parts = [
|
|
259
|
+
types.Part(function_response=types.FunctionResponse(
|
|
260
|
+
name=name, id=call_id, response={"error": "not executed"}))
|
|
261
|
+
for name, call_id in unanswered
|
|
262
|
+
]
|
|
263
|
+
unanswered.clear()
|
|
264
|
+
if parts:
|
|
265
|
+
self._append(contents, "user", parts, types)
|
|
266
|
+
|
|
180
267
|
for msg in messages:
|
|
181
268
|
role = msg.get("role", "user")
|
|
182
269
|
content_str = msg.get("content", "")
|
|
183
|
-
|
|
270
|
+
|
|
184
271
|
if role == "system":
|
|
185
272
|
if system_instruction:
|
|
186
273
|
system_instruction += "\n\n" + content_str
|
|
187
274
|
else:
|
|
188
275
|
system_instruction = content_str
|
|
189
276
|
continue
|
|
190
|
-
|
|
277
|
+
|
|
191
278
|
genai_role = "user" if role == "user" else "model"
|
|
192
|
-
|
|
279
|
+
|
|
280
|
+
if role == "assistant" and msg.get("tool_calls"):
|
|
281
|
+
answer_leftovers()
|
|
282
|
+
parts = self._function_call_parts(msg["tool_calls"], types)
|
|
283
|
+
if parts is not None:
|
|
284
|
+
if str(content_str or "").strip():
|
|
285
|
+
parts.insert(0, types.Part.from_text(text=content_str))
|
|
286
|
+
self._append(contents, "model", parts, types)
|
|
287
|
+
unanswered = [
|
|
288
|
+
[part.function_call.name, part.function_call.id]
|
|
289
|
+
for part in parts
|
|
290
|
+
if part.function_call
|
|
291
|
+
]
|
|
292
|
+
native_results = False
|
|
293
|
+
continue
|
|
294
|
+
# No usable signatures (history from before they were kept, or
|
|
295
|
+
# from another provider): fall through to the text rendering.
|
|
296
|
+
|
|
297
|
+
if role == "tool" and unanswered:
|
|
298
|
+
tool_name = msg.get("name") or ""
|
|
299
|
+
index = next(
|
|
300
|
+
(i for i, (name, _) in enumerate(unanswered) if name == tool_name),
|
|
301
|
+
0,
|
|
302
|
+
)
|
|
303
|
+
name, call_id = unanswered.pop(index)
|
|
304
|
+
self._append(contents, "user", [types.Part(
|
|
305
|
+
function_response=types.FunctionResponse(
|
|
306
|
+
name=name, id=call_id, response={"result": str(content_str)}),
|
|
307
|
+
)], types)
|
|
308
|
+
native_results = True
|
|
309
|
+
continue
|
|
310
|
+
|
|
193
311
|
if role == "tool":
|
|
194
|
-
#
|
|
312
|
+
# No native call to answer: rendered as text instead.
|
|
195
313
|
#
|
|
196
314
|
# Gemini only accepts a function_response that answers a
|
|
197
|
-
# function_call it can see in the preceding model turn
|
|
198
|
-
#
|
|
199
|
-
#
|
|
200
|
-
#
|
|
201
|
-
# single whitespace character and no tool call — the turn died
|
|
202
|
-
# as "empty_response" a round or two in, every time.
|
|
203
|
-
#
|
|
204
|
-
# The information is not lost by doing this: the loop already
|
|
205
|
-
# puts the same results in the follow-up user message that
|
|
206
|
-
# comes next, in a form written to be read.
|
|
315
|
+
# function_call it can see in the preceding model turn.
|
|
316
|
+
# Sending an unanswered function_response made the
|
|
317
|
+
# conversation malformed, and Gemini replied with a single
|
|
318
|
+
# whitespace character and no tool call.
|
|
207
319
|
tool_name = msg.get("name") or "tool"
|
|
208
320
|
text = f"[{tool_name}] {content_str}".strip()
|
|
209
321
|
if not text:
|
|
@@ -214,7 +326,17 @@ class VertexAIProvider(LLMProvider):
|
|
|
214
326
|
contents.append(types.Content(
|
|
215
327
|
role="user", parts=[types.Part.from_text(text=text)]))
|
|
216
328
|
continue
|
|
217
|
-
|
|
329
|
+
|
|
330
|
+
answer_leftovers()
|
|
331
|
+
if (
|
|
332
|
+
native_results
|
|
333
|
+
and role == "user"
|
|
334
|
+
and isinstance(content_str, str)
|
|
335
|
+
and content_str.lstrip().startswith("## Tool Results")
|
|
336
|
+
):
|
|
337
|
+
content_str = self._strip_tool_results_text(content_str)
|
|
338
|
+
native_results = False
|
|
339
|
+
|
|
218
340
|
# An empty part is worse than no part. When a model answers a turn
|
|
219
341
|
# with nothing but a function call — which Gemini does routinely,
|
|
220
342
|
# and which the agent loop records as an assistant message whose
|
|
@@ -234,6 +356,37 @@ class VertexAIProvider(LLMProvider):
|
|
|
234
356
|
|
|
235
357
|
return contents, system_instruction
|
|
236
358
|
|
|
359
|
+
def _function_call_parts(self, tool_calls: list, types) -> Optional[list]:
|
|
360
|
+
"""The assistant's recorded calls as function_call parts.
|
|
361
|
+
|
|
362
|
+
None when they cannot be replayed natively: Gemini 3 rejects a call
|
|
363
|
+
replayed without the thought signature it was issued with, and calls
|
|
364
|
+
recorded before signatures were kept (or by another provider) have none.
|
|
365
|
+
"""
|
|
366
|
+
parts = []
|
|
367
|
+
signed = False
|
|
368
|
+
for tool_call in tool_calls:
|
|
369
|
+
fn = tool_call.get("function", tool_call)
|
|
370
|
+
name = str(fn.get("name") or "")
|
|
371
|
+
if not name:
|
|
372
|
+
continue
|
|
373
|
+
args = fn.get("arguments", {})
|
|
374
|
+
if isinstance(args, str):
|
|
375
|
+
try:
|
|
376
|
+
args = json.loads(args)
|
|
377
|
+
except json.JSONDecodeError:
|
|
378
|
+
args = {}
|
|
379
|
+
part = types.Part(function_call=types.FunctionCall(
|
|
380
|
+
name=name, args=dict(args or {}), id=tool_call.get("id") or None))
|
|
381
|
+
signature = tool_call.get("thought_signature")
|
|
382
|
+
if signature:
|
|
383
|
+
part.thought_signature = base64.b64decode(signature)
|
|
384
|
+
signed = True
|
|
385
|
+
parts.append(part)
|
|
386
|
+
if not parts or (self._requires_thought_signatures() and not signed):
|
|
387
|
+
return None
|
|
388
|
+
return parts
|
|
389
|
+
|
|
237
390
|
def _schema_from_dict(self, d: dict, types):
|
|
238
391
|
if not d:
|
|
239
392
|
return None
|
|
@@ -365,11 +518,17 @@ class VertexAIProvider(LLMProvider):
|
|
|
365
518
|
full_response += text
|
|
366
519
|
yield LLMToken(text=text)
|
|
367
520
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
521
|
+
# Read calls from the parts, not chunk.function_calls:
|
|
522
|
+
# the thought signature lives on the part, and Gemini 3
|
|
523
|
+
# refuses the next request if the call is replayed
|
|
524
|
+
# without it.
|
|
525
|
+
for call in _chunk_calls(chunk):
|
|
526
|
+
yield LLMToolCall(
|
|
527
|
+
tool=call["tool"], params=call["params"],
|
|
528
|
+
call_id=call.get("call_id"),
|
|
529
|
+
thought_signature=call.get("thought_signature"),
|
|
530
|
+
)
|
|
531
|
+
tool_calls.append(call)
|
|
373
532
|
|
|
374
533
|
for candidate in (getattr(chunk, "candidates", None) or []):
|
|
375
534
|
reason = getattr(candidate, "finish_reason", None)
|
|
@@ -38,6 +38,10 @@ async def stream_provider_result(
|
|
|
38
38
|
on_thinking(event.content)
|
|
39
39
|
elif event_kind(event) == "LLMToolCall":
|
|
40
40
|
call = {"tool": event.tool, "params": dict(event.params)}
|
|
41
|
+
if getattr(event, "call_id", None):
|
|
42
|
+
call["call_id"] = event.call_id
|
|
43
|
+
if getattr(event, "thought_signature", None):
|
|
44
|
+
call["thought_signature"] = event.thought_signature
|
|
41
45
|
tool_calls.append(call)
|
|
42
46
|
if on_tool_call:
|
|
43
47
|
on_tool_call(event.tool, dict(event.params))
|
|
@@ -9,6 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
|
|
10
10
|
import asyncio
|
|
11
11
|
import inspect
|
|
12
|
+
import re
|
|
12
13
|
import time
|
|
13
14
|
from dataclasses import dataclass, field
|
|
14
15
|
from typing import AsyncGenerator, Awaitable, Callable, Dict, FrozenSet, Iterable, List, Optional, Sequence, Tuple, Union
|
|
@@ -933,6 +934,13 @@ async def execute_tool_turn(
|
|
|
933
934
|
{
|
|
934
935
|
"tool": str(tool_call.get("tool", "")),
|
|
935
936
|
"params": dict(tool_call.get("params", {}) or {}),
|
|
937
|
+
# Opaque provider tokens (Gemini call ids / thought signatures)
|
|
938
|
+
# that must be replayed with the call in the next request.
|
|
939
|
+
**{
|
|
940
|
+
key: tool_call[key]
|
|
941
|
+
for key in ("call_id", "thought_signature")
|
|
942
|
+
if tool_call.get(key)
|
|
943
|
+
},
|
|
936
944
|
}
|
|
937
945
|
for tool_call in pending
|
|
938
946
|
]
|
|
@@ -1010,7 +1018,13 @@ async def execute_tool_turn(
|
|
|
1010
1018
|
"function": {
|
|
1011
1019
|
"name": str(tool_call.get("tool", "")),
|
|
1012
1020
|
"arguments": dict(tool_call.get("params", {}) or {}),
|
|
1013
|
-
}
|
|
1021
|
+
},
|
|
1022
|
+
**({"id": tool_call["call_id"]} if tool_call.get("call_id") else {}),
|
|
1023
|
+
**(
|
|
1024
|
+
{"thought_signature": tool_call["thought_signature"]}
|
|
1025
|
+
if tool_call.get("thought_signature")
|
|
1026
|
+
else {}
|
|
1027
|
+
),
|
|
1014
1028
|
}
|
|
1015
1029
|
for tool_call in pending_transcript
|
|
1016
1030
|
if tool_call.get("tool")
|
|
@@ -1064,6 +1078,37 @@ def _truncate_tool_result(text: str, limit: int = _MAX_TOOL_RESULT_CHARS) -> str
|
|
|
1064
1078
|
)
|
|
1065
1079
|
|
|
1066
1080
|
|
|
1081
|
+
_MAX_TEXT_TOOL_CALL_RETRIES = 2
|
|
1082
|
+
|
|
1083
|
+
# What a reply looks like when the model wrote tool calls instead of making
|
|
1084
|
+
# them: a raw call tag, Gemini's "default_api:" call syntax, or an imitation of
|
|
1085
|
+
# the "## Tool Results" block build_tool_followup produces.
|
|
1086
|
+
_TEXT_TOOL_CALL = re.compile(
|
|
1087
|
+
r"<tool_call>|\bdefault_api[:.]\w|^#{2,3} ?Tool Results\b|^### \[\w+\] (?:✓ Success|❌ Error)",
|
|
1088
|
+
re.MULTILINE,
|
|
1089
|
+
)
|
|
1090
|
+
|
|
1091
|
+
TEXT_TOOL_CALL_DIRECTIVE = (
|
|
1092
|
+
"Your last reply wrote tool calls (or tool results) as text. None of them "
|
|
1093
|
+
"were executed and no files were changed. Do not write calls or results "
|
|
1094
|
+
"out as text: call the tools through function calling, and only report "
|
|
1095
|
+
"results you actually received."
|
|
1096
|
+
)
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
_CODE_SPAN = re.compile(r"```.*?(?:```|\Z)|`[^`\n]*`", re.DOTALL)
|
|
1100
|
+
|
|
1101
|
+
|
|
1102
|
+
def looks_like_text_tool_calls(text: str) -> bool:
|
|
1103
|
+
"""True when a reply with no real tool calls contains written-out ones.
|
|
1104
|
+
|
|
1105
|
+
Code spans are ignored, so an answer that quotes these formats — this
|
|
1106
|
+
being a coding agent, a repo can well contain them — is not mistaken
|
|
1107
|
+
for one.
|
|
1108
|
+
"""
|
|
1109
|
+
return bool(text) and bool(_TEXT_TOOL_CALL.search(_CODE_SPAN.sub("", text)))
|
|
1110
|
+
|
|
1111
|
+
|
|
1067
1112
|
def build_tool_followup(tool_results: Sequence[dict]) -> str:
|
|
1068
1113
|
"""Build a structured follow-up message from tool results.
|
|
1069
1114
|
|
|
@@ -1353,6 +1398,7 @@ async def run_agent(
|
|
|
1353
1398
|
loop_guard = LoopGuard()
|
|
1354
1399
|
grounded_results = 1 if opts.evidence_already_grounded else 0
|
|
1355
1400
|
stop_reason = "max_rounds"
|
|
1401
|
+
text_tool_call_retries = 0
|
|
1356
1402
|
|
|
1357
1403
|
for round_num in range(opts.max_rounds):
|
|
1358
1404
|
# ── 预算闸门 ─────────────────────────────────────────────────────────
|
|
@@ -1435,6 +1481,34 @@ async def run_agent(
|
|
|
1435
1481
|
turn_state.apply_model_result(result, response_text)
|
|
1436
1482
|
|
|
1437
1483
|
pending = result.get("tool_calls_pending", [])
|
|
1484
|
+
if not pending and looks_like_text_tool_calls(result.get("response") or response_text):
|
|
1485
|
+
# The model wrote its calls (and often their "results") as prose:
|
|
1486
|
+
# nothing ran. Ending here reported a task as done — sometimes with
|
|
1487
|
+
# tests "passing" — while no file had been touched. Say so and
|
|
1488
|
+
# give it the round back; if it keeps doing it, end incomplete.
|
|
1489
|
+
text_tool_call_retries += 1
|
|
1490
|
+
if text_tool_call_retries > _MAX_TEXT_TOOL_CALL_RETRIES:
|
|
1491
|
+
stop_reason = "text_tool_calls"
|
|
1492
|
+
yield AgentEventStatus(
|
|
1493
|
+
state=stop_reason,
|
|
1494
|
+
message="Model kept writing tool calls as text; task remains incomplete",
|
|
1495
|
+
)
|
|
1496
|
+
turn_state.append_response(
|
|
1497
|
+
"\n\nThe model kept writing tool calls as text instead of "
|
|
1498
|
+
"calling the tools; none of them were executed."
|
|
1499
|
+
)
|
|
1500
|
+
break
|
|
1501
|
+
yield AgentEventStatus(
|
|
1502
|
+
state="text_tool_calls",
|
|
1503
|
+
message="Model wrote tool calls as text; asking it to call them",
|
|
1504
|
+
)
|
|
1505
|
+
history = list(history) + [
|
|
1506
|
+
{"role": "user", "content": current_message},
|
|
1507
|
+
{"role": "assistant", "content": turn_state.total_response},
|
|
1508
|
+
]
|
|
1509
|
+
current_message = TEXT_TOOL_CALL_DIRECTIVE
|
|
1510
|
+
turn_state.reset_response()
|
|
1511
|
+
continue
|
|
1438
1512
|
if not pending:
|
|
1439
1513
|
# ── 验收闸门 ─────────────────────────────────────────────────────
|
|
1440
1514
|
# 模型不再要工具 = 它认为做完了。这是唯一一个「宣称完成」的出口,
|
|
@@ -19,8 +19,6 @@ from __future__ import annotations
|
|
|
19
19
|
|
|
20
20
|
import os
|
|
21
21
|
import shutil
|
|
22
|
-
from functools import lru_cache
|
|
23
|
-
from pathlib import Path
|
|
24
22
|
from typing import Optional
|
|
25
23
|
|
|
26
24
|
from .startup_dashboard import StartupDashboardViewModel
|
|
@@ -207,53 +205,16 @@ def _robot_text():
|
|
|
207
205
|
return face
|
|
208
206
|
|
|
209
207
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
"""Rich half-blocks sampled from the reference, without importing Pillow."""
|
|
213
|
-
import base64
|
|
214
|
-
import zlib
|
|
215
|
-
from rich.text import Text
|
|
216
|
-
from .robot_pixels import HEIGHT, PIXELS, WIDTH
|
|
217
|
-
|
|
218
|
-
rgb = zlib.decompress(base64.b85decode(PIXELS))
|
|
219
|
-
face = Text()
|
|
220
|
-
for y in range(0, HEIGHT, 2):
|
|
221
|
-
for x in range(WIDTH):
|
|
222
|
-
top = rgb[(y * WIDTH + x) * 3:(y * WIDTH + x) * 3 + 3].hex()
|
|
223
|
-
bottom = rgb[((y + 1) * WIDTH + x) * 3:((y + 1) * WIDTH + x) * 3 + 3].hex()
|
|
224
|
-
face.append("▀", style=f"#{top} on #{bottom}")
|
|
225
|
-
if y + 2 < HEIGHT:
|
|
226
|
-
face.append("\n")
|
|
227
|
-
return face
|
|
228
|
-
|
|
208
|
+
def _mascot(console):
|
|
209
|
+
"""Return (renderable, columns): the compact robot, or nothing.
|
|
229
210
|
|
|
230
|
-
|
|
231
|
-
"""Return (renderable, columns, rows, optional native image sequence).
|
|
232
|
-
|
|
233
|
-
Inline graphics go only to a real TTY. Rich's text parser strips OSC/APC
|
|
234
|
-
escapes, so the PNG is written separately after reserving its cells.
|
|
211
|
+
ARIA_ROBOT_RENDER=off leaves the four summary lines without a robot.
|
|
235
212
|
"""
|
|
236
213
|
from rich.text import Text
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
return Text(), 0, 4, None
|
|
242
|
-
if console.no_color or console.color_system is None:
|
|
243
|
-
# Uncoloured half-blocks are a solid rectangle, not a robot.
|
|
244
|
-
return _robot_text(), 9, 4, None
|
|
245
|
-
if mode == "compact" or width < 60 or (not tty and mode not in ("pixels", "image")):
|
|
246
|
-
return _robot_text(), 9, 4, None
|
|
247
|
-
if mode != "pixels" and tty:
|
|
248
|
-
from .image_render import best_method, render_image
|
|
249
|
-
method = best_method()
|
|
250
|
-
if method in ("iterm", "kitty"):
|
|
251
|
-
rows = (HEIGHT + 1) // 2 + 1 # aspect-preserving image may occupy a fraction more
|
|
252
|
-
asset = Path(__file__).parent / "assets" / "aria-robot.png"
|
|
253
|
-
sequence = render_image(str(asset), WIDTH, method, crop=BOUNDS, cells_high=rows)
|
|
254
|
-
if sequence and sequence.startswith(("\x1b]1337;", "\x1b_G")):
|
|
255
|
-
return Text("\n".join([" " * WIDTH] * rows)), WIDTH, rows, sequence
|
|
256
|
-
return _artwork_pixels().copy(), WIDTH, HEIGHT // 2, None
|
|
214
|
+
|
|
215
|
+
if os.getenv("ARIA_ROBOT_RENDER", "").strip().lower() == "off":
|
|
216
|
+
return Text(), 0
|
|
217
|
+
return _robot_text(), 9
|
|
257
218
|
|
|
258
219
|
|
|
259
220
|
def _summary_lines(view: StartupDashboardViewModel) -> list[str]:
|
|
@@ -308,7 +269,7 @@ def render_startup_dashboard(
|
|
|
308
269
|
terminal_width: Optional[int] = None,
|
|
309
270
|
terminal_height: Optional[int] = None,
|
|
310
271
|
) -> None:
|
|
311
|
-
"""The
|
|
272
|
+
"""The robot beside the model/workspace summary, then notes."""
|
|
312
273
|
del rich_box, terminal_height
|
|
313
274
|
from .robot import ROBOT_ROW_COUNT, get_robot_row
|
|
314
275
|
|
|
@@ -327,18 +288,13 @@ def render_startup_dashboard(
|
|
|
327
288
|
from rich.text import Text
|
|
328
289
|
|
|
329
290
|
width = terminal_width or _console_width(console)
|
|
330
|
-
face, columns
|
|
291
|
+
face, columns = _mascot(console)
|
|
331
292
|
block = Table.grid(padding=(0, 2))
|
|
332
293
|
block.add_column(no_wrap=True, width=columns or None)
|
|
333
294
|
# One line per row, cut rather than wrapped, so the block keeps its height.
|
|
334
295
|
block.add_column(no_wrap=True, overflow="ellipsis", max_width=max(10, width - columns - 3))
|
|
335
296
|
block.add_row(face, Text.from_markup("\n".join(_summary_lines(view)), overflow="ellipsis"))
|
|
336
297
|
console.print(block)
|
|
337
|
-
if sequence:
|
|
338
|
-
# Reserve the rows first (also handles scrolling), draw at their top,
|
|
339
|
-
# then restore the cursor before the notes and prompt are printed.
|
|
340
|
-
console.file.write(f"\x1b7\x1b[{rows}A\r{sequence}\x1b8")
|
|
341
|
-
console.file.flush()
|
|
342
298
|
for note in _notes(view):
|
|
343
299
|
console.print(Text.from_markup(" " + note, overflow="ellipsis"), no_wrap=True)
|
|
344
300
|
|
|
@@ -10,8 +10,10 @@ screen, base, feet), each unit one sub-pixel across and half a sub-pixel down
|
|
|
10
10
|
— which, with terminal cells twice as tall as wide, keeps the units square.
|
|
11
11
|
The eye is two quadrants (a square), the dash a lower-quarter block (2:1),
|
|
12
12
|
the cap corners ▛ ▜, the ears ▌ ▐, the four feet ▀. Colours are sampled from
|
|
13
|
-
the artwork
|
|
14
|
-
artwork's
|
|
13
|
+
the artwork (docs/assets/aria-robot.png) on this grid; only the light-theme
|
|
14
|
+
greys and body are deepened, where the artwork's would vanish against a
|
|
15
|
+
white background. The orange seam between body and base is left out: at
|
|
16
|
+
this size it would share a cell with two other colours, and a cell has two.
|
|
15
17
|
|
|
16
18
|
Runtime state is shown by the compact status dot, not by the mascot.
|
|
17
19
|
"""
|
|
@@ -88,22 +90,22 @@ _STATUS = {
|
|
|
88
90
|
# resolves to a Rich style ("<fg> on <bg>").
|
|
89
91
|
_COLOURS = {
|
|
90
92
|
"dark": {
|
|
91
|
-
"body": "#
|
|
92
|
-
"screen": "#
|
|
93
|
-
"eye": "#
|
|
94
|
-
"dash": "#
|
|
95
|
-
"ear": "#
|
|
96
|
-
"base": "#
|
|
97
|
-
"leg": "#
|
|
93
|
+
"body": "#F4EBE4", # cream shell
|
|
94
|
+
"screen": "#0E0E0E", # black screen
|
|
95
|
+
"eye": "#FFFDF5", # square eye, brighter than the shell
|
|
96
|
+
"dash": "#F9B467", # orange dash
|
|
97
|
+
"ear": "#B6ADA4", # grey ear nub
|
|
98
|
+
"base": "#B6ADA4", # grey underside
|
|
99
|
+
"leg": "#D5CCC3", # light grey feet
|
|
98
100
|
},
|
|
99
101
|
"light": {
|
|
100
102
|
"body": "#E6DDD0", # deeper cream: the artwork's would vanish on white
|
|
101
|
-
"screen": "#
|
|
102
|
-
"eye": "#
|
|
103
|
-
"dash": "#
|
|
104
|
-
"ear": "#
|
|
105
|
-
"base": "#
|
|
106
|
-
"leg": "#
|
|
103
|
+
"screen": "#0E0E0E",
|
|
104
|
+
"eye": "#FFFDF5",
|
|
105
|
+
"dash": "#F9B467",
|
|
106
|
+
"ear": "#9C948B",
|
|
107
|
+
"base": "#9C948B",
|
|
108
|
+
"leg": "#B8AFA6",
|
|
107
109
|
},
|
|
108
110
|
}
|
|
109
111
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aria-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.119.0
|
|
4
4
|
Summary: Open-source AI agent for coding, financial analysis and logistics operations: numbers you can check, client data kept apart, actions a person approves
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Project-URL: Homepage, https://github.com/artheras/aria-code
|
|
@@ -172,7 +172,7 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
172
172
|
<p align="center">
|
|
173
173
|
<a href="https://www.npmjs.com/package/@artheras/aria-code"><img src="https://img.shields.io/npm/v/@artheras/aria-code/latest?style=flat-square&logo=npm&label=npm" alt="npm version"></a>
|
|
174
174
|
<!-- Release automation pins PyPI: the default endpoint still selects legacy 4.x. -->
|
|
175
|
-
<a href="https://pypi.org/project/aria-code/0.
|
|
175
|
+
<a href="https://pypi.org/project/aria-code/0.119.0/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Faria-code%2F0.119.0%2Fjson&query=%24.info.version&prefix=v&style=flat-square&logo=pypi&label=PyPI&color=blue&cacheSeconds=300" alt="PyPI version"></a>
|
|
176
176
|
<a href="https://github.com/artheras/aria-code/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/artheras/aria-code/ci.yml?branch=main&style=flat-square&logo=githubactions&label=CI" alt="CI status"></a>
|
|
177
177
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
|
|
178
178
|
</p>
|