argo-search 1.0.1 → 2.9.8

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.
Files changed (472) hide show
  1. package/LICENSE +201 -21
  2. package/README.en.md +735 -0
  3. package/README.es.md +777 -0
  4. package/README.ja.md +777 -0
  5. package/README.ko.md +777 -0
  6. package/README.md +778 -320
  7. package/SKILL.md +135 -0
  8. package/assets/readme/hero.svg +121 -0
  9. package/assets/readme/made-with-beautify.svg +10 -0
  10. package/assets/readme/proof-routes.svg +73 -0
  11. package/assets/readme/why-better.svg +104 -0
  12. package/assets/readme/workflow.svg +83 -0
  13. package/backends/domain_profiles.json +2356 -96
  14. package/backends/engine_registry.yaml +3428 -503
  15. package/backends/query_synonyms_cn.json +35 -0
  16. package/backends/quota_profiles.json +2488 -160
  17. package/backends/source_types_cn.json +109 -0
  18. package/backends/text_lexicon.json +44 -0
  19. package/bin/argo +772 -0
  20. package/bin/argo.js +102 -39
  21. package/config.yaml +5139 -367
  22. package/cordis.patch.yml +21 -0
  23. package/data/countries.json +40 -0
  24. package/data/lang_matrix/lang_capability.json +842 -0
  25. package/data/lang_matrix/matrix_2026-09-10.json +11921 -0
  26. package/data/regions_cn.json +1 -0
  27. package/docs/ADDING_NEW_ENGINE.md +184 -0
  28. package/docs/ARGO_INTRO.md +124 -0
  29. package/docs/DATA_SOURCE_GAPS.md +81 -0
  30. package/docs/DESIGN_LOCAL_DATA_FUSION.md +90 -0
  31. package/docs/ENGINE_CATALOG.md +575 -0
  32. package/docs/MCP_SETUP.md +108 -0
  33. package/docs/PLATFORM_PATHS.md +111 -0
  34. package/docs/RELEASE_NOTES_v2.8.0.md +71 -0
  35. package/docs/RELEASE_NOTES_v2.8.2.md +63 -0
  36. package/docs/RELEASE_NOTES_v2.8.3.md +55 -0
  37. package/docs/RELEASE_NOTES_v2.8.4.md +79 -0
  38. package/docs/RELEASE_NOTES_v2.8.5.md +102 -0
  39. package/docs/RELEASE_NOTES_v2.8.6.md +66 -0
  40. package/docs/RELEASE_NOTES_v2.8.7.md +65 -0
  41. package/docs/RELEASE_NOTES_v2.8.8.md +67 -0
  42. package/docs/RELEASE_NOTES_v2.8.9.md +67 -0
  43. package/docs/RELEASE_NOTES_v2.9.0.md +64 -0
  44. package/docs/RELEASE_NOTES_v2.9.8.md +73 -0
  45. package/docs/SEARCH_ARCHIVE.md +115 -0
  46. package/docs/assets/architecture.svg +104 -0
  47. package/docs/assets/hero.svg +98 -0
  48. package/docs/engines/bangumi.md +27 -0
  49. package/docs/engines/biorxiv.md +27 -0
  50. package/docs/engines/clawhub.md +27 -0
  51. package/docs/engines/crt_sh.md +27 -0
  52. package/docs/engines/datacite.md +27 -0
  53. package/docs/engines/deps_dev.md +27 -0
  54. package/docs/engines/douban_movie.md +27 -0
  55. package/docs/engines/endoflife.md +27 -0
  56. package/docs/engines/flk_law.md +27 -0
  57. package/docs/engines/fxtwitter.md +27 -0
  58. package/docs/engines/google_news.md +27 -0
  59. package/docs/engines/gov_regulations.md +27 -0
  60. package/docs/engines/guqian.md +27 -0
  61. package/docs/engines/hackernews.md +27 -0
  62. package/docs/engines/iplant.md +27 -0
  63. package/docs/engines/keenable.md +27 -0
  64. package/docs/engines/met_museum.md +27 -0
  65. package/docs/engines/nasa_images.md +27 -0
  66. package/docs/engines/netease_music.md +27 -0
  67. package/docs/engines/npm.md +27 -0
  68. package/docs/engines/nvd.md +27 -0
  69. package/docs/engines/openreview.md +27 -0
  70. package/docs/engines/openstd.md +27 -0
  71. package/docs/engines/parallel_free.md +27 -0
  72. package/docs/engines/people_daily.md +27 -0
  73. package/docs/engines/realtime_index.md +27 -0
  74. package/docs/engines/sec_edgar.md +27 -0
  75. package/docs/engines/seltz.md +27 -0
  76. package/docs/engines/skillsmp.md +27 -0
  77. package/docs/engines/sspai.md +27 -0
  78. package/docs/engines/std_samr.md +27 -0
  79. package/docs/engines/train.md +27 -0
  80. package/docs/engines/un_comtrade.md +27 -0
  81. package/docs/engines/wikisource.md +27 -0
  82. package/docs/engines/zdic.md +27 -0
  83. package/docs/engines/zenodo.md +27 -0
  84. package/docs/engines/zhihu_hot_app.md +27 -0
  85. package/docs//344/270/272/344/273/200/344/271/210/351/200/211/346/213/251argo.md +176 -0
  86. package/engines/README.md +10 -0
  87. package/engines/_template_cli.yaml +39 -0
  88. package/engines/_template_http.yaml +37 -0
  89. package/engines/plugins/_template_plugin.py +50 -0
  90. package/engines/specs/_cisa_kev.yaml +54 -0
  91. package/engines/specs/_osv.yaml +63 -0
  92. package/engines/specs/aljazeera.yaml +43 -0
  93. package/engines/specs/antara.yaml +43 -0
  94. package/engines/specs/artic.yaml +20 -0
  95. package/engines/specs/aviation_weather.yaml +39 -0
  96. package/engines/specs/bangumi.yaml +21 -0
  97. package/engines/specs/biorxiv.yaml +24 -0
  98. package/engines/specs/carbon_intensity.yaml +32 -0
  99. package/engines/specs/cfets.yaml +41 -0
  100. package/engines/specs/cinii.yaml +44 -0
  101. package/engines/specs/clawhub.yaml +49 -0
  102. package/engines/specs/cleveland.yaml +19 -0
  103. package/engines/specs/cn_ai_news.yaml +43 -0
  104. package/engines/specs/core.yaml +35 -0
  105. package/engines/specs/crt_sh.yaml +38 -0
  106. package/engines/specs/ct24.yaml +43 -0
  107. package/engines/specs/datacite.yaml +27 -0
  108. package/engines/specs/datagov_uk.yaml +41 -0
  109. package/engines/specs/ddgs_images.yaml +45 -0
  110. package/engines/specs/deepseek_search.yaml +74 -0
  111. package/engines/specs/deezer.yaml +20 -0
  112. package/engines/specs/defillama.yaml +38 -0
  113. package/engines/specs/deps_dev.yaml +21 -0
  114. package/engines/specs/digup.yaml +36 -0
  115. package/engines/specs/doi.yaml +39 -0
  116. package/engines/specs/douban_movie.yaml +22 -0
  117. package/engines/specs/dw_news.yaml +47 -0
  118. package/engines/specs/egov_law.yaml +21 -0
  119. package/engines/specs/elpais.yaml +43 -0
  120. package/engines/specs/endoflife.yaml +21 -0
  121. package/engines/specs/energy_charts.yaml +21 -0
  122. package/engines/specs/factcheck_org.yaml +52 -0
  123. package/engines/specs/faz.yaml +43 -0
  124. package/engines/specs/federal_register.yaml +57 -0
  125. package/engines/specs/firecrawl.yaml +53 -0
  126. package/engines/specs/flk_law.yaml +24 -0
  127. package/engines/specs/folha.yaml +43 -0
  128. package/engines/specs/france24.yaml +44 -0
  129. package/engines/specs/full_fact.yaml +47 -0
  130. package/engines/specs/fxtwitter.yaml +36 -0
  131. package/engines/specs/gbfs_nyc.yaml +32 -0
  132. package/engines/specs/gdacs.yaml +21 -0
  133. package/engines/specs/gdelt.yaml +64 -0
  134. package/engines/specs/gleif.yaml +55 -0
  135. package/engines/specs/google_news.yaml +22 -0
  136. package/engines/specs/gov_regulations.yaml +38 -0
  137. package/engines/specs/guardian_rss.yaml +59 -0
  138. package/engines/specs/hkex.yaml +40 -0
  139. package/engines/specs/hurriyet.yaml +43 -0
  140. package/engines/specs/iplant.yaml +25 -0
  141. package/engines/specs/jikan.yaml +24 -0
  142. package/engines/specs/jolpica.yaml +20 -0
  143. package/engines/specs/k10plus.yaml +20 -0
  144. package/engines/specs/keenable.yaml +44 -0
  145. package/engines/specs/keenable_free.yaml +36 -0
  146. package/engines/specs/lefigaro.yaml +43 -0
  147. package/engines/specs/listenbrainz.yaml +19 -0
  148. package/engines/specs/matichon.yaml +43 -0
  149. package/engines/specs/met_museum.yaml +21 -0
  150. package/engines/specs/nasa_images.yaml +45 -0
  151. package/engines/specs/netease_music.yaml +38 -0
  152. package/engines/specs/nhk.yaml +43 -0
  153. package/engines/specs/nhtsa_vpic.yaml +20 -0
  154. package/engines/specs/noaa_swpc.yaml +20 -0
  155. package/engines/specs/nvd.yaml +38 -0
  156. package/engines/specs/obis.yaml +20 -0
  157. package/engines/specs/opencitations.yaml +52 -0
  158. package/engines/specs/openf1.yaml +21 -0
  159. package/engines/specs/openfoodfacts.yaml +45 -0
  160. package/engines/specs/openligadb.yaml +20 -0
  161. package/engines/specs/openreview.yaml +37 -0
  162. package/engines/specs/openstd.yaml +21 -0
  163. package/engines/specs/people_daily.yaml +22 -0
  164. package/engines/specs/realtime_index.yaml +34 -0
  165. package/engines/specs/ror.yaml +20 -0
  166. package/engines/specs/satnogs.yaml +20 -0
  167. package/engines/specs/sec_edgar.yaml +46 -0
  168. package/engines/specs/shfe.yaml +39 -0
  169. package/engines/specs/skillsmp.yaml +50 -0
  170. package/engines/specs/sogou_weixin_browser.yaml +30 -0
  171. package/engines/specs/soilgrids.yaml +25 -0
  172. package/engines/specs/sspai.yaml +36 -0
  173. package/engines/specs/stackexchange.yaml +46 -0
  174. package/engines/specs/std_samr.yaml +21 -0
  175. package/engines/specs/tass.yaml +43 -0
  176. package/engines/specs/tavily_free.yaml +56 -0
  177. package/engines/specs/tle_mirror.yaml +21 -0
  178. package/engines/specs/train.yaml +37 -0
  179. package/engines/specs/tvmaze.yaml +20 -0
  180. package/engines/specs/twitter_syndication.yaml +31 -0
  181. package/engines/specs/un_comtrade.yaml +23 -0
  182. package/engines/specs/unpaywall.yaml +54 -0
  183. package/engines/specs/vnpress.yaml +43 -0
  184. package/engines/specs/weather.yaml +32 -0
  185. package/engines/specs/who_don.yaml +21 -0
  186. package/engines/specs/who_gho.yaml +20 -0
  187. package/engines/specs/wikimedia_commons.yaml +34 -0
  188. package/engines/specs/wikisource.yaml +22 -0
  189. package/engines/specs/worms.yaml +19 -0
  190. package/engines/specs/x_trending.yaml +34 -0
  191. package/engines/specs/yna.yaml +43 -0
  192. package/engines/specs/ynet.yaml +43 -0
  193. package/engines/specs/yuanbao.yaml +93 -0
  194. package/engines/specs/zbmath.yaml +40 -0
  195. package/engines/specs/zdic.yaml +22 -0
  196. package/engines/specs/zenodo.yaml +27 -0
  197. package/engines/specs/zhihu_hot_app.yaml +35 -0
  198. package/mcp/clients.yaml +106 -0
  199. package/package.json +55 -12
  200. package/packages/dsh-plugin/README.md +152 -0
  201. package/packages/dsh-plugin/cordis.patch.yml +48 -0
  202. package/packages/dsh-plugin/dsh/client.js +1533 -0
  203. package/packages/dsh-plugin/dsh/diagnostics.js +54 -0
  204. package/packages/dsh-plugin/dsh/index.js +527 -0
  205. package/packages/dsh-plugin/dsh/native-tools.mjs +749 -0
  206. package/packages/dsh-plugin/dsh/runner.js +666 -0
  207. package/packages/dsh-plugin/dsh/wide-research.js +878 -0
  208. package/packages/dsh-plugin/package.json +38 -0
  209. package/packages/dsh-plugin/scripts/sync-local.sh +70 -0
  210. package/packages/dsh-plugin/test/client.test.js +406 -0
  211. package/packages/dsh-plugin/test/config.test.js +30 -0
  212. package/packages/dsh-plugin/test/diagnostics.test.js +28 -0
  213. package/packages/dsh-plugin/test/index.test.js +1382 -0
  214. package/references/query-templates.md +96 -0
  215. package/references/query-templates.yaml +118 -0
  216. package/scripts/ab_eval.py +219 -0
  217. package/scripts/ab_eval_p0p1.py +266 -0
  218. package/scripts/adaptive.py +294 -70
  219. package/scripts/answer.py +154 -0
  220. package/scripts/archive_run.py +591 -0
  221. package/scripts/argo_engine_registry.py +172 -0
  222. package/scripts/argo_paths.py +728 -0
  223. package/scripts/article.py +136 -0
  224. package/scripts/article_meta.py +131 -0
  225. package/scripts/arxiv_source.py +201 -0
  226. package/scripts/badcase_ledger.py +252 -0
  227. package/scripts/batch_probe.py +241 -0
  228. package/scripts/benchmark.py +19 -0
  229. package/scripts/bounded_run.py +144 -0
  230. package/scripts/browser_auth.py +323 -0
  231. package/scripts/budget.py +247 -0
  232. package/scripts/budget_cli.py +93 -0
  233. package/scripts/build_release_assets.sh +65 -0
  234. package/scripts/burstiness_detector.py +147 -0
  235. package/scripts/cache.py +1066 -67
  236. package/scripts/cache_guard.py +271 -0
  237. package/scripts/cache_key_vdom.py +56 -0
  238. package/scripts/cache_similarity.py +170 -0
  239. package/scripts/caliber_isolation.py +195 -0
  240. package/scripts/calibrate_lowquality.py +210 -0
  241. package/scripts/candidate_envelope.py +366 -0
  242. package/scripts/chrome_cdp.py +871 -0
  243. package/scripts/ci_drift_gate.py +90 -0
  244. package/scripts/circuit_breaker.py +389 -0
  245. package/scripts/citations.py +334 -0
  246. package/scripts/cite_cli.py +59 -0
  247. package/scripts/cjk_tokens.py +95 -0
  248. package/scripts/clarify.py +47 -24
  249. package/scripts/cli_io.py +240 -0
  250. package/scripts/config.py +683 -45
  251. package/scripts/config_cache.py +402 -0
  252. package/scripts/conn_pool.py +220 -0
  253. package/scripts/content_boundary.py +46 -0
  254. package/scripts/content_security.py +685 -0
  255. package/scripts/content_signals.py +751 -0
  256. package/scripts/crawl.py +74 -35
  257. package/scripts/cross_lingual_trace.py +293 -0
  258. package/scripts/daemon.py +866 -0
  259. package/scripts/digup_bridge.py +214 -0
  260. package/scripts/dispatch_result.py +98 -0
  261. package/scripts/engine_admission.py +366 -0
  262. package/scripts/engine_dispatch.py +982 -0
  263. package/scripts/engine_env.py +539 -0
  264. package/scripts/engine_failure.py +411 -0
  265. package/scripts/engine_families.py +738 -0
  266. package/scripts/engine_policy.py +218 -0
  267. package/scripts/engine_requires.py +190 -0
  268. package/scripts/engine_status.py +322 -0
  269. package/scripts/engine_validate.py +638 -0
  270. package/scripts/engines.py +799 -294
  271. package/scripts/engines_base.py +1521 -0
  272. package/scripts/engines_builders.py +310 -0
  273. package/scripts/engines_builders_batch10.py +204 -0
  274. package/scripts/engines_builders_batch11.py +174 -0
  275. package/scripts/engines_builders_batch12.py +103 -0
  276. package/scripts/engines_builders_batch13.py +340 -0
  277. package/scripts/engines_builders_batch14.py +656 -0
  278. package/scripts/engines_builders_batch15.py +249 -0
  279. package/scripts/engines_builders_batch9.py +1468 -0
  280. package/scripts/engines_builders_cn.py +2283 -0
  281. package/scripts/engines_builders_data.py +2923 -0
  282. package/scripts/engines_builders_data_macro.py +775 -0
  283. package/scripts/engines_builders_feeds.py +255 -0
  284. package/scripts/engines_builders_intl.py +1239 -0
  285. package/scripts/engines_builders_keyless.py +111 -0
  286. package/scripts/engines_builders_search.py +440 -0
  287. package/scripts/engines_builders_tech.py +1359 -0
  288. package/scripts/evidence.py +620 -166
  289. package/scripts/evidence_loop.py +624 -0
  290. package/scripts/evidence_tier.py +298 -0
  291. package/scripts/except_sets.py +25 -0
  292. package/scripts/extract.py +55 -16
  293. package/scripts/fact_align.py +207 -0
  294. package/scripts/fact_crosscheck.py +230 -0
  295. package/scripts/fetch.py +25 -12
  296. package/scripts/fetch_browser.py +87 -0
  297. package/scripts/fetch_jsrun.py +122 -0
  298. package/scripts/fetch_quality.py +225 -0
  299. package/scripts/fetch_render_tinyfish.py +117 -0
  300. package/scripts/fetch_v3.py +1804 -0
  301. package/scripts/focus_extract.py +350 -0
  302. package/scripts/fulltext_store.py +169 -0
  303. package/scripts/fxtwitter_api.py +325 -0
  304. package/scripts/gen_engine_catalog.py +364 -0
  305. package/scripts/gen_native_tools.py +91 -0
  306. package/scripts/gen_routing_snapshot.py +195 -0
  307. package/scripts/health_check.py +140 -402
  308. package/scripts/health_probe.py +23 -8
  309. package/scripts/hot_state.py +134 -0
  310. package/scripts/http_client.py +1053 -0
  311. package/scripts/image_ops.py +430 -0
  312. package/scripts/image_vision/vision_probe.swift +126 -0
  313. package/scripts/install.ps1 +166 -0
  314. package/scripts/install.sh +221 -0
  315. package/scripts/job.py +1186 -0
  316. package/scripts/jump_resolver.py +235 -0
  317. package/scripts/lang_capability.py +150 -0
  318. package/scripts/lang_detect.py +289 -0
  319. package/scripts/lang_matrix_probe.py +329 -0
  320. package/scripts/lang_pref.py +311 -0
  321. package/scripts/link_source.py +340 -0
  322. package/scripts/local_image.py +970 -0
  323. package/scripts/local_seek.py +402 -0
  324. package/scripts/macro_countries.py +97 -0
  325. package/scripts/matrix_search_eval.py +1187 -0
  326. package/scripts/mcp_compact.py +234 -0
  327. package/scripts/mcp_diag.py +8 -3
  328. package/scripts/mcp_handlers.py +492 -0
  329. package/scripts/mcp_handlers_surface.py +157 -0
  330. package/scripts/mcp_launch.sh +124 -0
  331. package/scripts/mcp_local.py +241 -0
  332. package/scripts/mcp_server.py +125 -419
  333. package/scripts/mcp_setup.py +431 -0
  334. package/scripts/mcp_tools.py +331 -0
  335. package/scripts/mcp_transport.py +191 -0
  336. package/scripts/mcp_warm.py +127 -0
  337. package/scripts/min_version_scan.py +335 -0
  338. package/scripts/net_proxy.py +258 -0
  339. package/scripts/network_aware.py +152 -0
  340. package/scripts/output_transparency.py +200 -0
  341. package/scripts/paid_policy.py +98 -0
  342. package/scripts/paper.py +274 -0
  343. package/scripts/pdf_extract.py +518 -0
  344. package/scripts/phrase_filter.py +66 -0
  345. package/scripts/plan.py +422 -0
  346. package/scripts/postprocess_signals.py +150 -0
  347. package/scripts/pre-commit +48 -0
  348. package/scripts/query_enhance.py +157 -0
  349. package/scripts/query_operators.py +196 -0
  350. package/scripts/query_rewriter.py +116 -7
  351. package/scripts/query_signals.py +300 -0
  352. package/scripts/query_templates.py +167 -0
  353. package/scripts/query_understanding.py +411 -0
  354. package/scripts/query_variants.py +298 -0
  355. package/scripts/quota.py +633 -76
  356. package/scripts/rank_signals.py +775 -0
  357. package/scripts/ranking_eval.py +319 -0
  358. package/scripts/readability_extract.py +433 -0
  359. package/scripts/recompute.py +415 -0
  360. package/scripts/recovery.py +616 -0
  361. package/scripts/recovery_l0.py +160 -0
  362. package/scripts/recovery_runner.py +150 -0
  363. package/scripts/redskill/redskill_engine.py +332 -0
  364. package/scripts/regression_p0p1.py +318 -0
  365. package/scripts/replay_eval.py +658 -0
  366. package/scripts/rerank_tfidf.py +225 -0
  367. package/scripts/research.py +607 -403
  368. package/scripts/research_cli.py +361 -0
  369. package/scripts/research_dossier.py +492 -0
  370. package/scripts/research_expand.py +169 -0
  371. package/scripts/research_gates.py +272 -0
  372. package/scripts/research_report.py +209 -0
  373. package/scripts/research_strategy.py +37 -0
  374. package/scripts/research_work_packages.py +195 -0
  375. package/scripts/result_lang.py +311 -0
  376. package/scripts/retry_policy.py +76 -0
  377. package/scripts/robots_guard.py +259 -0
  378. package/scripts/route.py +921 -254
  379. package/scripts/route_bangs.py +40 -0
  380. package/scripts/route_cache.py +243 -0
  381. package/scripts/route_combo.py +917 -0
  382. package/scripts/route_domains.py +341 -0
  383. package/scripts/route_lang.py +605 -0
  384. package/scripts/route_log.py +63 -0
  385. package/scripts/route_policy.py +250 -0
  386. package/scripts/rrf_classic.py +66 -0
  387. package/scripts/screenshot.py +73 -0
  388. package/scripts/search.py +886 -406
  389. package/scripts/search_attribution.py +185 -0
  390. package/scripts/search_benchmark.py +407 -0
  391. package/scripts/search_cli.py +640 -0
  392. package/scripts/search_entry.py +395 -0
  393. package/scripts/search_output.py +690 -0
  394. package/scripts/search_pipeline.py +926 -0
  395. package/scripts/search_rank.py +991 -0
  396. package/scripts/search_types.py +129 -16
  397. package/scripts/seek_locator.py +68 -0
  398. package/scripts/semantic_evidence.py +391 -0
  399. package/scripts/serp_guard.py +336 -0
  400. package/scripts/serp_kill_log.py +74 -0
  401. package/scripts/single_flight.py +120 -0
  402. package/scripts/social_engines/__init__.py +10 -0
  403. package/scripts/social_engines/bilibili_engine.py +131 -0
  404. package/scripts/social_engines/hackernews_engine.py +113 -0
  405. package/scripts/social_engines/reddit_engine.py +172 -0
  406. package/scripts/social_engines/twitter_engine.py +397 -0
  407. package/scripts/social_engines/v2ex_engine.py +101 -0
  408. package/scripts/social_engines/weibo_engine.py +128 -0
  409. package/scripts/social_engines/xiaohongshu_engine.py +137 -0
  410. package/scripts/social_engines/zhihu_engine.py +139 -0
  411. package/scripts/social_research.py +201 -0
  412. package/scripts/sogou_weixin_browser.py +318 -0
  413. package/scripts/source_ledger.py +249 -0
  414. package/scripts/stage_timing.py +58 -0
  415. package/scripts/stats_cli.py +107 -0
  416. package/scripts/straggler_policy.py +60 -0
  417. package/scripts/stylometry_detector.py +231 -0
  418. package/scripts/sync_backends.py +353 -0
  419. package/scripts/sync_installs.py +29 -0
  420. package/scripts/template_cli.py +127 -0
  421. package/scripts/text_lexicon.py +72 -0
  422. package/scripts/tfidf_router.py +109 -37
  423. package/scripts/time_utils.py +233 -0
  424. package/scripts/topic_research_profiles.py +643 -0
  425. package/scripts/train.py +737 -0
  426. package/scripts/tweet.py +596 -0
  427. package/scripts/url_canon.py +217 -0
  428. package/scripts/url_optimize.py +56 -0
  429. package/scripts/url_safety.py +236 -0
  430. package/scripts/usage_log.py +116 -0
  431. package/scripts/usage_log_clean.py +113 -0
  432. package/scripts/v2ex_nodes.py +311 -0
  433. package/scripts/variant_recall.py +188 -0
  434. package/scripts/watch.py +205 -0
  435. package/scripts/wechat_article.py +258 -0
  436. package/scripts/wide_research.py +447 -0
  437. package/scripts/wx.py +349 -0
  438. package/scripts/x_article_fetch.py +141 -0
  439. package/scripts/x_search.py +234 -0
  440. package/scripts/x_trending.py +189 -0
  441. package/scripts/yaml_load.py +67 -0
  442. package/scripts/zhihu_quota.py +139 -0
  443. package/sub-skills/ego-search/SKILL.md +253 -0
  444. package/sub-skills/ego-search/scripts/ego_search.py +800 -0
  445. package/sub-skills/ego-search/scripts/merge.py +226 -0
  446. package/sub-skills/ego-search/scripts/quality.py +64 -0
  447. package/sub-skills/ego-search/scripts/runtime.py +172 -0
  448. package/sub-skills/ego-search/scripts/safety.py +109 -0
  449. package/sub-skills/ego-search/scripts/serp_spec.py +109 -0
  450. package/sub-skills/ego-search/scripts/webbridge_adapter.py +374 -0
  451. package/sub-skills/js-run/SKILL.md +67 -0
  452. package/sub-skills/js-run/scripts/jsrun.py +112 -0
  453. package/sub-skills/js-run/scripts/shim.js +188 -0
  454. package/sub-skills/local-search/SKILL.md +50 -53
  455. package/sub-skills/local-search/bm25.py +186 -0
  456. package/sub-skills/local-search/cli_runner.py +331 -0
  457. package/sub-skills/local-search/config.yaml +152 -55
  458. package/sub-skills/local-search/engine_registry.py +91 -26
  459. package/sub-skills/local-search/{health_check.py → local_health_check.py} +140 -10
  460. package/sub-skills/local-search/local_search_adapter.py +13 -2
  461. package/sub-skills/local-search/parse_maps.yaml +40 -42
  462. package/sub-skills/local-search/parsers.py +328 -0
  463. package/sub-skills/local-search/search_v3.py +716 -242
  464. package/sub-skills/local-search/smart_router.py +47 -7
  465. package/sub-skills/local-seek/SKILL.md +110 -0
  466. package/sub-skills/local-seek/config/domains.yaml +20 -0
  467. package/sub-skills/local-seek/scripts/eval_rank.py +216 -0
  468. package/sub-skills/local-seek/scripts/eval_seek.py +224 -0
  469. package/sub-skills/local-seek/scripts/seek.py +1465 -0
  470. package/sub-skills/local-seek/scripts/seek_frecency.py +126 -0
  471. package/sub-skills/local-seek/scripts/seek_fts.py +430 -0
  472. package/sub-skills/local-seek/scripts/seek_rank.py +197 -0
package/SKILL.md ADDED
@@ -0,0 +1,135 @@
1
+ ---
2
+ name: argo
3
+ description: Argo 阿尔戈 — 统一搜索、网页抓取与证据核验。当需要搜索/查一下/核实/抓取网页/爬取/深度研究/论文检索/新闻/舆情/公众号文章/招聘聚合时使用;支持影视/体育/金融/宏观/学术等垂直域与多语言查询。
4
+ version: 2.9.8
5
+ triggers:
6
+ - 搜索
7
+ - 查一下
8
+ - 搜一下
9
+ - 核实
10
+ - 查证
11
+ - 可信度
12
+ - 抓取
13
+ - 爬取
14
+ - 深度研究
15
+ - 论文
16
+ - 舆情
17
+ - 公众号
18
+ - 招聘
19
+ - search for
20
+ - look up
21
+ - fact check
22
+ - fetch
23
+ - crawl
24
+ - research
25
+ ---
26
+
27
+ # Argo — 统一搜索与证据核验
28
+
29
+ > 不止搜到,还要核到:高后果问题标 `fetch_required`、结果标 `fetch_suggested`,`--verify` 核验正文并回填证据分。收录 272 个源、235 个免密钥可用;digup 默认关;deepseek_search 默认开、需 DEEPSEEK_API_KEY(按次计费,无 key 自动跳过)。
30
+
31
+ ## 快速上手
32
+
33
+ ```bash
34
+ argo search "查询词" # 自动路由搜索(daemon 需显式启动)
35
+ argo search "查询词" --json --fields agent # Agent 消费档
36
+ argo search "查询词" --verify 3 # 核验 top-3 并回填证据分
37
+ python3 scripts/research.py "复杂问题" --json # 取证包(扩词或多工作包 → dossier)
38
+ ```
39
+
40
+ 默认不附 candidates/sources;`--fields agent` 只留答案(~4.3 KB),要追溯或归档才加 `--envelope`(`--archive` 自动带)。
41
+
42
+ 深度研究只此一条,产出**取证包(dossier)**(来源/覆盖/缺口/达标,不是判断稿):先读 `references/research-protocol.md` 写工作包再取证,判断按事实/推断/建议写。不要另装「专业深度研究」skill。
43
+
44
+ ## 核心命令
45
+
46
+ ### search — 统一搜索
47
+
48
+ | 参数 | 说明 |
49
+ |------|------|
50
+ | `--engine <name>` | 强制引擎(anysearch/byted/bocha/exa/deepseek_search/tavily/eastmoney/zhihu/arxiv/pypi/mdn/hackernews/v2ex/redskill…,全量见 `--list-engines`) |
51
+ | `--local-first` | 本地零成本聚合优先(local_search 29 引擎) |
52
+ | `--include-local` / `--no-local` | 本机文件命中(source=local_files,score 0.9/0.7):fast/budget 默认开,auto/deep 显式 |
53
+ | `--mode fast|auto|deep|budget` | fast 免费优先 / auto 成本感知(默认)/ deep 质量优先 / budget 配额控制 |
54
+ | `--explain` | 解释路由决策(含 TF-IDF 分数) |
55
+ | `--no-cache` / `--depth fast|balanced|deep` | 跳过缓存 / 搜索深度 |
56
+ | `--academic-deep` | 学术多源模式:自动设置 depth=deep + domain=academic,禁用 early-stop 让所有学术源参与(arxiv/openalex/local_pubmed/core 等) |
57
+ | `--since 7d|2026-08-01` `--until` `--sort relevance|newest|oldest` | 时间窗过滤 + 时间排序 |
58
+ | `--verify [N]` | 对 top-N 未核验结果 fetch 正文,回填证据分(URL→证据分缓存,同 URL 二次搜索自动复用) |
59
+ | `--domain` `--sub_domain` | 垂直域 / 子域限定 |
60
+
61
+ **按场景选引擎**:时事/时间窗 → deepseek_search,学术 → `--academic-deep`/exa,社交 → anysearch。口径与取舍见 `references/usage.md`。
62
+
63
+ ### 图片检索
64
+
65
+ 网络图走 `search`(`image_search` 域自动命中);本地素材走 `argo local-image`
66
+ (Vision 索引 + `--similar-to` 找相似图 + `--sheet` 出联络表;默认关,需 `ARGO_LOCAL_IMAGE=1`,见 `references/usage.md`)。
67
+
68
+ ### 增强三工具
69
+
70
+ ```bash
71
+ # research — 取证(扩词或 --work-packages → 取证包 + 引用 + 达标检查)
72
+ # 工作包可带 file_inputs / recompute(默认拒绝,需显式授权)
73
+ # 社交舆情:--mode social-sentiment --platforms xiaohongshu,reddit,twitter
74
+ python3 scripts/research.py "查询" [--work-packages PATH|JSON] [--depth deep] [--json] [--verify N]
75
+
76
+ # evidence — 可信度评估(选拔×吸收两维)
77
+ echo '{"results": [...]}' | python3 scripts/evidence.py "查询词" --stdin --json [--high-stakes]
78
+
79
+ # clarify — 意图消歧
80
+ python3 scripts/clarify.py "有歧义的查询" --json
81
+ ```
82
+
83
+
84
+ ### 抓取族(`bin/argo` 入口)
85
+
86
+ ```bash
87
+ argo fetch "https://example.com" [--focus "关键词"] [--use-browser]
88
+ # 降级链见 references/usage.md
89
+ argo screenshot "https://example.com" [--full-page]
90
+ argo pdf "https://example.com/paper.pdf" [--pages "1-5"] [--password "secret"]
91
+ argo paper "1706.03762" # 论文深读
92
+ argo tweet "<x-url|id>" # X 帖子打包(正文+串/引用/转发+媒体)
93
+ argo answer "query" [--scope <语料>] # 直答(语料见 usage.md)
94
+ argo watch add|check|list|remove # 观察模式(--json 供 cron)
95
+ ```
96
+
97
+ ## Agent 执行纪律
98
+
99
+ 1. **高后果问题**(金融/医疗/法律/事实核查):search → evidence(或看 `credibility_fast`)→ fetch 高分 URL → 再下结论;`fetch_required=true` 时禁止跳过核验
100
+ 2. **数字**:必须标注算法(全市场/主动/持仓市值 vs 占比);冲突时并列,禁止算法未对齐就合并
101
+ 3. **SERP 链**(baidu/s、sogou/link):禁止当正文来源
102
+ 4. **社交帖**:叙事/舆情,不进事实真值
103
+ 5. **深度研究**:先读 `references/research-protocol.md`;有决策含义就交工作包,不要靠扩词充问题树;`quality_gate_results.passed=false` 必须降级表述
104
+ 6. **引用**:讲给用户的事实带 URL 出处,日常档也要带(URL 在 `results[].url`,零成本)
105
+ 7. **上下文纪律**:Agent 用 `--json --fields agent`、按需 `-n`;追溯/归档才加 `--envelope`;引擎状态用 `--list-engines --detail --engine <名>`(~0.9 KB)。踩坑见 Gotchas
106
+
107
+ ## Gotchas
108
+
109
+ 踩坑加一行,口径见 `references/usage.md`。
110
+
111
+ - **`--envelope` 与 `--fields agent` 别同给**:后者把 envelope 增量剥成 0 字节;要 provenance 就去掉 `--fields agent`。
112
+ - **结果异常少**:看 `funnel` 六格阶段计数,哪格归零即塌陷点。
113
+ - **慢查询**:看 `timing.dispatch` 的 `tail_wait_ms`(就绪后还在等)/`abandoned_engine_ms`。
114
+ - **`--list-engines` 别直接 `--all`**:全量 ~54 KB 灌爆版面,默认摘要够用。
115
+ - **`-n` 超 10 无收益**。
116
+
117
+ ## 按需读取(低频操作细节)
118
+
119
+ 以下按需打开;日常搜索/抓取/研究走上面核心命令即可。
120
+
121
+ | 场景 | 读什么 |
122
+ |------|--------|
123
+ | MCP 工具全清单 / 多客户端注入 / DSH 插件接入 / 配额·TinyFish / 子技能 / 本地打通 / 工程纪律 | `references/operations.md` |
124
+ | **使用指南**:全命令、参数、86 开关总表、输出体积陷阱、日志反馈 | `references/usage.md` |
125
+ | 深度研究协议:约定、工作包、取证包 vs 判断稿、达标检查 | `references/research-protocol.md` |
126
+ | 约定 / 工作包 / 判断稿模板 | `references/research-templates.md` |
127
+ | X 关键词搜索与查询模板(`argo x-search` / `argo template`,含机制与扩展) | `references/query-templates.md` |
128
+ | 引擎全景:垂直域/社交/学术/本地引擎表 + 路由规则 | `references/engines.md` |
129
+ | 学术检索:查询构造(arXiv/S2/GS 语法)、相关性五因子排序、引用网络挖掘、学术反模式与证据分级 | `references/academic-query.md` |
130
+ | 架构:文件结构、证据流水线、量化公式、输出 JSON Schema、内容质量信号 | `references/architecture.md` |
131
+ | MCP 多客户端注入详解 | `docs/MCP_SETUP.md` |
132
+ | **搜索源使用文档**:全量清单(费用 / 密钥 / 状态 / 域组合)+ 特别能力 + 打开方式 | `docs/ENGINE_CATALOG.md`(生成,勿手改) |
133
+
134
+
135
+ > 工程纪律(每个事实只定义一处:代码看本仓库、引擎声明看 config.yaml、宿主入口用 link_source.py 建软链、新增源流程)见 `references/operations.md` 末尾。
@@ -0,0 +1,121 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="380" viewBox="0 0 1200 380" role="img" aria-labelledby="title desc">
2
+ <title id="title">Argo 阿尔戈</title>
3
+ <desc id="desc">给 Agent 用的统一搜索与证据核验:按域按语言选路,返回能核验、能吸收的材料</desc>
4
+
5
+ <defs>
6
+ <linearGradient id="bg" x1="0" y1="0" x2="1200" y2="380" gradientUnits="userSpaceOnUse">
7
+ <stop offset="0%" stop-color="#070B14"/>
8
+ <stop offset="55%" stop-color="#0B1220"/>
9
+ <stop offset="100%" stop-color="#0E1730"/>
10
+ </linearGradient>
11
+ <linearGradient id="route" x1="0" y1="0" x2="1" y2="0">
12
+ <stop offset="0%" stop-color="#38BDF8" stop-opacity="0.15"/>
13
+ <stop offset="50%" stop-color="#38BDF8" stop-opacity="0.85"/>
14
+ <stop offset="100%" stop-color="#A78BFA" stop-opacity="0.7"/>
15
+ </linearGradient>
16
+ <linearGradient id="barA" x1="0" y1="0" x2="1" y2="0">
17
+ <stop offset="0%" stop-color="#38BDF8"/>
18
+ <stop offset="100%" stop-color="#34D399"/>
19
+ </linearGradient>
20
+ <linearGradient id="barB" x1="0" y1="0" x2="1" y2="0">
21
+ <stop offset="0%" stop-color="#A78BFA"/>
22
+ <stop offset="100%" stop-color="#38BDF8"/>
23
+ </linearGradient>
24
+ <pattern id="dots" width="24" height="24" patternUnits="userSpaceOnUse">
25
+ <circle cx="1" cy="1" r="0.8" fill="#38BDF8" opacity="0.12"/>
26
+ </pattern>
27
+ </defs>
28
+
29
+ <rect width="1200" height="380" rx="28" fill="url(#bg)"/>
30
+ <rect width="1200" height="380" rx="28" fill="url(#dots)"/>
31
+
32
+ <!-- left accent rail -->
33
+ <rect x="0" y="48" width="4" height="284" fill="#38BDF8" opacity="0.9"/>
34
+
35
+ <!-- Title block -->
36
+ <g id="title-block" transform="translate(56 52)">
37
+ <text x="0" y="18" font-family="ui-monospace, SFMono-Regular, Menlo, monospace" font-size="13" fill="#38BDF8" letter-spacing="2.5">AGENT SEARCH · EVIDENCE ROUTER</text>
38
+ <text x="0" y="78" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="56" font-weight="700" fill="#E8EEF7">Argo</text>
39
+ <text x="168" y="78" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="34" font-weight="500" fill="#94A3B8">阿尔戈</text>
40
+ <text x="0" y="122" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="18" fill="#CBD5E1">给 Agent 用的统一搜索与证据核验</text>
41
+ <text x="0" y="152" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="16" fill="#64748B">不只返回链接 · 按域按语言选路 · 输出可吸收证据</text>
42
+
43
+ <!-- meta chips -->
44
+ <g transform="translate(0 188)">
45
+ <rect width="118" height="32" rx="8" fill="#121A2B" stroke="#1E2A3F"/>
46
+ <text x="59" y="21" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#94A3B8">v2.9.8</text>
47
+
48
+ <rect x="130" width="132" height="32" rx="8" fill="#121A2B" stroke="#1E2A3F"/>
49
+ <text x="196" y="21" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#38BDF8">272 engines</text>
50
+
51
+ <rect x="274" width="118" height="32" rx="8" fill="#121A2B" stroke="#1E2A3F"/>
52
+ <text x="333" y="21" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#A78BFA">19 MCP</text>
53
+
54
+ <rect x="404" width="100" height="32" rx="8" fill="#121A2B" stroke="#1E2A3F"/>
55
+ <text x="454" y="21" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#34D399">Python</text>
56
+ </g>
57
+
58
+ <!-- pipeline cue -->
59
+ <g transform="translate(0 248)" font-family="ui-monospace, Menlo, monospace" font-size="12">
60
+ <text x="0" y="0" fill="#475569">query</text>
61
+ <text x="58" y="0" fill="#334155">→</text>
62
+ <text x="78" y="0" fill="#38BDF8">lang</text>
63
+ <text x="118" y="0" fill="#334155">→</text>
64
+ <text x="138" y="0" fill="#38BDF8">route</text>
65
+ <text x="186" y="0" fill="#334155">→</text>
66
+ <text x="206" y="0" fill="#A78BFA">RRF</text>
67
+ <text x="244" y="0" fill="#334155">→</text>
68
+ <text x="264" y="0" fill="#34D399">evidence</text>
69
+ </g>
70
+ </g>
71
+
72
+ <!-- Right: live route proof card -->
73
+ <g id="project-proof" transform="translate(620 42)">
74
+ <rect width="528" height="296" rx="18" fill="#0D1526" stroke="#1E2A3F" stroke-width="1.5"/>
75
+ <!-- title bar -->
76
+ <rect width="528" height="40" rx="18" fill="#121A2B"/>
77
+ <rect y="22" width="528" height="18" fill="#121A2B"/>
78
+ <circle cx="22" cy="20" r="5" fill="#F87171" opacity="0.8"/>
79
+ <circle cx="40" cy="20" r="5" fill="#FBBF24" opacity="0.8"/>
80
+ <circle cx="58" cy="20" r="5" fill="#34D399" opacity="0.8"/>
81
+ <text x="86" y="24" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#64748B">argo search --json</text>
82
+
83
+ <!-- query line -->
84
+ <text x="24" y="68" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#475569">$</text>
85
+ <text x="42" y="68" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#E2E8F0">贵州茅台股价</text>
86
+ <rect x="360" y="52" width="144" height="24" rx="6" fill="#0B3B2E" stroke="#166534"/>
87
+ <text x="432" y="68" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#34D399">domain: stock</text>
88
+
89
+ <!-- route nodes -->
90
+ <g transform="translate(24 92)">
91
+ <text x="0" y="0" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">ROUTE</text>
92
+ <rect x="0" y="12" width="110" height="28" rx="7" fill="#122033" stroke="#1E3A5F"/>
93
+ <text x="55" y="30" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#38BDF8">sina_quote</text>
94
+ <rect x="122" y="12" width="128" height="28" rx="7" fill="#122033" stroke="#1E3A5F"/>
95
+ <text x="186" y="30" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#38BDF8">tencent_quote</text>
96
+ <rect x="262" y="12" width="100" height="28" rx="7" fill="#1A1430" stroke="#3B2F6B"/>
97
+ <text x="312" y="30" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#A78BFA">early-stop</text>
98
+ <path d="M 110 26 L 122 26" stroke="url(#route)" stroke-width="2"/>
99
+ <path d="M 250 26 L 262 26" stroke="url(#route)" stroke-width="2"/>
100
+ </g>
101
+
102
+ <!-- result card -->
103
+ <g transform="translate(24 156)">
104
+ <rect width="480" height="118" rx="12" fill="#101826" stroke="#243044"/>
105
+ <text x="16" y="28" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="15" font-weight="600" fill="#E8EEF7">贵州茅台 1337.74 ↓ -1.56%</text>
106
+ <text x="16" y="52" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">source · sina_quote · 553ms · fact-ready</text>
107
+
108
+ <!-- score bars -->
109
+ <text x="16" y="82" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#64748B">selection</text>
110
+ <rect x="92" y="72" width="160" height="8" rx="4" fill="#1E2A3F"/>
111
+ <rect x="92" y="72" width="144" height="8" rx="4" fill="url(#barA)"/>
112
+
113
+ <text x="16" y="104" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#64748B">absorption</text>
114
+ <rect x="92" y="94" width="160" height="8" rx="4" fill="#1E2A3F"/>
115
+ <rect x="92" y="94" width="132" height="8" rx="4" fill="url(#barB)"/>
116
+
117
+ <text x="280" y="88" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#34D399">not a SERP shell</text>
118
+ <text x="280" y="106" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#94A3B8">digits + quote snapshot</text>
119
+ </g>
120
+ </g>
121
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="420" height="64" viewBox="0 0 420 64" role="img" aria-labelledby="title desc">
2
+ <title id="title">README made with beautify-github-readme</title>
3
+ <desc id="desc">Compact project-native credit for the README redesign skill</desc>
4
+ <rect width="420" height="64" rx="12" fill="#0B1220" stroke="#1E2A3F"/>
5
+ <rect x="0" y="16" width="3" height="32" fill="#38BDF8"/>
6
+ <text x="20" y="28" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#64748B" letter-spacing="1.5">README MADE WITH</text>
7
+ <text x="20" y="48" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" font-size="14" font-weight="600" fill="#E8EEF7">beautify-github-readme</text>
8
+ <circle cx="380" cy="32" r="10" fill="none" stroke="#38BDF8" stroke-width="1.5"/>
9
+ <path d="M376 32 L384 32 M380 28 L384 32 L380 36" stroke="#38BDF8" stroke-width="1.5" fill="none" stroke-linecap="round"/>
10
+ </svg>
@@ -0,0 +1,73 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="420" viewBox="0 0 1200 420" role="img" aria-labelledby="title desc">
2
+ <title id="title">Argo 问啥像啥</title>
3
+ <desc id="desc">四类真实路由:A股行情、影视、多语言、地理实体各自命中垂直源</desc>
4
+
5
+ <defs>
6
+ <linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
7
+ <stop offset="0%" stop-color="#070B14"/>
8
+ <stop offset="100%" stop-color="#0B1220"/>
9
+ </linearGradient>
10
+ </defs>
11
+
12
+ <rect width="1200" height="420" rx="28" fill="url(#bg)"/>
13
+
14
+ <text x="56" y="48" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#38BDF8" letter-spacing="2">PROOF · REAL ROUTES</text>
15
+ <text x="56" y="82" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="26" font-weight="650" fill="#E8EEF7">问啥像啥 · 垂直源优先</text>
16
+ <text x="56" y="110" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="14" fill="#64748B">同样是「搜索」,路由不同 · 答案形态不同 · 可信度字段跟输出一起回来</text>
17
+
18
+ <!-- card 1 finance -->
19
+ <g transform="translate(56 140)">
20
+ <rect width="260" height="230" rx="16" fill="#0D1526" stroke="#1E2A3F"/>
21
+ <rect x="16" y="16" width="64" height="22" rx="6" fill="#0B3B2E"/>
22
+ <text x="48" y="31" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#34D399">FINANCE</text>
23
+ <text x="16" y="64" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="15" font-weight="600" fill="#E8EEF7">贵州茅台股价</text>
24
+ <text x="16" y="92" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">domain</text>
25
+ <text x="16" y="112" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#38BDF8">stock_query</text>
26
+ <text x="16" y="142" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">engines</text>
27
+ <text x="16" y="162" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#CBD5E1">sina · tencent</text>
28
+ <text x="16" y="192" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">result shape</text>
29
+ <text x="16" y="212" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#94A3B8">报价快照 · early-stop</text>
30
+ </g>
31
+
32
+ <!-- card 2 film -->
33
+ <g transform="translate(332 140)">
34
+ <rect width="260" height="230" rx="16" fill="#0D1526" stroke="#1E2A3F"/>
35
+ <rect x="16" y="16" width="52" height="22" rx="6" fill="#1A1430"/>
36
+ <text x="42" y="31" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#A78BFA">FILM</text>
37
+ <text x="16" y="64" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="15" font-weight="600" fill="#E8EEF7">Inception director</text>
38
+ <text x="16" y="92" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">domain</text>
39
+ <text x="16" y="112" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#A78BFA">film_search</text>
40
+ <text x="16" y="142" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">engines</text>
41
+ <text x="16" y="162" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#CBD5E1">imdb · itunes</text>
42
+ <text x="16" y="192" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">result shape</text>
43
+ <text x="16" y="212" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#94A3B8">作品页 · 实体字段</text>
44
+ </g>
45
+
46
+ <!-- card 3 multilingual -->
47
+ <g transform="translate(608 140)">
48
+ <rect width="260" height="230" rx="16" fill="#0D1526" stroke="#1E2A3F"/>
49
+ <rect x="16" y="16" width="48" height="22" rx="6" fill="#0C2A3A"/>
50
+ <text x="40" y="31" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#38BDF8">LANG</text>
51
+ <text x="16" y="64" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="15" font-weight="600" fill="#E8EEF7">アニメ おすすめ</text>
52
+ <text x="16" y="92" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">query_lang</text>
53
+ <text x="16" y="112" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#38BDF8">ja · no zh-only</text>
54
+ <text x="16" y="142" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">engines</text>
55
+ <text x="16" y="162" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#CBD5E1">local_bing · ddg</text>
56
+ <text x="16" y="192" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">gate</text>
57
+ <text x="16" y="212" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#94A3B8">避开中文专用源</text>
58
+ </g>
59
+
60
+ <!-- card 4 geo -->
61
+ <g transform="translate(884 140)">
62
+ <rect width="260" height="230" rx="16" fill="#0D1526" stroke="#1E2A3F"/>
63
+ <rect x="16" y="16" width="44" height="22" rx="6" fill="#2A2310"/>
64
+ <text x="38" y="31" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#FBBF24">GEO</text>
65
+ <text x="16" y="64" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="15" font-weight="600" fill="#E8EEF7">where is Eiffel Tower</text>
66
+ <text x="16" y="92" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">domain</text>
67
+ <text x="16" y="112" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#FBBF24">geo_places</text>
68
+ <text x="16" y="142" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">engines</text>
69
+ <text x="16" y="162" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#CBD5E1">openstreetmap · wiki</text>
70
+ <text x="16" y="192" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#64748B">result shape</text>
71
+ <text x="16" y="212" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#94A3B8">坐标 · 实体定位</text>
72
+ </g>
73
+ </svg>
@@ -0,0 +1,104 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="400" viewBox="0 0 1200 400" role="img" aria-labelledby="title desc">
2
+ <title id="title">Argo 与其他搜索方式的差别</title>
3
+ <desc id="desc">左侧:模型自带搜索、AI 搜索、聚合搜索引擎给人看的总结页或链接清单;右侧:Argo 给 Agent 的证据 JSON 与可信度评分</desc>
4
+
5
+ <defs>
6
+ <linearGradient id="bg" x1="0" y1="0" x2="1200" y2="400" gradientUnits="userSpaceOnUse">
7
+ <stop offset="0%" stop-color="#070B14"/>
8
+ <stop offset="55%" stop-color="#0B1220"/>
9
+ <stop offset="100%" stop-color="#0E1730"/>
10
+ </linearGradient>
11
+ <linearGradient id="route" x1="0" y1="0" x2="1" y2="0">
12
+ <stop offset="0%" stop-color="#38BDF8" stop-opacity="0.15"/>
13
+ <stop offset="50%" stop-color="#38BDF8" stop-opacity="0.85"/>
14
+ <stop offset="100%" stop-color="#A78BFA" stop-opacity="0.7"/>
15
+ </linearGradient>
16
+ <linearGradient id="barA" x1="0" y1="0" x2="1" y2="0">
17
+ <stop offset="0%" stop-color="#38BDF8"/>
18
+ <stop offset="100%" stop-color="#34D399"/>
19
+ </linearGradient>
20
+ <pattern id="dots" width="24" height="24" patternUnits="userSpaceOnUse">
21
+ <circle cx="1" cy="1" r="0.8" fill="#38BDF8" opacity="0.12"/>
22
+ </pattern>
23
+ </defs>
24
+
25
+ <rect width="1200" height="400" rx="28" fill="url(#bg)"/>
26
+ <rect width="1200" height="400" rx="28" fill="url(#dots)"/>
27
+
28
+ <!-- column headers -->
29
+ <text x="48" y="44" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#64748B" letter-spacing="2.5">HUMAN-FACING · 给人看</text>
30
+ <text x="720" y="44" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#38BDF8" letter-spacing="2.5">AGENT-FACING · 给 Agent 吸收</text>
31
+
32
+ <!-- left: three default alternatives -->
33
+ <g id="default-1" transform="translate(48 68)">
34
+ <rect width="480" height="76" rx="10" fill="#0D1526" stroke="#1E2A3F"/>
35
+ <rect width="3" height="76" fill="#334155"/>
36
+ <text x="20" y="28" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#94A3B8">模型自带搜索</text>
37
+ <text x="20" y="54" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#64748B">泛搜网页 → 拼一段长文本,塞回 Agent 上下文</text>
38
+ </g>
39
+ <g id="default-2" transform="translate(48 156)">
40
+ <rect width="480" height="76" rx="10" fill="#0D1526" stroke="#1E2A3F"/>
41
+ <rect width="3" height="76" fill="#334155"/>
42
+ <text x="20" y="28" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#94A3B8">AI 搜索(总结型)</text>
43
+ <text x="20" y="54" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#64748B">总结页给人看;Agent 拿不到结构化证据</text>
44
+ </g>
45
+ <g id="default-3" transform="translate(48 244)">
46
+ <rect width="480" height="76" rx="10" fill="#0D1526" stroke="#1E2A3F"/>
47
+ <rect width="3" height="76" fill="#334155"/>
48
+ <text x="20" y="28" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#94A3B8">聚合搜索 / 搜索引擎</text>
49
+ <text x="20" y="54" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#64748B">SERP 链接清单;无评分、无垂直门禁</text>
50
+ </g>
51
+
52
+ <text x="48" y="356" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#475569">default search answers people · argo answers agents</text>
53
+
54
+ <!-- vs badge -->
55
+ <circle cx="624" cy="196" r="26" fill="#0D1526" stroke="#38BDF8" stroke-width="2"/>
56
+ <text x="624" y="202" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="15" fill="#38BDF8">vs</text>
57
+
58
+ <!-- right: argo proof card -->
59
+ <g id="argo-card" transform="translate(720 68)">
60
+ <rect width="432" height="288" rx="16" fill="#0D1526" stroke="#1E3A5F" stroke-width="1.5"/>
61
+ <!-- title bar -->
62
+ <rect width="432" height="36" rx="16" fill="#121A2B"/>
63
+ <rect y="20" width="432" height="16" fill="#121A2B"/>
64
+ <circle cx="20" cy="18" r="4.5" fill="#F87171" opacity="0.8"/>
65
+ <circle cx="36" cy="18" r="4.5" fill="#FBBF24" opacity="0.8"/>
66
+ <circle cx="52" cy="18" r="4.5" fill="#34D399" opacity="0.8"/>
67
+ <text x="70" y="23" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#64748B">argo search --json</text>
68
+
69
+ <!-- query line -->
70
+ <text x="20" y="66" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#475569">$</text>
71
+ <text x="36" y="66" font-family="ui-monospace, Menlo, monospace" font-size="13" fill="#E2E8F0">贵州茅台股价</text>
72
+ <rect x="296" y="52" width="116" height="22" rx="6" fill="#0B3B2E" stroke="#166534"/>
73
+ <text x="354" y="67" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="11" fill="#34D399">domain: stock</text>
74
+
75
+ <!-- route nodes -->
76
+ <g transform="translate(20 84)">
77
+ <text x="0" y="0" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#64748B">ROUTE</text>
78
+ <rect x="0" y="10" width="92" height="26" rx="6" fill="#122033" stroke="#1E3A5F"/>
79
+ <text x="46" y="28" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10.5" fill="#38BDF8">sina_quote</text>
80
+ <rect x="104" y="10" width="104" height="26" rx="6" fill="#122033" stroke="#1E3A5F"/>
81
+ <text x="156" y="28" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10.5" fill="#38BDF8">tencent_quote</text>
82
+ <rect x="220" y="10" width="84" height="26" rx="6" fill="#1A1430" stroke="#3B2F6B"/>
83
+ <text x="262" y="28" text-anchor="middle" font-family="ui-monospace, Menlo, monospace" font-size="10.5" fill="#A78BFA">early-stop</text>
84
+ <path d="M 92 23 L 104 23" stroke="url(#route)" stroke-width="2"/>
85
+ <path d="M 208 23 L 220 23" stroke="url(#route)" stroke-width="2"/>
86
+ </g>
87
+
88
+ <!-- result card -->
89
+ <g transform="translate(20 136)">
90
+ <rect width="392" height="112" rx="10" fill="#101826" stroke="#243044"/>
91
+ <text x="14" y="22" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="14" font-weight="600" fill="#E8EEF7">贵州茅台 1337.74 ↓ -1.56%</text>
92
+ <text x="14" y="42" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#64748B">source · sina_quote · 553ms · fact-ready</text>
93
+ <text x="14" y="62" font-family="ui-monospace, Menlo, monospace" font-size="9.5" fill="#94A3B8">{ "price": "1337.74", "credibility_fast": 0.86 }</text>
94
+ <text x="14" y="78" font-family="ui-monospace, Menlo, monospace" font-size="9.5" fill="#94A3B8"> "engine_outcomes": { "sina_quote": "ok" } }</text>
95
+ <text x="14" y="98" font-family="ui-monospace, Menlo, monospace" font-size="9.5" fill="#64748B">selection</text>
96
+ <rect x="86" y="90" width="120" height="6" rx="3" fill="#1E2A3F"/>
97
+ <rect x="86" y="90" width="108" height="6" rx="3" fill="url(#barA)"/>
98
+ <text x="230" y="98" font-family="ui-monospace, Menlo, monospace" font-size="10" fill="#34D399">not a SERP shell</text>
99
+ </g>
100
+
101
+ <!-- bottom cue -->
102
+ <text x="20" y="272" font-family="ui-monospace, Menlo, monospace" font-size="10.5" fill="#64748B">free-first · ~10ms cache · fast/auto/deep/budget</text>
103
+ </g>
104
+ </svg>
@@ -0,0 +1,83 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="360" viewBox="0 0 1200 360" role="img" aria-labelledby="title desc">
2
+ <title id="title">Argo 工作流</title>
3
+ <desc id="desc">从查询到统一 JSON:语言检测、路由、多引擎召回、RRF 融合、证据快评</desc>
4
+
5
+ <defs>
6
+ <linearGradient id="bg" x1="0" y1="0" x2="1200" y2="360" gradientUnits="userSpaceOnUse">
7
+ <stop offset="0%" stop-color="#070B14"/>
8
+ <stop offset="100%" stop-color="#0B1220"/>
9
+ </linearGradient>
10
+ <marker id="arr" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
11
+ <path d="M0,0 L6,3 L0,6 Z" fill="#475569"/>
12
+ </marker>
13
+ </defs>
14
+
15
+ <rect width="1200" height="360" rx="28" fill="url(#bg)"/>
16
+
17
+ <text x="56" y="44" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#38BDF8" letter-spacing="2">HOW IT WORKS</text>
18
+ <text x="56" y="76" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="24" font-weight="650" fill="#E8EEF7">一条查询的完整路径</text>
19
+
20
+ <!-- stage boxes row -->
21
+ <g font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif">
22
+ <!-- 1 -->
23
+ <rect x="56" y="120" width="150" height="96" rx="14" fill="#0D1526" stroke="#1E2A3F"/>
24
+ <text x="131" y="152" text-anchor="middle" font-size="11" fill="#64748B" font-family="ui-monospace, Menlo, monospace">01</text>
25
+ <text x="131" y="178" text-anchor="middle" font-size="15" font-weight="600" fill="#E8EEF7">查询</text>
26
+ <text x="131" y="200" text-anchor="middle" font-size="11" fill="#64748B">改写可选</text>
27
+
28
+ <!-- 2 -->
29
+ <rect x="246" y="120" width="150" height="96" rx="14" fill="#0D1526" stroke="#1E3A5F"/>
30
+ <text x="321" y="152" text-anchor="middle" font-size="11" fill="#38BDF8" font-family="ui-monospace, Menlo, monospace">02</text>
31
+ <text x="321" y="178" text-anchor="middle" font-size="15" font-weight="600" fill="#E8EEF7">语言 + 域</text>
32
+ <text x="321" y="200" text-anchor="middle" font-size="11" fill="#64748B">检测 · 规则 · TF-IDF</text>
33
+
34
+ <!-- 3 -->
35
+ <rect x="436" y="120" width="150" height="96" rx="14" fill="#0D1526" stroke="#1E3A5F"/>
36
+ <text x="511" y="152" text-anchor="middle" font-size="11" fill="#38BDF8" font-family="ui-monospace, Menlo, monospace">03</text>
37
+ <text x="511" y="178" text-anchor="middle" font-size="15" font-weight="600" fill="#E8EEF7">多引擎召回</text>
38
+ <text x="511" y="200" text-anchor="middle" font-size="11" fill="#64748B">熔断 · 负缓存</text>
39
+
40
+ <!-- 4 -->
41
+ <rect x="626" y="120" width="150" height="96" rx="14" fill="#0D1526" stroke="#3B2F6B"/>
42
+ <text x="701" y="152" text-anchor="middle" font-size="11" fill="#A78BFA" font-family="ui-monospace, Menlo, monospace">04</text>
43
+ <text x="701" y="178" text-anchor="middle" font-size="15" font-weight="600" fill="#E8EEF7">RRF 融合</text>
44
+ <text x="701" y="200" text-anchor="middle" font-size="11" fill="#64748B">分阶恢复</text>
45
+
46
+ <!-- 5 -->
47
+ <rect x="816" y="120" width="150" height="96" rx="14" fill="#0D1526" stroke="#166534"/>
48
+ <text x="891" y="152" text-anchor="middle" font-size="11" fill="#34D399" font-family="ui-monospace, Menlo, monospace">05</text>
49
+ <text x="891" y="178" text-anchor="middle" font-size="15" font-weight="600" fill="#E8EEF7">证据快评</text>
50
+ <text x="891" y="200" text-anchor="middle" font-size="11" fill="#64748B">权威 · 密度 · 时效</text>
51
+
52
+ <!-- 6 -->
53
+ <rect x="1006" y="120" width="138" height="96" rx="14" fill="#122033" stroke="#38BDF8" stroke-opacity="0.5"/>
54
+ <text x="1075" y="152" text-anchor="middle" font-size="11" fill="#38BDF8" font-family="ui-monospace, Menlo, monospace">06</text>
55
+ <text x="1075" y="178" text-anchor="middle" font-size="15" font-weight="600" fill="#E8EEF7">统一 JSON</text>
56
+ <text x="1075" y="200" text-anchor="middle" font-size="11" fill="#64748B">Agent 可吸收</text>
57
+ </g>
58
+
59
+ <!-- arrows -->
60
+ <g stroke="#475569" stroke-width="1.5" fill="none" marker-end="url(#arr)">
61
+ <path d="M210 168 H240"/>
62
+ <path d="M400 168 H430"/>
63
+ <path d="M590 168 H620"/>
64
+ <path d="M780 168 H810"/>
65
+ <path d="M970 168 H1000"/>
66
+ </g>
67
+
68
+ <!-- bottom notes -->
69
+ <g transform="translate(56 260)">
70
+ <rect width="1088" height="64" rx="12" fill="#0D1526" stroke="#1E2A3F"/>
71
+ <text x="24" y="28" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#64748B">budget</text>
72
+ <text x="24" y="48" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#CBD5E1">fast · auto · deep · budget</text>
73
+
74
+ <text x="280" y="28" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#64748B">cache</text>
75
+ <text x="280" y="48" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#CBD5E1">内存 + SQLite · 热查询约 10ms</text>
76
+
77
+ <text x="580" y="28" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#64748B">recovery gate</text>
78
+ <text x="580" y="48" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#CBD5E1">空结果可恢复 · 禁无关垂直源串味</text>
79
+
80
+ <text x="900" y="28" font-family="ui-monospace, Menlo, monospace" font-size="12" fill="#64748B">local + web</text>
81
+ <text x="900" y="48" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, sans-serif" font-size="13" fill="#CBD5E1">联网 + 本机文件一体</text>
82
+ </g>
83
+ </svg>