aria-code 0.74.0__tar.gz → 0.76.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.74.0/src/aria_code.egg-info → aria_code-0.76.0}/PKG-INFO +5 -5
- {aria_code-0.74.0 → aria_code-0.76.0}/README.md +4 -4
- {aria_code-0.74.0 → aria_code-0.76.0}/pyproject.toml +1 -1
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/_version.py +1 -1
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/warehouse_cmds.py +72 -23
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/update_check.py +19 -15
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_cli.py +3 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/doctor.py +3 -3
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/logistics_carriers.py +7 -2
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/logistics_inventory.py +1 -1
- {aria_code-0.74.0 → aria_code-0.76.0/src/aria_code.egg-info}/PKG-INFO +5 -5
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_logistics_3pl.py +21 -1
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_update_health_routes.py +19 -1
- {aria_code-0.74.0 → aria_code-0.76.0}/LICENSE +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/NOTICE +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/setup.cfg +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/adk_apps/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/adk_apps/aria_code_review/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/adk_apps/aria_code_review/agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/adk_apps/aria_research/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/adk_apps/aria_research/agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/base.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/code_review.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/calibration_loop.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/critic.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/deepen.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/models.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/pipeline.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/quant_fusion.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/themes.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/deep/tiers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/engineering/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/engineering/coder.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/engineering/tester.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/cashflow_burn.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/catalyst.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/corporate_finance.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/debate.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/earnings.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/fundamental.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/macro.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/news.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/risk.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/sector.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/strategist.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/stripe_revenue.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/synthesis.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/financial/technical.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/orchestrator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/portfolio_agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/asset_diagnosis.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/business_match.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/cashflow_verify.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/contract_rules.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/energy_anomaly.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/exit_settlement.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/fulfillment_risk.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/ops_optimize.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/realty/revenue_share.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/signal_scheme.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/sports/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/sports/football_agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/supervisor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/team.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/contracts.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/dashboard.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/fulfillment_leadtime.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/inbound_exceptions.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/inventory_health.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/local_run.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/local_snapshot.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/logistics_cost.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/logistics_sync.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/agents/warehouse/workflow.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aliyun_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/README.md +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/README.md +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/approvals.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/conversation.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/digest.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/intake.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/channels/tradingview.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/README.md +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/_optional.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/bootstrap.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/broker_render.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/codegen_paths.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/_business_render.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/_ui.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/analysis_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/ashare_prediction_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/auth_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/backtest_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/broker_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/business_workflow_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/canvas_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/core_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/data_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/diagnostic_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/diagnostic_ops_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/file_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/finance_service_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/fx_commodity_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/market.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/market_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/market_context.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/market_render.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/model_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/ops_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/orchestrator_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/pdf_export_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/portfolio_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/scaffold_templates.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/session_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/session_ux_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/team.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/team_render.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/ui_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/workflow_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/commands/workspace_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/config_paths.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/config_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/constants.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/context.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/deterministic.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/direct.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/finance_service_catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/football_reports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/github_app_auth.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/google_login.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/broker_handlers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/chart_handlers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/market_handlers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/realty_handlers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/sports_handlers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/handlers/strategy_advice.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/helpers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/hooks.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/i18n.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/intent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/intent_router.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/intent_signals.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/lifecycle_hooks.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/local_tool_schemas.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/main.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/market_metadata.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/market_universe.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/message_processing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/model_catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/pdf_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/plan_mode.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/plotly_html.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prediction_feedback.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/preflight.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/project_aria.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prompt_assembly.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prompts/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prompts/coding.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prompts/select.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prompts/system_prompts.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/prompts/ui.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/provider_endpoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/provider_keys.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/base.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/chat_routing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/collaboration.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/llm/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/llm/offline_responses.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/llm/ollama_stream.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/llm/response_cache.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/llm/sse_stream.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/runtime_bridge.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/providers/vertexai_stream.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/runtime_consumer.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/sandbox.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/session_export.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/session_jsonl.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/session_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/skills_catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/todo_tracker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tool_executor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tool_registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tool_scope.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/context.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/file_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/market_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/notebook_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/system_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tools/write_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/tradingview_bridge.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/turn_planning.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/utils/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/cli/utils/market_detect.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/daemon/README.md +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/vscode/README.md +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/apps/vscode/package.json +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_daemon.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_feishu_bot.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_mcp_server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_relay_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_relay_server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/aria_telegram_bot.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ariarc.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/artifacts.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/backtest_engine.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/backtest_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/automation.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/base.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/capabilities.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/cn/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/cn/easytrader_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/cn/futu_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/cn/longbridge_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/cn/tiger_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/cn/xtquant_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/config.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/intl/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/intl/alpaca_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/intl/ibkr_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/intl/trading212_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/intl/webull_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/paper_broker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/planning.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/brokers/trading.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/canva_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/change_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/aliyun_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/aria_relay_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/canva_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/figma_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/football_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/kling_video_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/market_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/openai_image_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/runway_video_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/clients/warehouse_erp_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/cloud_memory.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/command_safety.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/computer_use_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/dashboard_generator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/data_analysis_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/data_cleaner.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/data_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/base.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/router.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/akshare_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/alpha_vantage_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/edgar_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/finnhub_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/fred_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/tushare_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/web_scraper_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/world_bank_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/datasources/sources/yfinance_source.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/demo_player.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/domain/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/domain/backtest_engine.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/domain/backtest_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/domain/finance_formulas.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/domain/portfolio_ledger.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/domain/strategy_vault.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/evals/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/evals/harness.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/evals/runner.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/external_agent_runner.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/figma_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/file_analysis_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/finance_formulas.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/football_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/image_gen_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/intent_classifier.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/kling_video_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/licensing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/local_finance_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/local_image_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/local_llm_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/macro_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/markdown_pdf.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/market_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/mcp_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/memory_manager.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/model_capability.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/notification_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/openai_image_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/adk_bridge/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/adk_bridge/code_review_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/adk_bridge/market_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_agents/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_agents/manifest.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_core/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_core/architecture.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_core/export.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_core/manifest.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_core/paths.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_core/secure_file.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_infra/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_infra/arthera.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_infra/doctor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_infra/product.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/bridge.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/circuit.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/config.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/installer.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_mcp/tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_sdk/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_sdk/client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_sdk/providers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_sdk/streaming.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_sdk/types.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/cache.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/context.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/context_checkpoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/data.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/provider_health.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/references.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/research_protocol.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/research_quality.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/settings.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_services/usage.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_skills/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_skills/catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_skills/loader.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_skills/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/financial/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/financial/_paths.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/financial/compliance.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/financial/factors.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/financial/risk_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/financial/strategy.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/aria_tools/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/_namespace.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/backtest/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/backtest/core.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/backtest/engine.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/portfolio/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/portfolio/optimizer.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/calibrator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/dixon_coles.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/elo.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/form.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/h2h.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/ml_model.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/predictor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/sports/tracker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/gbm_enhanced.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/ito_calculus.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/kelly_criterion.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/monte_carlo_advanced.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/options_pricing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packages/quant_engine/stochastic/stochastic_processes.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/base.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/finance/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/logistics/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/payments/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/realty/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/packs/rules.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/plan_utils.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/plugin_loader.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/portfolio_ledger.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/preview_server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/privacy/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/privacy/feedback.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/project_review.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/project_review_api.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/project_review_server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/project_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/anthropic.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/autoconfig.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/base.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/custom.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/ollama.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/openai_compat.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/llm/registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/local_image_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/providers/local_llm_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/realty_data_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/relay_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/report_exporters.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/report_generator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/acceptance.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/agent_loop.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/approval.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/budget.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/checkpoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/crash_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/events.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/gateway.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/lsp.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/orchestrator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/repo_map.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/run_state.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/run_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/self_healing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/subagent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/task_ledger.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/task_orchestrator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/tool_executor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/tool_policy.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runtime/worktrees.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/runway_video_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/safety/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/safety/permissions.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/safety/service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/setup_wizard.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/spreadsheet_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/strategy_vault.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/artifact_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/broker_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/build_quant_engine.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/code_audit_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/computer_use_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/data_analysis_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/enterprise_finance_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/extended_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/file_analysis_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/image_gen_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/local_finance_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/logistics_io.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/logistics_tenancy.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/logistics_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/macro_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/notification_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/project_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/realty_data_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/spreadsheet_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/tools/stripe_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/banner.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/completer.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/console.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/image_render.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/input_box.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/picker.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/render/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/render/finance.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/render/market.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/render/output.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/render/responsive.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/render/team.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/robot.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/ui/startup_dashboard.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/utils/vscode_uri.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/video_analysis.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/video_editor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace/__init__.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace/files.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace/verify.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace_changes.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace_context.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code/workspace_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code.egg-info/SOURCES.txt +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code.egg-info/dependency_links.txt +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code.egg-info/entry_points.txt +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code.egg-info/requires.txt +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/src/aria_code.egg-info/top_level.txt +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_adk_market_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_agent_team_fallback.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_analyze_file_tool.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_architecture_ledger_is_true.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_architecture_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_aria_cli_core.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_aria_mcp_server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_aria_sdk.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_artifact_publishing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_artifacts_and_reports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ashare_prediction_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_backtest_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_backtest_engine.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_backtest_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_binary_bundles_runtime_imports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_broken_akshare_is_optional.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_broker_automation.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_broker_chat_confirm_gate.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_broker_planning.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_broker_safety.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_broker_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_budget.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_business_workflow_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_canva_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_canvas_cmds.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_card_approvals.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_channel_intake.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_channels.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_chart_handlers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_chat_bots_fail_closed.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_chat_routing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ci_security_workflow.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cli_app_split.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cli_bootstrap.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cli_config_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cli_lifecycle_hooks.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cli_runtime_consumer.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cli_tool_executor_module.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_cloud_memory.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_code_audit_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_code_review_agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_codegen_output.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_coder_tester_self_healing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_coder_tool_safety.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_collaboration.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_command_loggers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_command_safety.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_completions_builder.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_config_paths.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_configured_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_container_entrypoint.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_container_entrypoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_context_checkpoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_context_references.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_context_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_conversation_core.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_crash_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_credential_file_permissions.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_custom_providers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_daemon_gateway_config.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_dashboard_generator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_data_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_data_service_imports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_datasource_routing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_deep_analysis.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_degrades_without_quant_engine.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_dispatcher_pins_match_the_release.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_doctor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_doctor_describes_the_current_install.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_doctor_npm_scope.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_engine_boundary.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_enterprise_tool_honesty.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_env_switch_docs.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_evals_harness.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_extended_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_feishu_swarm_config.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_finalize_release.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_finance_renderers.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_finance_service_catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_first_run_works.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_football_agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_football_prediction_output.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_google_cloud_routing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_google_login.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_google_search_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_headless_is_agentic.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_honest_surfaces.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_image_gen_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_image_inputs.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_import_graph_budget.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_intent_router.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_intent_signals.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_kling_video_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_lazy_rebind.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_legacy_module_imports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_license_consistency.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_licensing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_local_image_provider.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_logistics_and_finance_agents.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_lsp.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_markdown_pdf.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_market_data_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_market_history_inheritance.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_market_history_tool.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_market_symbol_extraction.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_market_universe.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_mcp_circuit.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_mcp_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_model_capability_registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_model_choice_is_the_users.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_model_selection_state.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_native_binary_entrypoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_native_installer.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_new_modules.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_no_hardcoded_developer_paths.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_no_uncommitted_imports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ollama_stream_imports.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ollama_stream_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_openai_image_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_operations_suite.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_output_rendering.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_packages_facade.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_packaging_constraints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_packaging_manifest.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_packs_domains.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_pdf_report.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_pick_best_installed_model.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_plan_mode.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_platform_package_assembly.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_platform_packages.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_plotly_html_output.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_portfolio_ledger.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_post_turn_context_decision.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_preflight.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_preview_server.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_privacy_feedback.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_project_aria.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_project_review.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_project_review_api.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_prompt_assembly.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_prompt_selection.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_provider_autoconfig.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_provider_error_messages.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_provider_integration.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_provider_registry.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_public_service_status.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_quant_engine_namespace.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_rebind_contract.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_rebind_namespace_contract.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_relay_client_credentials.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_relay_event_verification.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_relay_sends_for_clients.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_relay_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_relay_url.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_release_chain.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_release_commit_identity.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_release_push_is_atomic.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_release_reaches_the_registries.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_release_verification_waits.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_release_workflow_permissions.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_report_charts.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_report_generator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_research_protocol.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_research_quality.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_responsive_rendering.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_root_module_budget.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_rsi_without_pandas_ta.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_acceptance.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_agent_loop.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_approval.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_bridge.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_bridge_fallback.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_checkpoints.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_gateway.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_repo_map.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_run_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_tool_executor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runtime_worktrees.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_runway_video_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_safety_permissions.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_safety_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_safety_service_adoption.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_service_diagnostics_security.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_session_search.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_settings_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_shipper_digest.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_single_import_root.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_skill_agent_binding.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_skill_catalog.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_skill_loader.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_spreadsheet_tools.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_sse_stream_contract.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_startup_dashboard.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_startup_latency.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_streaming_pipeline.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_stripe_agent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_subagent.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_supervisor_routing.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_system_prompts.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_system_tools_output.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_task_orchestrator.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_team_synthesis.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_tls_trust_store.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_tool_policy.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_tool_scope.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_trading_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_tradingview_bridge.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_turn_planning.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ui_completer_references.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ui_console_theme.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ui_input_box.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_ui_robot_banner.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_verification_hint.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_verification_policy.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_version_consistency.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_version_counter.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_video_analysis.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_video_editor.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_vscode_mcp.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_warehouse_agents.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_warehouse_cli_registration.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_warehouse_erp_client.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_warehouse_workflow.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_wheel_is_installable.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_workspace_changes.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_workspace_context.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_workspace_files.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_workspace_scope.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_workspace_service.py +0 -0
- {aria_code-0.74.0 → aria_code-0.76.0}/tests/test_workspace_verify.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aria-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.76.0
|
|
4
4
|
Summary: Open-source AI agent for logistics and finance work: 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
|
|
@@ -175,8 +175,8 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
175
175
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
|
|
176
176
|
</p>
|
|
177
177
|
|
|
178
|
-
<p align="center"><img src="docs/assets/demo-
|
|
179
|
-
<p align="center"><sub>Recorded from a real Aria Code
|
|
178
|
+
<p align="center"><img src="docs/assets/demo-logistics.gif" alt="Real Aria Code terminal recording: reorder points for one shipper, a refusal to mix two shippers' data, and a carrier scorecard with a saving and two anomalies" width="860"></p>
|
|
179
|
+
<p align="center"><sub>Recorded from a real Aria Code session on the sample 3PL data in <code>evals/fixtures</code>. No model is called, so every number on screen comes from the tools; pauses are shortened. <a href="docs/assets/demo-logistics.png">Still screenshot</a> · <a href="scripts/record_logistics_demo.py">Recorder</a> · <a href="scripts/render_logistics_demo.py">Renderer</a>.</sub></p>
|
|
180
180
|
|
|
181
181
|
## What Aria Code does
|
|
182
182
|
|
|
@@ -188,7 +188,7 @@ A general-purpose assistant aims for an answer that reads well. In logistics and
|
|
|
188
188
|
|
|
189
189
|
**Actions a person approves.** In Feishu, each shipper's group gets a daily digest of reorders, dead stock and freight anomalies. `/补货` turns the reorder list into a purchase-order draft card; nothing happens until an authorised approver presses approve, and what runs is exactly what was shown. The draft is a file for your own purchasing system — Aria Code places no orders.
|
|
190
190
|
|
|
191
|
-
Underneath is a terminal coding agent: it inspects project files, applies edits, runs commands and tests, and explains the changes, with a local Ollama model or a supported cloud provider. A fresh install has no live business data; the logistics tools read your exports (CSV or JSON), and the chat features need a Feishu app or the Aria relay.
|
|
191
|
+
Underneath is a terminal coding agent: it inspects project files, applies edits, runs commands and tests, and explains the changes ([recording](docs/assets/demo-coding-workflow.gif)), with a local Ollama model or a supported cloud provider. A fresh install has no live business data; the logistics tools read your exports (CSV or JSON), and the chat features need a Feishu app or the Aria relay.
|
|
192
192
|
|
|
193
193
|
## Quick start
|
|
194
194
|
|
|
@@ -208,7 +208,7 @@ aria
|
|
|
208
208
|
|
|
209
209
|
The installer downloads the binary for your OS from the latest [GitHub release](https://github.com/artheras/aria-code/releases/latest), checks its SHA-256 digest, and installs it in your user account. Open a new terminal to start the interactive CLI with `aria`, `aria code`, or `aria-code`. Set `ARIA_CODE_VERSION=v0.55.0` to pin a release.
|
|
210
210
|
|
|
211
|
-
Alternative package-manager installs: `npm install -g @artheras/aria-code` (requires npm) or `python3 -m pip install --upgrade aria-code` (requires Python 3.10
|
|
211
|
+
Alternative package-manager installs: `npm install -g @artheras/aria-code` (requires npm) or `python3 -m pip install --upgrade "aria-code<4"` (requires Python 3.10+; the `<4` skips an older 4.x numbering that PyPI still lists). For development from source, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
212
212
|
|
|
213
213
|
To use a local model, install [Ollama](https://ollama.com/download), pull a coding model, and start Aria in local-only mode:
|
|
214
214
|
|
|
@@ -19,8 +19,8 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
19
19
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
-
<p align="center"><img src="docs/assets/demo-
|
|
23
|
-
<p align="center"><sub>Recorded from a real Aria Code
|
|
22
|
+
<p align="center"><img src="docs/assets/demo-logistics.gif" alt="Real Aria Code terminal recording: reorder points for one shipper, a refusal to mix two shippers' data, and a carrier scorecard with a saving and two anomalies" width="860"></p>
|
|
23
|
+
<p align="center"><sub>Recorded from a real Aria Code session on the sample 3PL data in <code>evals/fixtures</code>. No model is called, so every number on screen comes from the tools; pauses are shortened. <a href="docs/assets/demo-logistics.png">Still screenshot</a> · <a href="scripts/record_logistics_demo.py">Recorder</a> · <a href="scripts/render_logistics_demo.py">Renderer</a>.</sub></p>
|
|
24
24
|
|
|
25
25
|
## What Aria Code does
|
|
26
26
|
|
|
@@ -32,7 +32,7 @@ A general-purpose assistant aims for an answer that reads well. In logistics and
|
|
|
32
32
|
|
|
33
33
|
**Actions a person approves.** In Feishu, each shipper's group gets a daily digest of reorders, dead stock and freight anomalies. `/补货` turns the reorder list into a purchase-order draft card; nothing happens until an authorised approver presses approve, and what runs is exactly what was shown. The draft is a file for your own purchasing system — Aria Code places no orders.
|
|
34
34
|
|
|
35
|
-
Underneath is a terminal coding agent: it inspects project files, applies edits, runs commands and tests, and explains the changes, with a local Ollama model or a supported cloud provider. A fresh install has no live business data; the logistics tools read your exports (CSV or JSON), and the chat features need a Feishu app or the Aria relay.
|
|
35
|
+
Underneath is a terminal coding agent: it inspects project files, applies edits, runs commands and tests, and explains the changes ([recording](docs/assets/demo-coding-workflow.gif)), with a local Ollama model or a supported cloud provider. A fresh install has no live business data; the logistics tools read your exports (CSV or JSON), and the chat features need a Feishu app or the Aria relay.
|
|
36
36
|
|
|
37
37
|
## Quick start
|
|
38
38
|
|
|
@@ -52,7 +52,7 @@ aria
|
|
|
52
52
|
|
|
53
53
|
The installer downloads the binary for your OS from the latest [GitHub release](https://github.com/artheras/aria-code/releases/latest), checks its SHA-256 digest, and installs it in your user account. Open a new terminal to start the interactive CLI with `aria`, `aria code`, or `aria-code`. Set `ARIA_CODE_VERSION=v0.55.0` to pin a release.
|
|
54
54
|
|
|
55
|
-
Alternative package-manager installs: `npm install -g @artheras/aria-code` (requires npm) or `python3 -m pip install --upgrade aria-code` (requires Python 3.10
|
|
55
|
+
Alternative package-manager installs: `npm install -g @artheras/aria-code` (requires npm) or `python3 -m pip install --upgrade "aria-code<4"` (requires Python 3.10+; the `<4` skips an older 4.x numbering that PyPI still lists). For development from source, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
56
56
|
|
|
57
57
|
To use a local model, install [Ollama](https://ollama.com/download), pull a coding model, and start Aria in local-only mode:
|
|
58
58
|
|
|
@@ -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.76.0"
|
|
8
8
|
description = "Open-source AI agent for logistics and finance work: numbers you can check, client data kept apart, actions a person approves"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "Apache-2.0" }
|
|
@@ -118,6 +118,56 @@ def _parse_logistics_args(args: str, usage: str) -> dict | None:
|
|
|
118
118
|
return params
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
_LABELS = {
|
|
122
|
+
"en": {
|
|
123
|
+
"inventory_usage": "Usage: /inventory <skus.csv|json> [--owner SHIPPER | --all-owners] "
|
|
124
|
+
"[--service-level 0.95] [--review-days 7] [--json]",
|
|
125
|
+
"carriers_usage": "Usage: /carriers <waybills.csv|json> [--owner SHIPPER | --all-owners] "
|
|
126
|
+
"[--min-shipments 20] [--json]",
|
|
127
|
+
"reorder": " Reorder {sku}: order {qty} · reorder point {rop} · safety stock {ss} · {cover} days of cover · {cls}",
|
|
128
|
+
"dead": " Dead stock {sku}: {on_hand:g} on hand",
|
|
129
|
+
"slow": " Slow-moving {sku}: {on_hand:g} on hand",
|
|
130
|
+
"basis": "Basis: ",
|
|
131
|
+
"sep": "; ",
|
|
132
|
+
"too_few": "too few shipments",
|
|
133
|
+
"on_time": "{rate:.0%} (lower bound {low:.0%})",
|
|
134
|
+
"no_on_time": "no on-time data",
|
|
135
|
+
"carrier": " {lane} {rank} {carrier}: {n} shipments · on time {on_time} · {cost}",
|
|
136
|
+
"saving": " Save {amount:,.2f}: {lane}, move {src} → {dst} ({diff:.2f}/kg cheaper)",
|
|
137
|
+
"check": " Check {waybill} ({carrier}): {detail}",
|
|
138
|
+
},
|
|
139
|
+
"zh": {
|
|
140
|
+
"inventory_usage": "用法: /inventory <skus.csv|json> [--owner 货主ID | --all-owners] "
|
|
141
|
+
"[--service-level 0.95] [--review-days 7] [--json]",
|
|
142
|
+
"carriers_usage": "用法: /carriers <waybills.csv|json> [--owner 货主ID | --all-owners] "
|
|
143
|
+
"[--min-shipments 20] [--json]",
|
|
144
|
+
"reorder": " 补货 {sku}: 建议 {qty} 件 · 补货点 {rop} · 安全库存 {ss} · 可用 {cover} 天 · {cls}",
|
|
145
|
+
"dead": " 呆滞 {sku}: 在库 {on_hand:g}",
|
|
146
|
+
"slow": " 慢动 {sku}: 在库 {on_hand:g}",
|
|
147
|
+
"basis": "依据: ",
|
|
148
|
+
"sep": ";",
|
|
149
|
+
"too_few": "样本不足",
|
|
150
|
+
"on_time": "{rate:.0%}(下界 {low:.0%})",
|
|
151
|
+
"no_on_time": "无准时记录",
|
|
152
|
+
"carrier": " {lane} {rank} {carrier}: {n} 单 · 准时 {on_time} · {cost}",
|
|
153
|
+
"saving": " 可节省 {amount:,.2f}: {lane} 由 {src} 转 {dst}(每 kg 低 {diff:.2f})",
|
|
154
|
+
"check": " 核实 {waybill} ({carrier}): {detail}",
|
|
155
|
+
},
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def _labels(self) -> dict:
|
|
160
|
+
"""Labels in the UI language. The tools' summaries and formulas stay English."""
|
|
161
|
+
config = getattr(getattr(self, "terminal", None), "config", None) or {}
|
|
162
|
+
lang = str(config.get("ui_lang", "en") or "en").lower()
|
|
163
|
+
return _LABELS["zh" if lang.startswith("zh") else "en"]
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def _abc_xyz(item: dict) -> str:
|
|
167
|
+
# ABC needs a unit cost; without one it is unknown, which a bare "-X" hid.
|
|
168
|
+
return f"ABC/XYZ {item['abc'] or '–'}/{item['xyz'] or '–'}"
|
|
169
|
+
|
|
170
|
+
|
|
121
171
|
def _emit(self, text: str, style: str = "") -> None:
|
|
122
172
|
if self.context.has_rich and style:
|
|
123
173
|
self.context.console.print(f"[{style}]{text}[/{style}]")
|
|
@@ -137,16 +187,12 @@ class LogisticsCommandsMixin:
|
|
|
137
187
|
tool; a 3PL operator needs a way in that does not depend on that.
|
|
138
188
|
"""
|
|
139
189
|
|
|
140
|
-
_INVENTORY_USAGE = ("用法: /inventory <skus.csv|json> [--owner 货主ID | --all-owners] "
|
|
141
|
-
"[--service-level 0.95] [--review-days 7] [--json]")
|
|
142
|
-
_CARRIERS_USAGE = ("用法: /carriers <waybills.csv|json> [--owner 货主ID | --all-owners] "
|
|
143
|
-
"[--min-shipments 20] [--json]")
|
|
144
|
-
|
|
145
190
|
async def cmd_inventory(self, args: str):
|
|
146
191
|
"""Reorder points, safety stock, ABC/XYZ and dead stock for one shipper."""
|
|
147
|
-
|
|
192
|
+
text = _labels(self)
|
|
193
|
+
params = _parse_logistics_args(args, text["inventory_usage"])
|
|
148
194
|
if params is None:
|
|
149
|
-
_emit(self,
|
|
195
|
+
_emit(self, text["inventory_usage"], "yellow")
|
|
150
196
|
return
|
|
151
197
|
from aria_code.tools.logistics_inventory import tool_plan_inventory_policy
|
|
152
198
|
|
|
@@ -165,20 +211,20 @@ class LogisticsCommandsMixin:
|
|
|
165
211
|
for item in data["items"]:
|
|
166
212
|
if item["action"] != "reorder":
|
|
167
213
|
continue
|
|
168
|
-
_emit(self,
|
|
169
|
-
|
|
170
|
-
|
|
214
|
+
_emit(self, text["reorder"].format(
|
|
215
|
+
sku=item["sku"], qty=item["suggested_order_qty"], rop=item["reorder_point"],
|
|
216
|
+
ss=item["safety_stock"], cover=item["days_of_cover"], cls=_abc_xyz(item)))
|
|
171
217
|
for item in data["items"]:
|
|
172
218
|
if item["movement"] in ("dead", "slow"):
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
_emit(self, "依据: " + ";".join(data["assumptions"]), "dim")
|
|
219
|
+
_emit(self, text[item["movement"]].format(sku=item["sku"], on_hand=item["on_hand"]), "yellow")
|
|
220
|
+
_emit(self, text["basis"] + text["sep"].join(data["assumptions"]), "dim")
|
|
176
221
|
|
|
177
222
|
async def cmd_carriers(self, args: str):
|
|
178
223
|
"""Carrier scorecard by lane, cost anomalies and like-for-like savings."""
|
|
179
|
-
|
|
224
|
+
text = _labels(self)
|
|
225
|
+
params = _parse_logistics_args(args, text["carriers_usage"])
|
|
180
226
|
if params is None:
|
|
181
|
-
_emit(self,
|
|
227
|
+
_emit(self, text["carriers_usage"], "yellow")
|
|
182
228
|
return
|
|
183
229
|
from aria_code.tools.logistics_carriers import tool_score_carriers
|
|
184
230
|
|
|
@@ -195,14 +241,17 @@ class LogisticsCommandsMixin:
|
|
|
195
241
|
_emit(self, data["scope"]["marker"], "bold red")
|
|
196
242
|
_emit(self, result["summary"], "bold")
|
|
197
243
|
for entry in data["scorecard"]:
|
|
198
|
-
rank = f"#{entry['rank_in_lane']}" if entry["rank_in_lane"] else "
|
|
199
|
-
on_time = (
|
|
200
|
-
if entry["on_time_rate"] is not None else "
|
|
244
|
+
rank = f"#{entry['rank_in_lane']}" if entry["rank_in_lane"] else text["too_few"]
|
|
245
|
+
on_time = (text["on_time"].format(rate=entry["on_time_rate"], low=entry["on_time_lower_bound"])
|
|
246
|
+
if entry["on_time_rate"] is not None else text["no_on_time"])
|
|
201
247
|
cost = f"{entry['median_cost_per_kg']:.2f}/kg" if entry["median_cost_per_kg"] is not None else "-"
|
|
202
|
-
_emit(self,
|
|
248
|
+
_emit(self, text["carrier"].format(lane=entry["lane"], rank=rank, carrier=entry["carrier"],
|
|
249
|
+
n=entry["shipments"], on_time=on_time, cost=cost))
|
|
203
250
|
for saving in data["savings"]:
|
|
204
|
-
_emit(self,
|
|
205
|
-
|
|
251
|
+
_emit(self, text["saving"].format(amount=saving["estimated_saving"], lane=saving["lane"],
|
|
252
|
+
src=saving["from_carrier"], dst=saving["to_carrier"],
|
|
253
|
+
diff=saving["rate_difference_per_kg"]), "green")
|
|
206
254
|
for anomaly in data["anomalies"]:
|
|
207
|
-
_emit(self,
|
|
208
|
-
|
|
255
|
+
_emit(self, text["check"].format(waybill=anomaly["waybill_no"], carrier=anomaly["carrier"],
|
|
256
|
+
detail=anomaly["detail"]), "yellow")
|
|
257
|
+
_emit(self, text["basis"] + text["sep"].join(data["assumptions"]), "dim")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Background version checker for the active Aria Code install channel.
|
|
2
2
|
|
|
3
|
-
Checks GitHub
|
|
4
|
-
never blocked. The result is cached to ~/.arthera/update_check.json and read
|
|
3
|
+
Checks GitHub releases or scoped npm once per 24 hours in a daemon thread so
|
|
4
|
+
startup is never blocked. The result is cached to ~/.arthera/update_check.json and read
|
|
5
5
|
at banner render time.
|
|
6
6
|
|
|
7
7
|
Public API
|
|
@@ -26,7 +26,6 @@ from aria_code.packages.aria_core.paths import aria_home
|
|
|
26
26
|
|
|
27
27
|
_RELEASE_URL = "https://api.github.com/repos/artheras/aria-code/releases/latest"
|
|
28
28
|
_NPM_URL = "https://registry.npmjs.org/@artheras%2Faria-code/latest"
|
|
29
|
-
_PYPI_URL = "https://pypi.org/pypi/aria-code/json"
|
|
30
29
|
_CACHE_FILE = aria_home() / "update_check.json"
|
|
31
30
|
_CACHE_TTL_S = 86_400 # 24 hours
|
|
32
31
|
_FETCH_TIMEOUT = 4 # seconds — fail cleanly on slow networks
|
|
@@ -73,14 +72,24 @@ def _install_channel() -> str:
|
|
|
73
72
|
executable = str(getattr(sys, "executable", "") or "").lower()
|
|
74
73
|
if "node_modules" in executable and "aria" in executable:
|
|
75
74
|
return "npm"
|
|
76
|
-
|
|
75
|
+
if getattr(sys, "frozen", False):
|
|
76
|
+
return "native"
|
|
77
|
+
root = Path(__file__).resolve().parents[4]
|
|
78
|
+
if (root / ".git").exists() and (root / "pyproject.toml").exists():
|
|
79
|
+
return "source"
|
|
80
|
+
return "pip"
|
|
77
81
|
|
|
78
82
|
|
|
79
|
-
def _update_command(channel: str) -> str:
|
|
83
|
+
def _update_command(channel: str, latest: str = "") -> str:
|
|
80
84
|
if channel == "npm":
|
|
81
85
|
return "npm install -g @artheras/aria-code@latest"
|
|
86
|
+
if channel == "source":
|
|
87
|
+
return "git pull && python3 -m pip install -e ."
|
|
82
88
|
if channel == "pip":
|
|
83
|
-
|
|
89
|
+
# Pinned: PyPI still lists an older 4.x numbering, so an unpinned
|
|
90
|
+
# --upgrade "updates" 0.73.0 to 4.4.2, which is older code.
|
|
91
|
+
return f'python3 -m pip install --upgrade "aria-code=={latest}"' if latest else \
|
|
92
|
+
'python3 -m pip install --upgrade "aria-code<4"'
|
|
84
93
|
if sys.platform == "win32":
|
|
85
94
|
return "irm https://raw.githubusercontent.com/artheras/aria-code/main/scripts/install.ps1 | iex"
|
|
86
95
|
return "curl -fsSL https://raw.githubusercontent.com/artheras/aria-code/main/scripts/install.sh | sh"
|
|
@@ -89,7 +98,7 @@ def _update_command(channel: str) -> str:
|
|
|
89
98
|
def _build_notice(latest: str, current: str, lang: str, channel: str = "native") -> str:
|
|
90
99
|
latest = latest.removeprefix("v")
|
|
91
100
|
current = current.removeprefix("v")
|
|
92
|
-
cmd = _update_command(channel)
|
|
101
|
+
cmd = _update_command(channel, latest)
|
|
93
102
|
if lang == "zh":
|
|
94
103
|
return (
|
|
95
104
|
f"[yellow]⬆ 新版本可用[/yellow] "
|
|
@@ -107,12 +116,9 @@ def _build_notice(latest: str, current: str, lang: str, channel: str = "native")
|
|
|
107
116
|
|
|
108
117
|
def _worker(current: str, lang: str, channel: str = "native") -> None:
|
|
109
118
|
global _notice
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"pip": (_PYPI_URL, "info"),
|
|
114
|
-
}
|
|
115
|
-
source_url, version_field = sources[channel]
|
|
119
|
+
# GitHub releases are the version of record for every channel but npm.
|
|
120
|
+
# PyPI's own "latest" is not: it still points at the old 4.x line.
|
|
121
|
+
source_url, version_field = (_NPM_URL, "version") if channel == "npm" else (_RELEASE_URL, "tag_name")
|
|
116
122
|
|
|
117
123
|
# 1. Serve from cache if still fresh
|
|
118
124
|
cache = _read_cache()
|
|
@@ -134,8 +140,6 @@ def _worker(current: str, lang: str, channel: str = "native") -> None:
|
|
|
134
140
|
with urllib.request.urlopen(req, timeout=_FETCH_TIMEOUT) as resp:
|
|
135
141
|
data = json.loads(resp.read())
|
|
136
142
|
latest = data[version_field]
|
|
137
|
-
if channel == "pip":
|
|
138
|
-
latest = latest["version"]
|
|
139
143
|
except Exception:
|
|
140
144
|
return # network error → silently skip, try again next day
|
|
141
145
|
|
|
@@ -4326,6 +4326,9 @@ class ArtheraTerminal:
|
|
|
4326
4326
|
console.print(
|
|
4327
4327
|
" [dim]隐私:反馈默认[bold]仅存本地[/bold],不上传。"
|
|
4328
4328
|
"opt-in 后可用于改进金融模型 · /privacy 查看与开关 · /bug 报告问题[/dim]"
|
|
4329
|
+
if str(_ui_lang).lower().startswith("zh") else
|
|
4330
|
+
" [dim]Privacy: feedback stays [bold]on this machine[/bold] unless you opt in; "
|
|
4331
|
+
"opted-in feedback may improve Aria's finance model · /privacy · /bug[/dim]"
|
|
4329
4332
|
)
|
|
4330
4333
|
else:
|
|
4331
4334
|
if _banner_mode != "off":
|
|
@@ -67,7 +67,7 @@ class DoctorReport:
|
|
|
67
67
|
# hint only applies to a repo checkout.
|
|
68
68
|
VENV_REBUILD_HINT = (
|
|
69
69
|
"Rebuild the venv with your current Python: bash install.sh --rebuild "
|
|
70
|
-
"(repo checkout), or reinstall with pip install -U aria-code."
|
|
70
|
+
"(repo checkout), or reinstall with pip install -U \"aria-code<4\"."
|
|
71
71
|
)
|
|
72
72
|
|
|
73
73
|
# What the npm package is today: a zero-dependency launcher that execs a
|
|
@@ -430,7 +430,7 @@ def _platform_package_check(npm: Optional[str]) -> Optional[DoctorCheck]:
|
|
|
430
430
|
"npm_runtime:binary",
|
|
431
431
|
"skip",
|
|
432
432
|
f"no prebuilt binary for {platform.system()}/{platform.machine()}",
|
|
433
|
-
"Install with pip instead: pip install -U aria-code",
|
|
433
|
+
"Install with pip instead: pip install -U \"aria-code<4\"",
|
|
434
434
|
)
|
|
435
435
|
pkg = f"@artheras/aria-code-{key}"
|
|
436
436
|
if not npm:
|
|
@@ -736,7 +736,7 @@ def run_doctor(
|
|
|
736
736
|
checks.append(_check(f"package:{module}", "ok", purpose))
|
|
737
737
|
else:
|
|
738
738
|
checks.append(_check(f"package:{module}", "err", f"{purpose} missing",
|
|
739
|
-
"Reinstall: pip install -U aria-code"))
|
|
739
|
+
"Reinstall: pip install -U \"aria-code<4\""))
|
|
740
740
|
|
|
741
741
|
for module, purpose, extra in _iter_optional_modules():
|
|
742
742
|
if _has_module(module):
|
|
@@ -53,6 +53,10 @@ def wilson_lower_bound(successes: int, trials: int, confidence: float = 0.95) ->
|
|
|
53
53
|
return (centre - margin) / denominator
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
def _count(n: int, one: str, many: str) -> str:
|
|
57
|
+
return f"{n} {one if n == 1 else many}"
|
|
58
|
+
|
|
59
|
+
|
|
56
60
|
def _lane(record: Dict[str, Any], row: int) -> str:
|
|
57
61
|
origin = text(record, "origin", row)
|
|
58
62
|
destination = text(record, "destination", row)
|
|
@@ -214,8 +218,9 @@ def tool_score_carriers(params: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
214
218
|
total_saving = round(sum(s["estimated_saving"] for s in savings), 2)
|
|
215
219
|
summary = (
|
|
216
220
|
f"{len(records)} waybills across {len({c['lane'] for c in scorecard})} lanes and "
|
|
217
|
-
f"{len({c['carrier'] for c in scorecard})} carriers ({source}); {len(anomalies)
|
|
218
|
-
f"to check; {len(savings)
|
|
221
|
+
f"{len({c['carrier'] for c in scorecard})} carriers ({source}); {_count(len(anomalies), 'anomaly', 'anomalies')} "
|
|
222
|
+
f"to check; {_count(len(savings), 'savings opportunity', 'savings opportunities')}, "
|
|
223
|
+
f"estimated {total_saving:,.2f} in total."
|
|
219
224
|
)
|
|
220
225
|
return {
|
|
221
226
|
"success": True,
|
|
@@ -207,7 +207,7 @@ def tool_plan_inventory_policy(params: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
207
207
|
assumptions.insert(0, scope["marker"])
|
|
208
208
|
|
|
209
209
|
summary = (
|
|
210
|
-
f"{len(items)} SKUs analysed ({source}): {counts['reorder']} to reorder, "
|
|
210
|
+
f"{len(items)} {'SKU' if len(items) == 1 else 'SKUs'} analysed ({source}): {counts['reorder']} to reorder, "
|
|
211
211
|
f"{counts['insufficient_history']} with too little history, {counts['no_demand']} "
|
|
212
212
|
f"with no demand; {dead} dead and {slow} slow-moving."
|
|
213
213
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aria-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.76.0
|
|
4
4
|
Summary: Open-source AI agent for logistics and finance work: 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
|
|
@@ -175,8 +175,8 @@ Numbers you can check, client data kept apart, actions a person approves.</p>
|
|
|
175
175
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-64748b?style=flat-square" alt="Apache License 2.0"></a>
|
|
176
176
|
</p>
|
|
177
177
|
|
|
178
|
-
<p align="center"><img src="docs/assets/demo-
|
|
179
|
-
<p align="center"><sub>Recorded from a real Aria Code
|
|
178
|
+
<p align="center"><img src="docs/assets/demo-logistics.gif" alt="Real Aria Code terminal recording: reorder points for one shipper, a refusal to mix two shippers' data, and a carrier scorecard with a saving and two anomalies" width="860"></p>
|
|
179
|
+
<p align="center"><sub>Recorded from a real Aria Code session on the sample 3PL data in <code>evals/fixtures</code>. No model is called, so every number on screen comes from the tools; pauses are shortened. <a href="docs/assets/demo-logistics.png">Still screenshot</a> · <a href="scripts/record_logistics_demo.py">Recorder</a> · <a href="scripts/render_logistics_demo.py">Renderer</a>.</sub></p>
|
|
180
180
|
|
|
181
181
|
## What Aria Code does
|
|
182
182
|
|
|
@@ -188,7 +188,7 @@ A general-purpose assistant aims for an answer that reads well. In logistics and
|
|
|
188
188
|
|
|
189
189
|
**Actions a person approves.** In Feishu, each shipper's group gets a daily digest of reorders, dead stock and freight anomalies. `/补货` turns the reorder list into a purchase-order draft card; nothing happens until an authorised approver presses approve, and what runs is exactly what was shown. The draft is a file for your own purchasing system — Aria Code places no orders.
|
|
190
190
|
|
|
191
|
-
Underneath is a terminal coding agent: it inspects project files, applies edits, runs commands and tests, and explains the changes, with a local Ollama model or a supported cloud provider. A fresh install has no live business data; the logistics tools read your exports (CSV or JSON), and the chat features need a Feishu app or the Aria relay.
|
|
191
|
+
Underneath is a terminal coding agent: it inspects project files, applies edits, runs commands and tests, and explains the changes ([recording](docs/assets/demo-coding-workflow.gif)), with a local Ollama model or a supported cloud provider. A fresh install has no live business data; the logistics tools read your exports (CSV or JSON), and the chat features need a Feishu app or the Aria relay.
|
|
192
192
|
|
|
193
193
|
## Quick start
|
|
194
194
|
|
|
@@ -208,7 +208,7 @@ aria
|
|
|
208
208
|
|
|
209
209
|
The installer downloads the binary for your OS from the latest [GitHub release](https://github.com/artheras/aria-code/releases/latest), checks its SHA-256 digest, and installs it in your user account. Open a new terminal to start the interactive CLI with `aria`, `aria code`, or `aria-code`. Set `ARIA_CODE_VERSION=v0.55.0` to pin a release.
|
|
210
210
|
|
|
211
|
-
Alternative package-manager installs: `npm install -g @artheras/aria-code` (requires npm) or `python3 -m pip install --upgrade aria-code` (requires Python 3.10
|
|
211
|
+
Alternative package-manager installs: `npm install -g @artheras/aria-code` (requires npm) or `python3 -m pip install --upgrade "aria-code<4"` (requires Python 3.10+; the `<4` skips an older 4.x numbering that PyPI still lists). For development from source, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
212
212
|
|
|
213
213
|
To use a local model, install [Ollama](https://ollama.com/download), pull a coding model, and start Aria in local-only mode:
|
|
214
214
|
|
|
@@ -351,15 +351,17 @@ if __name__ == "__main__":
|
|
|
351
351
|
import asyncio # noqa: E402
|
|
352
352
|
import contextlib # noqa: E402
|
|
353
353
|
import io # noqa: E402
|
|
354
|
+
import re # noqa: E402
|
|
354
355
|
from types import SimpleNamespace # noqa: E402
|
|
355
356
|
|
|
356
357
|
|
|
357
358
|
class _Cli:
|
|
358
|
-
def __init__(self):
|
|
359
|
+
def __init__(self, lang: str = "zh"):
|
|
359
360
|
from aria_code.apps.cli.commands.warehouse_cmds import LogisticsCommandsMixin
|
|
360
361
|
|
|
361
362
|
class Stub(LogisticsCommandsMixin):
|
|
362
363
|
context = SimpleNamespace(has_rich=False, console=None)
|
|
364
|
+
terminal = SimpleNamespace(config={"ui_lang": lang})
|
|
363
365
|
|
|
364
366
|
self.stub = Stub()
|
|
365
367
|
|
|
@@ -417,6 +419,24 @@ class DirectCommands(unittest.TestCase):
|
|
|
417
419
|
self.assertIn("可节省 900.00", out)
|
|
418
420
|
self.assertIn("#1 CHEAP", out)
|
|
419
421
|
|
|
422
|
+
def test_english_ui_prints_english_labels(self) -> None:
|
|
423
|
+
"""The labels were Chinese whatever ui_lang said, inside an English summary."""
|
|
424
|
+
out = _Cli("en").run("inventory", f'"{self.skus}" --owner ACME')
|
|
425
|
+
self.assertIn("Reorder A: order 133 · reorder point", out)
|
|
426
|
+
self.assertIn("ABC/XYZ –/X", out) # no unit cost, so ABC is unknown — not "-X"
|
|
427
|
+
self.assertIn("Dead stock OLD", out)
|
|
428
|
+
self.assertIn("Basis: service level", out)
|
|
429
|
+
self.assertIsNone(re.search(r"[\u4e00-\u9fff]", out), out)
|
|
430
|
+
self.assertIn("Usage: /carriers", _Cli("en").run("carriers", "--owner"))
|
|
431
|
+
|
|
432
|
+
def test_counts_are_not_pluralised_blindly(self) -> None:
|
|
433
|
+
waybills = pathlib.Path(self.tmp.name) / "waybills.json"
|
|
434
|
+
waybills.write_text(json.dumps(
|
|
435
|
+
_waybills("PRICEY", 30, 27, 8.0) + _waybills("CHEAP", 30, 29, 5.0)), encoding="utf-8")
|
|
436
|
+
out = _Cli("en").run("carriers", str(waybills))
|
|
437
|
+
self.assertIn("1 savings opportunity,", out)
|
|
438
|
+
self.assertIn("Save 900.00: ", out)
|
|
439
|
+
|
|
420
440
|
def test_both_are_registered_in_the_cli(self) -> None:
|
|
421
441
|
from aria_code import aria_cli
|
|
422
442
|
|
|
@@ -35,7 +35,9 @@ class UpdateAndHealthTests(unittest.TestCase):
|
|
|
35
35
|
|
|
36
36
|
def test_each_install_channel_has_its_own_source_and_command(self):
|
|
37
37
|
self.assertEqual(update_check._update_command("npm"), "npm install -g @artheras/aria-code@latest")
|
|
38
|
-
self.
|
|
38
|
+
self.assertEqual(update_check._update_command("pip", "0.74.0"),
|
|
39
|
+
'python3 -m pip install --upgrade "aria-code==0.74.0"')
|
|
40
|
+
self.assertTrue(update_check._update_command("source").startswith("git pull"))
|
|
39
41
|
self.assertIn("%2Faria-code", update_check._NPM_URL)
|
|
40
42
|
with patch.object(update_check, "_read_cache", return_value={}), \
|
|
41
43
|
patch.object(update_check, "_write_cache") as save, \
|
|
@@ -46,6 +48,22 @@ class UpdateAndHealthTests(unittest.TestCase):
|
|
|
46
48
|
self.assertEqual(save.call_args.args[0]["source"], update_check._NPM_URL)
|
|
47
49
|
self.assertIn("npm install -g @artheras/aria-code@latest", update_check._notice)
|
|
48
50
|
|
|
51
|
+
def test_pypi_s_old_4x_line_is_never_offered_as_an_update(self):
|
|
52
|
+
"""PyPI's latest is 4.4.2, an older numbering; v0.73.0 users were told to 'upgrade' to it."""
|
|
53
|
+
self.assertFalse(hasattr(update_check, "_PYPI_URL"))
|
|
54
|
+
for channel in ("pip", "source", "native"):
|
|
55
|
+
with self.subTest(channel=channel), \
|
|
56
|
+
patch.object(update_check, "_read_cache", return_value={}), \
|
|
57
|
+
patch.object(update_check, "_write_cache"), \
|
|
58
|
+
patch("urllib.request.urlopen",
|
|
59
|
+
return_value=io.BytesIO(b'{"tag_name":"v0.73.0"}')) as fetch:
|
|
60
|
+
update_check._notice = None
|
|
61
|
+
update_check._worker("0.73.0", "en", channel)
|
|
62
|
+
self.assertEqual(fetch.call_args.args[0].full_url, update_check._RELEASE_URL)
|
|
63
|
+
self.assertIsNone(update_check._notice)
|
|
64
|
+
self.assertNotIn("4.4.2", update_check._update_command("pip"))
|
|
65
|
+
self.assertIn('"aria-code<4"', update_check._update_command("pip"))
|
|
66
|
+
|
|
49
67
|
def test_health_checks_only_the_active_cloud_backend(self):
|
|
50
68
|
targets, message = _health_targets({
|
|
51
69
|
"model": "gemini-3.8-flash", "backend_chat": True,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|