HunterCode · Community Edition · 腾讯 WorkBuddy 金融版的开源本地替代方案 · open-source, local alternative to Tencent WorkBuddy Finance Edition · 多智能体投研终端 A股/港股/美股 · 推理在你机器上跑 · 仓位不出你硬盘 · BYOK · Apache 2.0 · docker compose 自托管
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
- HIGH code analysis flagged dynamic code execution in agentpit-io/hunter-community
transport stdio · streamable-http · http · sse counts 11 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
akshare_call
-
akshare_search
-
akshare_signature
-
kronos_health
-
kronos_predict
-
truesource_alert_signals
-
truesource_daily_brief
-
truesource_macro
-
truesource_procurement
-
truesource_report
-
truesource_scout
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 67f1e92 · analyzer v33 · 4m ago
skills & prompt files 7
- agent-rules agentpit-io-hunter-community-67f1e92/CLAUDE.md
- skill agentpit-io-hunter-community-67f1e92/skills/deep_analysis/SKILL.md
- skill agentpit-io-hunter-community-67f1e92/skills/investor_panel/SKILL.md
- skill agentpit-io-hunter-community-67f1e92/skills/lhb_analyzer/SKILL.md
- skill agentpit-io-hunter-community-67f1e92/skills/risk_profile/SKILL.md
- skill agentpit-io-hunter-community-67f1e92/skills/trap_detector/SKILL.md
- skill agentpit-io-hunter-community-67f1e92/skills/uzi/SKILL.md
danger signals4
- dynamic code execution pickle.loads() agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/agent_store.py :104
return pickle.loads(zlib.decompress(bytes(blob))) - dynamic code execution eval()/exec() agentpit-io-hunter-community-67f1e92/scripts/migrate_skills_to_files.py :54
exec("BUILTINS = " + m.group(1), ns) - suspicious endpoint 136.110.39.14 agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/kronos_client.py :40
return os.getenv("KRONOS_URL", "http://136.110.39.14:8000").rstrip("/") - suspicious endpoint 169.254.169.254 (cloud metadata) agentpit-io-hunter-community-67f1e92/scripts/llm-shim/test_shim.py :348
headers={"X-Hunter-Upstream": "http://169.254.169.254/latest"})
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 566
filesystem 52
- fs agentpit-io-hunter-community-67f1e92/apps/api/agents/data_sources/akshare_quote.py :47
raw = opener.open(req, timeout=6).read().decode("gbk", errors="replace") - fs agentpit-io-hunter-community-67f1e92/apps/api/agents/sentinel/stock_search.py :72
with open(_BASELINE_JSON, "r", encoding="utf-8") as f: - fs agentpit-io-hunter-community-67f1e92/apps/api/app/migrate.py :39
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/routers/auth.py :53
# Registration policy · open (default) · invite · closed - fs agentpit-io-hunter-community-67f1e92/apps/api/app/routers/chat_skill.py :552
with open(_REC_PATH, encoding="utf-8") as f: - fs agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_ocr.py :75
img = Image.open(io.BytesIO(raw)) - fs agentpit-io-hunter-community-67f1e92/apps/api/app/routers/quant_data.py :280
shutil.move(tmp, dest) - fs agentpit-io-hunter-community-67f1e92/apps/api/app/routers/setup.py :34
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/agent/skill_loader.py :15
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/factor_engine.py :549
with z.open('data.json') as f: - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/findata_db.py :222
with open(_HK_CSV, encoding="utf-8") as f: - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/llm_probe.py :37
from pathlib import Path
show 28 more
- fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/data_center.py :23
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/package_import.py :31
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/screen_cn.py :22
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/screen_source.py :1124
f"这份脚本第 {'、'.join(lines) or '?'} 行用到了 open(阳线 / 阴线判断)。" - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/setup_probe.py :19
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/signal_monitor.py :277
with open(path, encoding="utf-8") as f: - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/skill_files.py :27
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/apps/api/app/services/skill_install.py :77
with opener.open(req, timeout=_TIMEOUT) as r: - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/backfill_stock_names.py :33
raw = op.open(urllib.request.Request(f"http://qt.gtimg.cn/q={q}", headers=_UA), - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/build_data_package.py :44
import shutil - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/e2e_agent_chat.py :22
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/harvest_to_csv.py :52
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/quant_weekly_report.py :111
with open(out_path, "w") as f: - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/regress_a_backtest.py :126
with open(a.record, "w", encoding="utf-8") as f: - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/seed_stocks_catalog.py :64
with open(_BASELINE_JSON, "r", encoding="utf-8") as f: - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/test_oneapi_gateway.py :25
for line in open(_env_path, encoding='utf-8'): - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/agent/test_skill_loader.py :3
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_internal_skills.py :26
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_llm_probe.py :17
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_migrate.py :28
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_screen_series_run.py :133
# 用 close > open(第 0 根就算得出)。写 close > close[1] 的话,第 0 根没有前一根 → 算不出, - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_screen_xlayer_official.py :43
with open(out, "w", encoding="utf-8") as f: - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_setup_guard.py :13
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_setup_router.py :11
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/deploy/tools/template-to-compose.py :55
from pathlib import Path - fs agentpit-io-hunter-community-67f1e92/deploy/tools/validate-templates.py :26
from pathlib import Path - fs (weak) agentpit-io-hunter-community-67f1e92/docs/model-testing/scripts/run-golden-cases.py :28
with open(ENV_FILE) as f: - fs (weak) agentpit-io-hunter-community-67f1e92/scripts/check_skill_sync.py :36
from pathlib import Path
12 more not shown — this panel samples each group; the count above is the real total.
shell / exec 8
- shell (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/build_data_package.py :45
import subprocess - shell (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_migrate.py :25
import subprocess - shell agentpit-io-hunter-community-67f1e92/deploy/tools/validate-templates.py :263
import subprocess - shell (weak) agentpit-io-hunter-community-67f1e92/scripts/check_skill_sync.py :31
import subprocess - shell (weak) agentpit-io-hunter-community-67f1e92/scripts/check_skill_tools.py :31
import subprocess - shell (weak) agentpit-io-hunter-community-67f1e92/scripts/check_tools.py :23
import subprocess - shell (weak) agentpit-io-hunter-community-67f1e92/scripts/opencode/gen-config.py :53
import subprocess - shell (weak) agentpit-io-hunter-community-67f1e92/scripts/verify_skills_via_chat.py :84
import subprocess
network 76
- net agentpit-io-hunter-community-67f1e92/apps/api/agents/data_sources/akshare_quote.py :15
import urllib.request - net agentpit-io-hunter-community-67f1e92/apps/api/agents/sentinel/unified_fetcher.py :25
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/providers/data_source/hunter_tools.py :16
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/providers/data_source/saas.py :6
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/providers/forecast/kronos_http.py :7
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/discover.py :7
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_uzi.py :965
# (从 async 直接 sync 调 httpx.get 会遇到 connection pool 或事件循环冲突 · 表现为 None 返回) - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/kpred.py :4
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/settings.py :8
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/setup.py :333
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/truesource.py :18
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/user_mcp.py :12
from urllib.parse import quote
show 28 more
- net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/user_sources.py :19
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/routers/watchlist.py :227
import urllib.request, json as _json, urllib.parse - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/agent/alert.py :18
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/backtest/jobs.py :17
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/data/klines_etl.py :139
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/factor_engine.py :10
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/finance_data_client.py :13
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/ah_south.py :10
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/earnings_cal.py :9
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/filings.py :14
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/findata_db.py :56
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/news_src.py :11
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/yahoo_hk.py :11
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/hunter_key.py :27
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/llm_probe.py :39
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/market_source.py :43
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/online_analysis/unified_fetcher.py :25
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/opencode_admin.py :24
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/download_source.py :108
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/earnings_dates.py :128
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/index_kline.py :27
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/kronos_client.py :27
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/local_kline.py :28
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/rs_history.py :490
"""每个线程一个 keep-alive 连接。2026-09-11 美股首轮用裸 requests.get, - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/screen_source.py :49
import httpx - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/universe.py :158
import requests - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/setup_probe.py :17
import socket - net agentpit-io-hunter-community-67f1e92/apps/api/app/services/signal_monitor.py :8
import httpx
36 more not shown — this panel samples each group; the count above is the real total.
secrets 51
- secrets agentpit-io-hunter-community-67f1e92/apps/api/agents/bear_researcher.py :89
(os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key, - secrets agentpit-io-hunter-community-67f1e92/apps/api/agents/bull_researcher.py :87
(os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key, - secrets agentpit-io-hunter-community-67f1e92/apps/api/agents/risk_perspectives.py :37
(os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key, - secrets agentpit-io-hunter-community-67f1e92/apps/api/agents/sentinel/llm_client.py :42
api_key = (os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key - secrets agentpit-io-hunter-community-67f1e92/apps/api/agents/sentinel/thesis_gen.py :29
(os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key, - secrets agentpit-io-hunter-community-67f1e92/apps/api/agents/translation.py :70
(os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key, - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/providers/forecast/__init__.py :46
key = os.getenv("HUNTER_SAAS_KRONOS_KEY") or _gw._token() - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/auth.py :34
JWT_SECRET = os.environ.get("JWT_SECRET", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/gm/assistant.py :67
api_key = os.getenv("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/gm/guardian.py :24
api_key = os.getenv("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/gm/recap.py :136
api_key = os.getenv("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/gm/research.py :32
api_key = os.getenv("ONE_API_KEY", "")
show 28 more
- secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_capabilities.py :29
_INTERNAL_KEY = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_ocr.py :27
_INTERNAL_KEY = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_runtime.py :32
_INTERNAL_KEY = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_skills.py :77
expect = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_tools.py :27
_INTERNAL_KEY = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_user_mcp.py :26
_INTERNAL_KEY = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/internal_uzi.py :30
_INTERNAL_KEY = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/research_assistant.py :195
api_key = os.getenv("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/routers/setup.py :335
u, p = os.getenv("OPENCODE_SERVER_USERNAME", ""), os.getenv("OPENCODE_SERVER_PASSWORD", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/attribution.py :253
api_key = os.environ.get("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/factor_engine.py :529
xtick_token = os.getenv('XTICK_TOKEN', '') - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/finance_data_auth.py :46
os.getenv("FINANCE_DATA_TOKEN") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/ah_south.py :19
_AK_TOKEN = os.getenv("AK_API_TOKEN", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/alert_checker.py :104
secret = os.environ.get("JWT_SECRET") or "" - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/news_src.py :19
"APCA-API-SECRET-KEY": os.getenv("ALPACA_SECRET", ""), - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/hunter_key.py :69
_ENV_KEY = (os.getenv("HUNTER_API_KEY") or "").strip() - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/mcp_crypto.py :20
raw = os.getenv("HUNTER_MCP_KMS_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/online_analysis/llm_client.py :44
api_key = (os.getenv("ONE_API_KEY") or "").strip() or cfg.api_key - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/online_analysis/thesis_gen.py :17
_API_KEY = os.getenv("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/opencode_admin.py :29
_PASS = os.getenv("OPENCODE_SERVER_PASSWORD", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/index_kline.py :44
_AK_TOKEN = os.getenv("AK_API_TOKEN", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/universe.py :167
token = os.getenv("AK_API_TOKEN", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/setup_guard.py :187
return (os.environ.get("HUNTER_SETUP_TOKEN") or "").strip() - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/setup_probe.py :114
key = os.getenv("HUNTER_INTERNAL_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/services/signal_monitor.py :466
_api_key = os.getenv("ONE_API_KEY", "") - secrets agentpit-io-hunter-community-67f1e92/apps/api/app/utils/crypto.py :18
secret = (os.environ.get("JWT_SECRET") or "").encode() - secrets agentpit-io-hunter-community-67f1e92/apps/api/main.py :27
_HUNTER_API_KEY_CONFIGURED = bool(os.getenv("HUNTER_API_KEY", "").strip()) - secrets (weak) agentpit-io-hunter-community-67f1e92/apps/api/scripts/e2e_agent_chat.py :130
token = os.environ.get("AGENT_CHAT_V2_TEST_TOKEN", "")
11 more not shown — this panel samples each group; the count above is the real total.
database 25
- db agentpit-io-hunter-community-67f1e92/apps/api/app/migrate.py :41
import psycopg2 - db agentpit-io-hunter-community-67f1e92/apps/api/app/routers/chat_debate.py :29
import redis as redis_lib - db agentpit-io-hunter-community-67f1e92/apps/api/app/routers/chat_kpred.py :21
import redis as redis_lib - db agentpit-io-hunter-community-67f1e92/apps/api/app/routers/portfolio.py :9
import redis - db agentpit-io-hunter-community-67f1e92/apps/api/app/routers/preference.py :12
import redis as redis_lib - db agentpit-io-hunter-community-67f1e92/apps/api/app/routers/quant.py :29
from psycopg2.extras import execute_values - db agentpit-io-hunter-community-67f1e92/apps/api/app/routers/quote.py :4
import redis - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/agent/alert.py :26
import redis as _redis_lib - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/agent/cache.py :18
import redis as _redis_lib - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/backtest/store.py :11
import psycopg2 - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/collector.py :4
import redis - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/data/klines_etl.py :254
from psycopg2.extras import execute_batch
show 13 more
- db agentpit-io-hunter-community-67f1e92/apps/api/app/services/database.py :2
import psycopg2 - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/findata_db.py :13
import psycopg2 - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/gm/yahoo_hk.py :23
import redis as _redis_mod - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/kpred_cache.py :29
import redis as _redis_mod - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/agent_store.py :90
from psycopg2.extras import execute_values - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/factor_engine.py :1087
from psycopg2.extras import execute_values - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/rs_history.py :572
from psycopg2.extras import execute_values - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/quant/us_kline.py :240
from psycopg2.extras import execute_values - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/signal_monitor.py :9
import redis as _redis_lib - db agentpit-io-hunter-community-67f1e92/apps/api/app/services/subagents/watchlist_agent.py :27
import redis as _redis_mod - db (weak) agentpit-io-hunter-community-67f1e92/apps/api/tests/test_migrate.py :146
import psycopg2 - db (weak) agentpit-io-hunter-community-67f1e92/scripts/seed_csi300_universe.py :25
import psycopg2 - db (weak) agentpit-io-hunter-community-67f1e92/scripts/seed_demo_backtest.py :27
import psycopg2
tool registrations 11
- akshare_search agentpit-io-hunter-community-67f1e92/tools/akshare-mcp/akshare_mcp/server.py :82
- akshare_signature agentpit-io-hunter-community-67f1e92/tools/akshare-mcp/akshare_mcp/server.py :112
- akshare_call agentpit-io-hunter-community-67f1e92/tools/akshare-mcp/akshare_mcp/server.py :128
- kronos_health agentpit-io-hunter-community-67f1e92/tools/kronos-mcp/kronos_mcp/server.py :188
- kronos_predict agentpit-io-hunter-community-67f1e92/tools/kronos-mcp/kronos_mcp/server.py :202
- truesource_procurement agentpit-io-hunter-community-67f1e92/tools/truesource-mcp/truesource_mcp/server.py :217
- truesource_macro agentpit-io-hunter-community-67f1e92/tools/truesource-mcp/truesource_mcp/server.py :231
- truesource_daily_brief agentpit-io-hunter-community-67f1e92/tools/truesource-mcp/truesource_mcp/server.py :242
- truesource_alert_signals agentpit-io-hunter-community-67f1e92/tools/truesource-mcp/truesource_mcp/server.py :267
- truesource_report agentpit-io-hunter-community-67f1e92/tools/truesource-mcp/truesource_mcp/server.py :287
- truesource_scout agentpit-io-hunter-community-67f1e92/tools/truesource-mcp/truesource_mcp/server.py :306
declared dependencies 4
- mcp@>=2.0.0
- akshare@>=1.14.0
- uvicorn@>=0.30.0
- starlette@>=0.37.0
perm:untrusted 1
- untrusted agentpit-io-hunter-community-67f1e92/apps/api/fetch_eastmoney.py :9
res = requests.get(url).json()