1name: report_to_action 2description: | 3 Fast-path arena: takes a fomo2 markdown report (or any structured analysis), 4 runs three specialist views in parallel (signals, news/sentiment, risk), then 5 synthesises a single BUY/HOLD/SELL action. The output is a structured 6 TradingAction published to maf:actions:out — trtools2 picks it up and 7 executes/queues/logs per ``action_mode`` (auto/semi/manual). 8 9 Trigger paths: 10 - control plane: XADD maf:control:in {command: run_arena, 11 args: {arena: report_to_action, target: {ticker: NVDA, ...}, 12 action_mode: "semi"}} 13 - dashboard: POST /api/arenas/report_to_action/run 14 - CLI: python -m maf trigger report_to_action --ticker NVDA --action-mode semi 15 16schedule: null 17output_stream: "maf:arena:report_to_action:output" 18 19llm: 20 default_provider: ollama 21 quick_provider: ollama 22 quick_model: "auto" # picker → gpt-oss:20b-cloud 23 deep_provider: ollama 24 deep_model: "auto" # picker → gpt-oss:120b-cloud 25 providers: 26 ollama: 27 api_key: "${OLLAMA_API_KEY}" 28 model: "auto" 29 base_url: "https://ollama.com/v1" 30 max_output_tokens: 8192 31 temperature: 0.3 32 33# Sources — bind whatever fomo2 / trtools2 streams are most useful for the 34# question at hand. These are reasonable defaults; arena-edit them via the 35# dashboard or set_data_source control command for finer control. 36sources: 37 - name: report 38 adapter: fomo2_report 39 config: 40 output_dir: "../fomo2/output" 41 glob_pattern: "analyze_*.md" 42 max_chars_for_simulation: 8000 43 44 - name: latest_news 45 adapter: trtools2_news 46 config: 47 stream: "trtools2:news" 48 count: 30 49 50 - name: indicators 51 adapter: trtools2_indicators 52 config: 53 stream: "trtools2:indicators" 54 count: 30 55 56 - name: strategy_events 57 adapter: trtools2_strategy_events 58 config: 59 stream: "trtools2:strategy:events" 60 count: 20 61 62 - name: enriched_items 63 adapter: fomo2_items 64 config: 65 count: 30 66 67 - name: deep_data_request 68 adapter: fomo2_request 69 config: 70 wait: true 71 wait_seconds: 20 72 73 # EODHD MCP — fundamentals + earnings calendar. Skipped gracefully when 74 # $EODHD_API_KEY isn't set; agents will see {error, data:{...}} and 75 # downgrade confidence. Bind once per tool you want. 76 - name: eodhd_fundamentals 77 adapter: eodhd 78 config: 79 tool: get_fundamentals 80 - name: eodhd_earnings_calendar 81 adapter: eodhd 82 config: 83 tool: get_earnings_calendar 84 - name: eodhd_news 85 adapter: eodhd 86 config: 87 tool: get_news 88 89memory: 90 instances: 91 - { name: synthesis_bm25, type: bm25 } 92 93phases: 94 - name: analysis 95 pattern: parallel 96 agents: 97 - name: signal_analyst 98 role: specialist 99 system_prompt_file: src/maf/arenas/trading_intelligence/prompts/market_analyst.txt 100 sources: 101 - report 102 - indicators 103 - strategy_events 104 llm_tier: quick 105 max_react_steps: 3 106 - name: sentiment_analyst 107 role: specialist 108 system_prompt_file: src/maf/arenas/trading_intelligence/prompts/news_analyst.txt 109 sources: 110 - latest_news 111 - enriched_items 112 - deep_data_request 113 llm_tier: quick 114 max_react_steps: 3 115 - name: risk_analyst 116 role: specialist 117 system_prompt_file: src/maf/arenas/trading_intelligence/prompts/risk_analyst.txt 118 sources: 119 - indicators 120 - strategy_events 121 llm_tier: quick 122 max_react_steps: 2 123 - name: earnings_reviewer 124 role: specialist 125 # Vendored Anthropic-FS "earnings-reviewer" agent prompt — gives the 126 # arena a senior-equity-research view when the report is an earnings 127 # event. Returns low confidence (de-weighted in synthesis) when the 128 # target hasn't reported recently. 129 system_prompt_file: src/maf/prompts/anthropic_fs/agents/earnings_reviewer.md 130 sources: 131 - latest_news 132 - deep_data_request 133 - indicators 134 - eodhd_fundamentals # ← EODHD MCP: actuals vs consensus 135 - eodhd_earnings_calendar # ← EODHD MCP: dates + estimates 136 - eodhd_news # ← EODHD MCP: ticker-filtered news 137 llm_tier: deep 138 max_react_steps: 5 139 transition: synthesis 140 141 - name: synthesis 142 pattern: sequential 143 signal_extract: false 144 agents: 145 - name: synthesis_agent 146 role: synthesis 147 system_prompt_file: src/maf/arenas/trading_intelligence/prompts/synthesis_agent.txt 148 memory: synthesis_bm25 149 llm_tier: deep 150 transition: END