argo-search 1.0.1 → 2.9.7

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 (463) hide show
  1. package/LICENSE +201 -21
  2. package/README.en.md +822 -0
  3. package/README.es.md +864 -0
  4. package/README.ja.md +864 -0
  5. package/README.ko.md +864 -0
  6. package/README.md +867 -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/settings-keys.png +0 -0
  12. package/assets/readme/settings-tools.png +0 -0
  13. package/assets/readme/why-better.svg +104 -0
  14. package/assets/readme/workflow.svg +83 -0
  15. package/backends/domain_profiles.json +2308 -96
  16. package/backends/engine_registry.yaml +3314 -503
  17. package/backends/query_synonyms_cn.json +35 -0
  18. package/backends/quota_profiles.json +2409 -161
  19. package/backends/source_types_cn.json +83 -0
  20. package/backends/text_lexicon.json +44 -0
  21. package/bin/argo +703 -0
  22. package/bin/argo.js +71 -39
  23. package/config.yaml +4976 -363
  24. package/cordis.patch.yml +21 -0
  25. package/data/countries.json +40 -0
  26. package/data/lang_matrix/lang_capability.json +842 -0
  27. package/data/lang_matrix/matrix_2026-09-10.json +11921 -0
  28. package/data/regions_cn.json +1 -0
  29. package/docs/ADDING_NEW_ENGINE.md +184 -0
  30. package/docs/ARGO_INTRO.md +124 -0
  31. package/docs/DATA_SOURCE_GAPS.md +81 -0
  32. package/docs/DESIGN_LOCAL_DATA_FUSION.md +90 -0
  33. package/docs/ENGINE_CATALOG.md +564 -0
  34. package/docs/MCP_SETUP.md +106 -0
  35. package/docs/PLATFORM_PATHS.md +111 -0
  36. package/docs/RELEASE_NOTES_v2.8.0.md +71 -0
  37. package/docs/RELEASE_NOTES_v2.8.2.md +63 -0
  38. package/docs/RELEASE_NOTES_v2.8.3.md +55 -0
  39. package/docs/RELEASE_NOTES_v2.8.4.md +79 -0
  40. package/docs/RELEASE_NOTES_v2.8.5.md +102 -0
  41. package/docs/RELEASE_NOTES_v2.8.6.md +66 -0
  42. package/docs/RELEASE_NOTES_v2.8.7.md +65 -0
  43. package/docs/RELEASE_NOTES_v2.8.8.md +67 -0
  44. package/docs/RELEASE_NOTES_v2.8.9.md +67 -0
  45. package/docs/RELEASE_NOTES_v2.9.0.md +64 -0
  46. package/docs/SEARCH_ARCHIVE.md +115 -0
  47. package/docs/assets/architecture.svg +104 -0
  48. package/docs/assets/hero.svg +98 -0
  49. package/docs/engines/bangumi.md +27 -0
  50. package/docs/engines/biorxiv.md +27 -0
  51. package/docs/engines/clawhub.md +27 -0
  52. package/docs/engines/crt_sh.md +27 -0
  53. package/docs/engines/datacite.md +27 -0
  54. package/docs/engines/deps_dev.md +27 -0
  55. package/docs/engines/douban_movie.md +27 -0
  56. package/docs/engines/endoflife.md +27 -0
  57. package/docs/engines/flk_law.md +27 -0
  58. package/docs/engines/fxtwitter.md +27 -0
  59. package/docs/engines/google_news.md +27 -0
  60. package/docs/engines/gov_regulations.md +27 -0
  61. package/docs/engines/guqian.md +27 -0
  62. package/docs/engines/hackernews.md +27 -0
  63. package/docs/engines/iplant.md +27 -0
  64. package/docs/engines/keenable.md +27 -0
  65. package/docs/engines/met_museum.md +27 -0
  66. package/docs/engines/nasa_images.md +27 -0
  67. package/docs/engines/netease_music.md +27 -0
  68. package/docs/engines/npm.md +27 -0
  69. package/docs/engines/nvd.md +27 -0
  70. package/docs/engines/openreview.md +27 -0
  71. package/docs/engines/openstd.md +27 -0
  72. package/docs/engines/parallel_free.md +27 -0
  73. package/docs/engines/people_daily.md +27 -0
  74. package/docs/engines/realtime_index.md +27 -0
  75. package/docs/engines/sec_edgar.md +27 -0
  76. package/docs/engines/seltz.md +27 -0
  77. package/docs/engines/skillsmp.md +27 -0
  78. package/docs/engines/sspai.md +27 -0
  79. package/docs/engines/std_samr.md +27 -0
  80. package/docs/engines/train.md +27 -0
  81. package/docs/engines/un_comtrade.md +27 -0
  82. package/docs/engines/wikisource.md +27 -0
  83. package/docs/engines/zdic.md +27 -0
  84. package/docs/engines/zenodo.md +27 -0
  85. package/docs/engines/zhihu_hot_app.md +27 -0
  86. package/docs//344/270/272/344/273/200/344/271/210/351/200/211/346/213/251argo.md +176 -0
  87. package/engines/README.md +10 -0
  88. package/engines/_template_cli.yaml +39 -0
  89. package/engines/_template_http.yaml +37 -0
  90. package/engines/plugins/_template_plugin.py +50 -0
  91. package/engines/specs/_cisa_kev.yaml +54 -0
  92. package/engines/specs/_osv.yaml +63 -0
  93. package/engines/specs/aljazeera.yaml +43 -0
  94. package/engines/specs/antara.yaml +43 -0
  95. package/engines/specs/artic.yaml +20 -0
  96. package/engines/specs/aviation_weather.yaml +39 -0
  97. package/engines/specs/bangumi.yaml +21 -0
  98. package/engines/specs/biorxiv.yaml +24 -0
  99. package/engines/specs/carbon_intensity.yaml +32 -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/deps_dev.yaml +21 -0
  113. package/engines/specs/digup.yaml +36 -0
  114. package/engines/specs/doi.yaml +39 -0
  115. package/engines/specs/douban_movie.yaml +22 -0
  116. package/engines/specs/dw_news.yaml +47 -0
  117. package/engines/specs/egov_law.yaml +21 -0
  118. package/engines/specs/elpais.yaml +43 -0
  119. package/engines/specs/endoflife.yaml +21 -0
  120. package/engines/specs/energy_charts.yaml +21 -0
  121. package/engines/specs/factcheck_org.yaml +52 -0
  122. package/engines/specs/faz.yaml +43 -0
  123. package/engines/specs/federal_register.yaml +57 -0
  124. package/engines/specs/firecrawl.yaml +53 -0
  125. package/engines/specs/flk_law.yaml +24 -0
  126. package/engines/specs/folha.yaml +43 -0
  127. package/engines/specs/france24.yaml +44 -0
  128. package/engines/specs/full_fact.yaml +47 -0
  129. package/engines/specs/fxtwitter.yaml +31 -0
  130. package/engines/specs/gbfs_nyc.yaml +32 -0
  131. package/engines/specs/gdacs.yaml +21 -0
  132. package/engines/specs/gdelt.yaml +64 -0
  133. package/engines/specs/google_news.yaml +22 -0
  134. package/engines/specs/gov_regulations.yaml +38 -0
  135. package/engines/specs/guardian_rss.yaml +59 -0
  136. package/engines/specs/hurriyet.yaml +43 -0
  137. package/engines/specs/iplant.yaml +25 -0
  138. package/engines/specs/jikan.yaml +24 -0
  139. package/engines/specs/jolpica.yaml +20 -0
  140. package/engines/specs/k10plus.yaml +20 -0
  141. package/engines/specs/keenable.yaml +44 -0
  142. package/engines/specs/lefigaro.yaml +43 -0
  143. package/engines/specs/listenbrainz.yaml +19 -0
  144. package/engines/specs/matichon.yaml +43 -0
  145. package/engines/specs/met_museum.yaml +21 -0
  146. package/engines/specs/nasa_images.yaml +45 -0
  147. package/engines/specs/netease_music.yaml +38 -0
  148. package/engines/specs/nhk.yaml +43 -0
  149. package/engines/specs/nhtsa_vpic.yaml +20 -0
  150. package/engines/specs/noaa_swpc.yaml +20 -0
  151. package/engines/specs/nvd.yaml +38 -0
  152. package/engines/specs/obis.yaml +20 -0
  153. package/engines/specs/opencitations.yaml +52 -0
  154. package/engines/specs/openf1.yaml +21 -0
  155. package/engines/specs/openfoodfacts.yaml +45 -0
  156. package/engines/specs/openligadb.yaml +20 -0
  157. package/engines/specs/openreview.yaml +37 -0
  158. package/engines/specs/openstd.yaml +21 -0
  159. package/engines/specs/people_daily.yaml +22 -0
  160. package/engines/specs/realtime_index.yaml +34 -0
  161. package/engines/specs/ror.yaml +20 -0
  162. package/engines/specs/satnogs.yaml +20 -0
  163. package/engines/specs/sec_edgar.yaml +46 -0
  164. package/engines/specs/skillsmp.yaml +50 -0
  165. package/engines/specs/sogou_weixin_browser.yaml +30 -0
  166. package/engines/specs/soilgrids.yaml +25 -0
  167. package/engines/specs/sspai.yaml +36 -0
  168. package/engines/specs/stackexchange.yaml +46 -0
  169. package/engines/specs/std_samr.yaml +21 -0
  170. package/engines/specs/tass.yaml +43 -0
  171. package/engines/specs/tle_mirror.yaml +21 -0
  172. package/engines/specs/train.yaml +37 -0
  173. package/engines/specs/tvmaze.yaml +20 -0
  174. package/engines/specs/twitter_syndication.yaml +31 -0
  175. package/engines/specs/un_comtrade.yaml +23 -0
  176. package/engines/specs/unpaywall.yaml +54 -0
  177. package/engines/specs/vnpress.yaml +43 -0
  178. package/engines/specs/weather.yaml +32 -0
  179. package/engines/specs/who_don.yaml +21 -0
  180. package/engines/specs/who_gho.yaml +20 -0
  181. package/engines/specs/wikimedia_commons.yaml +34 -0
  182. package/engines/specs/wikisource.yaml +22 -0
  183. package/engines/specs/worms.yaml +19 -0
  184. package/engines/specs/x_trending.yaml +34 -0
  185. package/engines/specs/yna.yaml +43 -0
  186. package/engines/specs/ynet.yaml +43 -0
  187. package/engines/specs/zbmath.yaml +40 -0
  188. package/engines/specs/zdic.yaml +22 -0
  189. package/engines/specs/zenodo.yaml +27 -0
  190. package/engines/specs/zhihu_hot_app.yaml +35 -0
  191. package/mcp/clients.yaml +74 -0
  192. package/package.json +51 -12
  193. package/packages/dsh-plugin/README.md +134 -0
  194. package/packages/dsh-plugin/cordis.patch.yml +48 -0
  195. package/packages/dsh-plugin/dsh/client.js +1244 -0
  196. package/packages/dsh-plugin/dsh/index.js +2290 -0
  197. package/packages/dsh-plugin/dsh/native-tools.mjs +743 -0
  198. package/packages/dsh-plugin/package.json +38 -0
  199. package/packages/dsh-plugin/test/client.test.js +232 -0
  200. package/packages/dsh-plugin/test/config.test.js +30 -0
  201. package/packages/dsh-plugin/test/index.test.js +1338 -0
  202. package/references/query-templates.md +96 -0
  203. package/references/query-templates.yaml +118 -0
  204. package/scripts/ab_eval.py +219 -0
  205. package/scripts/ab_eval_p0p1.py +266 -0
  206. package/scripts/adaptive.py +271 -70
  207. package/scripts/answer.py +154 -0
  208. package/scripts/archive_run.py +591 -0
  209. package/scripts/argo_engine_registry.py +172 -0
  210. package/scripts/argo_paths.py +728 -0
  211. package/scripts/article.py +136 -0
  212. package/scripts/arxiv_source.py +201 -0
  213. package/scripts/badcase_ledger.py +252 -0
  214. package/scripts/batch_probe.py +241 -0
  215. package/scripts/benchmark.py +19 -0
  216. package/scripts/bounded_run.py +144 -0
  217. package/scripts/browser_auth.py +323 -0
  218. package/scripts/burstiness_detector.py +147 -0
  219. package/scripts/cache.py +1078 -67
  220. package/scripts/cache_guard.py +271 -0
  221. package/scripts/cache_key_vdom.py +56 -0
  222. package/scripts/cache_similarity.py +170 -0
  223. package/scripts/caliber_isolation.py +195 -0
  224. package/scripts/calibrate_lowquality.py +210 -0
  225. package/scripts/candidate_envelope.py +366 -0
  226. package/scripts/chrome_cdp.py +871 -0
  227. package/scripts/circuit_breaker.py +389 -0
  228. package/scripts/citations.py +334 -0
  229. package/scripts/cite_cli.py +59 -0
  230. package/scripts/cjk_tokens.py +95 -0
  231. package/scripts/clarify.py +47 -24
  232. package/scripts/cli_io.py +240 -0
  233. package/scripts/config.py +683 -45
  234. package/scripts/config_cache.py +402 -0
  235. package/scripts/conn_pool.py +220 -0
  236. package/scripts/content_security.py +685 -0
  237. package/scripts/content_signals.py +730 -0
  238. package/scripts/crawl.py +74 -35
  239. package/scripts/daemon.py +866 -0
  240. package/scripts/digup_bridge.py +214 -0
  241. package/scripts/engine_admission.py +366 -0
  242. package/scripts/engine_dispatch.py +1019 -0
  243. package/scripts/engine_env.py +534 -0
  244. package/scripts/engine_failure.py +411 -0
  245. package/scripts/engine_families.py +732 -0
  246. package/scripts/engine_policy.py +218 -0
  247. package/scripts/engine_requires.py +190 -0
  248. package/scripts/engine_status.py +322 -0
  249. package/scripts/engine_validate.py +638 -0
  250. package/scripts/engines.py +778 -294
  251. package/scripts/engines_base.py +1521 -0
  252. package/scripts/engines_builders.py +298 -0
  253. package/scripts/engines_builders_batch10.py +159 -0
  254. package/scripts/engines_builders_batch11.py +174 -0
  255. package/scripts/engines_builders_batch12.py +103 -0
  256. package/scripts/engines_builders_batch13.py +340 -0
  257. package/scripts/engines_builders_batch9.py +1468 -0
  258. package/scripts/engines_builders_cn.py +2283 -0
  259. package/scripts/engines_builders_data.py +2923 -0
  260. package/scripts/engines_builders_data_macro.py +775 -0
  261. package/scripts/engines_builders_feeds.py +255 -0
  262. package/scripts/engines_builders_intl.py +1239 -0
  263. package/scripts/engines_builders_search.py +440 -0
  264. package/scripts/engines_builders_tech.py +1360 -0
  265. package/scripts/evidence.py +588 -162
  266. package/scripts/evidence_loop.py +592 -0
  267. package/scripts/evidence_tier.py +298 -0
  268. package/scripts/except_sets.py +25 -0
  269. package/scripts/extract.py +55 -16
  270. package/scripts/fact_align.py +207 -0
  271. package/scripts/fact_crosscheck.py +230 -0
  272. package/scripts/fetch.py +25 -12
  273. package/scripts/fetch_browser.py +87 -0
  274. package/scripts/fetch_jsrun.py +122 -0
  275. package/scripts/fetch_quality.py +225 -0
  276. package/scripts/fetch_render_tinyfish.py +117 -0
  277. package/scripts/fetch_v3.py +1779 -0
  278. package/scripts/focus_extract.py +350 -0
  279. package/scripts/fulltext_store.py +169 -0
  280. package/scripts/fxtwitter_api.py +325 -0
  281. package/scripts/gen_engine_catalog.py +364 -0
  282. package/scripts/gen_native_tools.py +91 -0
  283. package/scripts/gen_routing_snapshot.py +184 -0
  284. package/scripts/health_check.py +140 -402
  285. package/scripts/health_probe.py +23 -8
  286. package/scripts/hot_state.py +134 -0
  287. package/scripts/http_client.py +1053 -0
  288. package/scripts/image_ops.py +430 -0
  289. package/scripts/image_vision/vision_probe +0 -0
  290. package/scripts/image_vision/vision_probe.swift +126 -0
  291. package/scripts/install.ps1 +148 -0
  292. package/scripts/install.sh +206 -0
  293. package/scripts/job.py +1186 -0
  294. package/scripts/jump_resolver.py +235 -0
  295. package/scripts/lang_capability.py +150 -0
  296. package/scripts/lang_detect.py +289 -0
  297. package/scripts/lang_matrix_probe.py +329 -0
  298. package/scripts/lang_pref.py +311 -0
  299. package/scripts/link_source.py +340 -0
  300. package/scripts/local_engines.py +321 -0
  301. package/scripts/local_image.py +970 -0
  302. package/scripts/local_seek.py +366 -0
  303. package/scripts/macro_countries.py +82 -0
  304. package/scripts/matrix_search_eval.py +1105 -0
  305. package/scripts/mcp_diag.py +8 -3
  306. package/scripts/mcp_handlers.py +1074 -0
  307. package/scripts/mcp_handlers_surface.py +157 -0
  308. package/scripts/mcp_launch.sh +122 -0
  309. package/scripts/mcp_server.py +118 -417
  310. package/scripts/mcp_setup.py +407 -0
  311. package/scripts/mcp_tools.py +330 -0
  312. package/scripts/mcp_transport.py +191 -0
  313. package/scripts/min_version_scan.py +335 -0
  314. package/scripts/net_proxy.py +258 -0
  315. package/scripts/network_aware.py +152 -0
  316. package/scripts/paper.py +274 -0
  317. package/scripts/pdf_extract.py +518 -0
  318. package/scripts/phrase_filter.py +66 -0
  319. package/scripts/plan.py +422 -0
  320. package/scripts/postprocess_signals.py +150 -0
  321. package/scripts/pre-commit +48 -0
  322. package/scripts/query_enhance.py +157 -0
  323. package/scripts/query_operators.py +196 -0
  324. package/scripts/query_rewriter.py +116 -7
  325. package/scripts/query_signals.py +300 -0
  326. package/scripts/query_templates.py +167 -0
  327. package/scripts/query_understanding.py +411 -0
  328. package/scripts/query_variants.py +298 -0
  329. package/scripts/quota.py +488 -76
  330. package/scripts/rank_signals.py +775 -0
  331. package/scripts/ranking_eval.py +319 -0
  332. package/scripts/readability_extract.py +433 -0
  333. package/scripts/recompute.py +415 -0
  334. package/scripts/recovery.py +616 -0
  335. package/scripts/recovery_l0.py +160 -0
  336. package/scripts/redskill/redskill_engine.py +332 -0
  337. package/scripts/regression_p0p1.py +318 -0
  338. package/scripts/replay_eval.py +640 -0
  339. package/scripts/rerank_tfidf.py +225 -0
  340. package/scripts/research.py +591 -403
  341. package/scripts/research_cli.py +361 -0
  342. package/scripts/research_dossier.py +492 -0
  343. package/scripts/research_expand.py +146 -0
  344. package/scripts/research_gates.py +272 -0
  345. package/scripts/research_report.py +209 -0
  346. package/scripts/research_strategy.py +37 -0
  347. package/scripts/research_work_packages.py +195 -0
  348. package/scripts/result_lang.py +311 -0
  349. package/scripts/robots_guard.py +259 -0
  350. package/scripts/route.py +921 -254
  351. package/scripts/route_bangs.py +40 -0
  352. package/scripts/route_cache.py +225 -0
  353. package/scripts/route_combo.py +910 -0
  354. package/scripts/route_domains.py +328 -0
  355. package/scripts/route_lang.py +605 -0
  356. package/scripts/route_log.py +63 -0
  357. package/scripts/route_policy.py +250 -0
  358. package/scripts/rrf_classic.py +66 -0
  359. package/scripts/screenshot.py +73 -0
  360. package/scripts/search.py +897 -405
  361. package/scripts/search_attribution.py +88 -0
  362. package/scripts/search_benchmark.py +407 -0
  363. package/scripts/search_cli.py +627 -0
  364. package/scripts/search_entry.py +389 -0
  365. package/scripts/search_output.py +606 -0
  366. package/scripts/search_pipeline.py +1077 -0
  367. package/scripts/search_rank.py +991 -0
  368. package/scripts/search_types.py +27 -12
  369. package/scripts/seek_locator.py +68 -0
  370. package/scripts/semantic_evidence.py +215 -0
  371. package/scripts/serp_guard.py +228 -0
  372. package/scripts/serp_kill_log.py +51 -0
  373. package/scripts/single_flight.py +120 -0
  374. package/scripts/social_engines/__init__.py +10 -0
  375. package/scripts/social_engines/bilibili_engine.py +131 -0
  376. package/scripts/social_engines/hackernews_engine.py +113 -0
  377. package/scripts/social_engines/reddit_engine.py +172 -0
  378. package/scripts/social_engines/twitter_engine.py +397 -0
  379. package/scripts/social_engines/v2ex_engine.py +101 -0
  380. package/scripts/social_engines/weibo_engine.py +128 -0
  381. package/scripts/social_engines/xiaohongshu_engine.py +137 -0
  382. package/scripts/social_engines/zhihu_engine.py +139 -0
  383. package/scripts/social_research.py +201 -0
  384. package/scripts/sogou_weixin_browser.py +318 -0
  385. package/scripts/source_ledger.py +249 -0
  386. package/scripts/stage_timing.py +58 -0
  387. package/scripts/stats_cli.py +95 -0
  388. package/scripts/straggler_policy.py +60 -0
  389. package/scripts/stylometry_detector.py +231 -0
  390. package/scripts/sync_backends.py +353 -0
  391. package/scripts/sync_installs.py +29 -0
  392. package/scripts/template_cli.py +127 -0
  393. package/scripts/text_lexicon.py +72 -0
  394. package/scripts/tfidf_router.py +109 -37
  395. package/scripts/time_utils.py +233 -0
  396. package/scripts/topic_research_profiles.py +643 -0
  397. package/scripts/train.py +737 -0
  398. package/scripts/tweet.py +596 -0
  399. package/scripts/url_canon.py +217 -0
  400. package/scripts/url_optimize.py +56 -0
  401. package/scripts/url_safety.py +236 -0
  402. package/scripts/usage_log.py +116 -0
  403. package/scripts/usage_log_clean.py +113 -0
  404. package/scripts/v2ex_nodes.py +311 -0
  405. package/scripts/variant_recall.py +188 -0
  406. package/scripts/watch.py +205 -0
  407. package/scripts/wechat_article.py +258 -0
  408. package/scripts/wide_research.py +402 -0
  409. package/scripts/wx.py +349 -0
  410. package/scripts/x_article_fetch.py +141 -0
  411. package/scripts/x_search.py +234 -0
  412. package/scripts/x_trending.py +189 -0
  413. package/scripts/yaml_load.py +67 -0
  414. package/sub-skills/ego-search/SKILL.md +253 -0
  415. package/sub-skills/ego-search/references/browser-runtime.md +43 -0
  416. package/sub-skills/ego-search/references/install.md +67 -0
  417. package/sub-skills/ego-search/references/original-ego-upgrade.md +51 -0
  418. package/sub-skills/ego-search/scripts/ego_search.py +800 -0
  419. package/sub-skills/ego-search/scripts/merge.py +226 -0
  420. package/sub-skills/ego-search/scripts/quality.py +64 -0
  421. package/sub-skills/ego-search/scripts/runtime.py +172 -0
  422. package/sub-skills/ego-search/scripts/safety.py +109 -0
  423. package/sub-skills/ego-search/scripts/serp_spec.py +109 -0
  424. package/sub-skills/ego-search/scripts/webbridge_adapter.py +374 -0
  425. package/sub-skills/ego-search/tests/test_query_normalize.py +68 -0
  426. package/sub-skills/js-run/SKILL.md +67 -0
  427. package/sub-skills/js-run/scripts/jsrun.py +112 -0
  428. package/sub-skills/js-run/scripts/shim.js +188 -0
  429. package/sub-skills/js-run/tests/fixtures/challenge_like.js +27 -0
  430. package/sub-skills/js-run/tests/test_jsrun.py +165 -0
  431. package/sub-skills/local-search/SKILL.md +50 -53
  432. package/sub-skills/local-search/bm25.py +162 -0
  433. package/sub-skills/local-search/config.yaml +152 -55
  434. package/sub-skills/local-search/engine_registry.py +91 -26
  435. package/sub-skills/local-search/{health_check.py → local_health_check.py} +140 -10
  436. package/sub-skills/local-search/local_search_adapter.py +13 -2
  437. package/sub-skills/local-search/parse_maps.yaml +40 -42
  438. package/sub-skills/local-search/search_v3.py +1182 -65
  439. package/sub-skills/local-search/smart_router.py +47 -7
  440. package/sub-skills/local-seek/SKILL.md +110 -0
  441. package/sub-skills/local-seek/config/domains.yaml +20 -0
  442. package/sub-skills/local-seek/references/auto-behaviors.md +24 -0
  443. package/sub-skills/local-seek/references/fd-mdfind-recipes.md +62 -0
  444. package/sub-skills/local-seek/references/git-integration.md +54 -0
  445. package/sub-skills/local-seek/references/remote-handoff.md +46 -0
  446. package/sub-skills/local-seek/references/rg-recipes.md +96 -0
  447. package/sub-skills/local-seek/references/strategies.md +52 -0
  448. package/sub-skills/local-seek/references/structural-search.md +59 -0
  449. package/sub-skills/local-seek/scripts/eval_rank.py +216 -0
  450. package/sub-skills/local-seek/scripts/eval_seek.py +224 -0
  451. package/sub-skills/local-seek/scripts/seek.py +1465 -0
  452. package/sub-skills/local-seek/scripts/seek_frecency.py +126 -0
  453. package/sub-skills/local-seek/scripts/seek_fts.py +430 -0
  454. package/sub-skills/local-seek/scripts/seek_rank.py +193 -0
  455. package/sub-skills/local-seek/tests/test_content_rank.py +222 -0
  456. package/sub-skills/local-seek/tests/test_determinism_20261006.py +145 -0
  457. package/sub-skills/local-seek/tests/test_noise_tier.py +101 -0
  458. package/sub-skills/local-seek/tests/test_pcre2_probe.py +136 -0
  459. package/sub-skills/local-seek/tests/test_rank_pinyin.py +77 -0
  460. package/sub-skills/local-seek/tests/test_regression_20261003.py +169 -0
  461. package/sub-skills/local-seek/tests/test_regression_20261006.py +146 -0
  462. package/sub-skills/local-seek/tests/test_seek_degradation.py +111 -0
  463. package/sub-skills/local-seek/tests/test_seek_fts.py +313 -0
@@ -0,0 +1,21 @@
1
+ # WHO Disease Outbreak News — 世卫官方疫情暴发通报(免认证 OData)
2
+ # 补 medical 域的「官方疫情暴发」维度:现有 medical 只有 clinicaltrials(试验登记)
3
+ # 与 openfda(药品/器械),没有公共卫生事件源。ProMED 无公开 API,此为其官方替代。
4
+ # OData 支持 $top/$orderby/$filter。
5
+ # 验证:
6
+ # python3 scripts/engine_validate.py --engine who_don --stage all --admit --write-doc
7
+
8
+ engine_id: who_don
9
+ type: who_don
10
+ enabled: true
11
+ cost_tier: free
12
+ timeout: 20
13
+ canary_query: "cholera"
14
+ desc: "WHO 疫情暴发通报(世卫官方公共卫生事件,免认证 OData)"
15
+ coverage: [medical, health, news, official]
16
+ recommended: false
17
+ latency_ms: 2500
18
+
19
+ quality_queries:
20
+ - query: "cholera"
21
+ - query: "influenza"
@@ -0,0 +1,20 @@
1
+ # WHO GHO 全球卫生指标(官方 OData,免认证)
2
+ # 补 medical 域的「全球公共卫生统计」维度:现有 medical 只有临床登记/药品/文献,
3
+ # 没有国别卫生统计。指标目录本地过滤(OData contains 引号转义不可靠)。
4
+ # 验证:
5
+ # python3 scripts/engine_validate.py --engine who_gho --stage all --admit --write-doc
6
+
7
+ engine_id: who_gho
8
+ type: who_gho
9
+ enabled: true
10
+ cost_tier: free
11
+ timeout: 15
12
+ canary_query: "malaria"
13
+ desc: "WHO GHO 全球卫生指标(世卫官方统计目录,免认证)"
14
+ coverage: [medical, health, statistics, official]
15
+ recommended: false
16
+ latency_ms: 2500
17
+
18
+ quality_queries:
19
+ - query: "malaria"
20
+ - query: "tobacco"
@@ -0,0 +1,34 @@
1
+ # Wikimedia Commons — 通用图库(免 key,CC 素材,字段齐全)
2
+ #
3
+ # 为什么收这个源:argo 的图片能力此前只有 openverse 一个通用图库,而 Openverse
4
+ # 自身的统计显示其图库主体就来自 Wikimedia(88M 图里 Commons 占最大份额)——
5
+ # 直连 Commons 等于绕过中间层拿上游,且字段更全(extmetadata 带许可全称、
6
+ # 作者、描述原文,imageinfo 带原图直链与宽高)。中文查询覆盖也优于 Openverse
7
+ # (Commons 有大量中文题注的素材)。
8
+ #
9
+ # 与既有图源的分工:
10
+ # - wikimedia_commons:通用图库,CC 授权明确,**首选素材源**
11
+ # - openverse:同为 CC 图库,含 Flickr 等来源,与 Commons 互补不重复
12
+ # - ddgs_images:全网图片(无许可标注),覆盖优先
13
+ # - met/artic/cleveland/nasa_images:垂直馆藏(艺术/航天)
14
+ #
15
+ # 解析说明:query.pages 是以 pageid 为键的字典,声明式 output_map 处理不了
16
+ # (_extract_items 会把 dict 包成单条且字段全空),故用 builder 展开。
17
+ # 验证:
18
+ # python3 scripts/engine_validate.py --engine wikimedia_commons --stage all --admit
19
+
20
+ engine_id: wikimedia_commons
21
+ type: wikimedia_commons
22
+ enabled: true
23
+ cost_tier: free
24
+ label: Wikimedia图库
25
+ desc: "Wikimedia Commons 通用图库(免 key,CC 素材,原图直链+许可+宽高)"
26
+ coverage: [image, media, cc, reference]
27
+ family: misc_vertical
28
+ priority: 30
29
+ timeout: 20
30
+ canary_query: "snow mountain"
31
+ quality_queries:
32
+ - query: "snow mountain"
33
+ - query: "ukiyo-e"
34
+ - query: "cat"
@@ -0,0 +1,22 @@
1
+ # 维基文库 — 古文/公版文献全文(MediaWiki API,免认证)
2
+ # 古文引文溯源补位:中文引文核验需要原文全文(出师表/论语/史记),
3
+ # wikipedia 词条给不了。与 zh_wikipedia 同构;标题含空格需编码后拼
4
+ # wiki 路径,builder 内处理(声明式 url_template 不做编码)。
5
+ # 验证:
6
+ # python3 scripts/engine_validate.py --engine wikisource --stage all --admit --write-doc
7
+
8
+ engine_id: wikisource
9
+ type: wikisource
10
+ enabled: true
11
+ cost_tier: free
12
+ timeout: 10
13
+ canary_query: "出师表"
14
+ desc: "维基文库(古文/公版文献全文检索,中文引文溯源,免认证)"
15
+ coverage: [reference, chinese, classic]
16
+ recommended: false
17
+ latency_ms: 800
18
+
19
+ quality_queries:
20
+ - query: "出师表"
21
+ - query: "论语"
22
+ - query: "史记"
@@ -0,0 +1,19 @@
1
+ # WoRMS 世界海洋物种名录(分类学权威,免认证)
2
+ # 与 OBIS 互补:OBIS 给观测记录,WoRMS 给分类学「正确学名/接受名」判定。
3
+ # 验证:
4
+ # python3 scripts/engine_validate.py --engine worms --stage all --admit --write-doc
5
+
6
+ engine_id: worms
7
+ type: worms
8
+ enabled: true
9
+ cost_tier: free
10
+ timeout: 15
11
+ canary_query: "Gadus morhua"
12
+ desc: "WoRMS 海洋物种权威命名(分类学标准,免认证)"
13
+ coverage: [species, marine, science, reference]
14
+ recommended: false
15
+ latency_ms: 2000
16
+
17
+ quality_queries:
18
+ - query: "Gadus morhua"
19
+ - query: "Octopus vulgaris"
@@ -0,0 +1,34 @@
1
+ # X (Twitter) Trending 热榜(ego-browser,免 Key,独家源)
2
+ # 定位:X 全球趋势榜是别处拿不到的独家热点源(科技/娱乐/全球趋势分类带排名)。
3
+ # 借 ego-browser 驱动用户默认浏览器抓取 x.com/explore/tabs/trending 渲染结果,
4
+ # 复用浏览器 profile 的 cookie 与指纹,避开匿名请求的 X 风控。
5
+ # 与 sogou_weixin_browser 同族但**零状态文件**:不持久化 task space、不加锁,
6
+ # 每次调用自建空间抓完即走(X 的登录态在 profile 层,冷空间实测同样可取数)。
7
+ # 路由:explicit_only —— 本引擎会在用户浏览器开标签页,不进自动路由,
8
+ # 只等显式调用(需要时 --engine x_trending)。
9
+ # 验证:
10
+ # python3 scripts/engine_validate.py --engine x_trending --stage all --admit
11
+ # python3 scripts/search.py "热榜" --engine x_trending --json
12
+
13
+ engine_id: x_trending
14
+ type: cli
15
+ enabled: true
16
+ cost_tier: free
17
+ explicit_only: true
18
+ cmd:
19
+ - python3
20
+ - scripts/x_trending.py
21
+ search_args:
22
+ - '{query}'
23
+ - --n
24
+ - '{n}'
25
+ output_format: yaml
26
+ timeout: 60
27
+ canary_query: "热榜"
28
+ desc: "X (Twitter) Trending 全球热榜(ego-browser 浏览器通道,带分类与排名;显式调用)"
29
+ coverage: [general, social, trending]
30
+ recommended: false
31
+ family: hot_trending
32
+ # 热榜是「固定榜单」而非「与查询词面匹配的文档集」:canary 与结果无词面交集,
33
+ # 相关性门不适用(同 weather 的数据型源口径)。
34
+ relevance_check: false
@@ -0,0 +1,43 @@
1
+ # 韩联社 RSS — 韩国国家通讯社(연합뉴스),韩半岛一手新闻
2
+ #
3
+ # 补的盲区:**ko 本地一手新闻**。接入前 argo 的新闻链路只有中英源
4
+ # (google_news/guardian_rss/dw_news/france24 都是英语视角),ko 查询
5
+ # 拿不到本地一手报道。
6
+ #
7
+ # 实测(2026-09-21):**120 条**,摘要中位 83 字、最长 93 字。
8
+ #
9
+ # 形态:feed_mode=hot(实时流语义,同 guardian_rss)。归 world_news 族——
10
+ # 与 hot_trending(热榜)分族,避免同族 max_per_family=2 把本地源互相挤掉。
11
+ # 语言由 langs 声明,路由按查询语言选源(见 route._lang_aware_combo_order)。
12
+ #
13
+ # 验证:
14
+ # python3 scripts/engine_validate.py --engine yna --stage all --admit
15
+ # python3 scripts/search.py "오늘 뉴스" --engine yna --json
16
+
17
+ engine_id: yna
18
+ type: rss_feed
19
+ enabled: true
20
+ cost_tier: free
21
+ label: 韩联社 RSS
22
+ family: world_news
23
+ feed_mode: hot
24
+ relevance_check: false
25
+ priority: 40
26
+ qps: 1
27
+ period: second
28
+ cost_per_call: 0.0
29
+ cost_unit: free
30
+ timeout: 12
31
+ feed_url: https://www.yna.co.kr/rss/news.xml
32
+ langs:
33
+ - ko
34
+ canary_query: "오늘 뉴스"
35
+ coverage:
36
+ - news
37
+ - korea
38
+ desc: "韩联社(韩国国家通讯社(연합뉴스),韩半岛一手新闻,免 key)"
39
+ recommended: false
40
+
41
+ quality_queries:
42
+ - query: "오늘 뉴스"
43
+ - query: "한국 정치"
@@ -0,0 +1,43 @@
1
+ # Ynet 新闻 RSS — 以色列最大新闻站,希伯来语一手源
2
+ #
3
+ # 补的盲区:**he 本地一手新闻**。接入前 argo 的新闻链路只有中英源
4
+ # (google_news/guardian_rss/dw_news/france24 都是英语视角),he 查询
5
+ # 拿不到本地一手报道。
6
+ #
7
+ # 实测(2026-09-21):**30 条**,摘要中位 267 字、最长 429 字。
8
+ #
9
+ # 形态:feed_mode=hot(实时流语义,同 guardian_rss)。归 world_news 族——
10
+ # 与 hot_trending(热榜)分族,避免同族 max_per_family=2 把本地源互相挤掉。
11
+ # 语言由 langs 声明,路由按查询语言选源(见 route._lang_aware_combo_order)。
12
+ #
13
+ # 验证:
14
+ # python3 scripts/engine_validate.py --engine ynet --stage all --admit
15
+ # python3 scripts/search.py "חדשות היום" --engine ynet --json
16
+
17
+ engine_id: ynet
18
+ type: rss_feed
19
+ enabled: true
20
+ cost_tier: free
21
+ label: Ynet 新闻 RSS
22
+ family: world_news
23
+ feed_mode: hot
24
+ relevance_check: false
25
+ priority: 52
26
+ qps: 1
27
+ period: second
28
+ cost_per_call: 0.0
29
+ cost_unit: free
30
+ timeout: 12
31
+ feed_url: https://www.ynet.co.il/Integration/StoryRss2.xml
32
+ langs:
33
+ - he
34
+ canary_query: "חדשות היום"
35
+ coverage:
36
+ - news
37
+ - israel
38
+ desc: "Ynet 新闻(以色列最大新闻站,希伯来语一手源,免 key)"
39
+ recommended: false
40
+
41
+ quality_queries:
42
+ - query: "חדשות היום"
43
+ - query: "פוליטיקה ישראל"
@@ -0,0 +1,40 @@
1
+ # zbMATH Open — 数学文献权威索引(免 key,EMS/FIZ Karlsruhe)
2
+ #
3
+ # 补的盲区:**数学**。argo 的学术域覆盖 CS/生物医学/综合,但没有数学专门源——
4
+ # arXiv 的 math.* 分类只是预印本,不含期刊评审后的索引与 MSC 分类号。
5
+ #
6
+ # 实测(2026-09-21):JSON 直出,免 key;「algebra」返回结构化条目,含
7
+ # title / contributors.authors / year / msc(数学分类)/ zbmath_url。
8
+ #
9
+ # 形态:检索式。summary 取 source.series.0.title(期刊/丛书名),取不到时留空
10
+ # ——zbMATH 不提供摘要字段,宁缺勿假。
11
+ #
12
+ # 验证:
13
+ # python3 scripts/engine_validate.py --engine zbmath --stage all --admit
14
+
15
+ engine_id: zbmath
16
+ type: http
17
+ enabled: true
18
+ cost_tier: free
19
+ method: GET
20
+ url: https://api.zbmath.org/v1/document/_search
21
+ timeout: 20
22
+ query_param: search_string
23
+ canary_query: "algebra"
24
+ family: academic
25
+ coverage: [academic, math, paper]
26
+ desc: "zbMATH Open 数学文献索引(含 MSC 分类号,免 key)"
27
+ recommended: false
28
+ explicit_only: true
29
+ extra_params:
30
+ results_per_page: "{n}"
31
+ output_map:
32
+ items: result
33
+ item_title: title.title
34
+ item_url: zbmath_url
35
+ item_summary: source.series.0.title
36
+ item_published_at: year
37
+
38
+ quality_queries:
39
+ - query: "algebra"
40
+ - query: "topology"
@@ -0,0 +1,22 @@
1
+ # 汉典 — 中文字词典(HTML 解析,免认证)
2
+ # dictionary_search 域的中文补位:该域此前只有英文 dictionaryapi.dev,
3
+ # 缺字义/音韵/字源。词条页为 /hans/{词} 直达,取「详细解释」前几条释义
4
+ # 拼摘要;查无此字返回 404 → 诚实空。
5
+ # 验证:
6
+ # python3 scripts/engine_validate.py --engine zdic --stage all --admit --write-doc
7
+
8
+ engine_id: zdic
9
+ type: zdic
10
+ enabled: true
11
+ cost_tier: free
12
+ timeout: 12
13
+ canary_query: "道"
14
+ desc: "汉典(中文字词典:字义/音韵/字源,HTML 解析,免认证)"
15
+ coverage: [dictionary, chinese, reference]
16
+ recommended: false
17
+ latency_ms: 1500
18
+
19
+ quality_queries:
20
+ - query: "道"
21
+ - query: "仁"
22
+ - query: "信"
@@ -0,0 +1,27 @@
1
+ # Zenodo 科研数据集搜索(免 Key)
2
+ # 文档: https://developers.zenodo.org/
3
+ # 验证:
4
+ # python3 scripts/engine_validate.py --engine zenodo --stage all --admit
5
+ # python3 scripts/search.py "climate" --engine zenodo --json
6
+
7
+ engine_id: zenodo
8
+ type: http
9
+ enabled: true
10
+ cost_tier: free
11
+ method: GET
12
+ url: https://zenodo.org/api/records
13
+ timeout: 15
14
+ query_param: q
15
+ canary_query: "climate change"
16
+ desc: "Zenodo 科研数据集搜索(CERN 托管,免认证,DOI 可引用)"
17
+ coverage: [dataset, academic, opendata, paper]
18
+ recommended: false
19
+
20
+ extra_params:
21
+ size: "{n}"
22
+
23
+ output_map:
24
+ items: hits.hits
25
+ item_title: metadata.title
26
+ item_url: links.self_html
27
+ item_summary: metadata.description
@@ -0,0 +1,35 @@
1
+ # 知乎热榜匿名通道 — App 端 JSON(免密钥)
2
+ # 与 zhihu_hot(开放平台 hot_list,100/天配额)同一热榜的免密钥通道:
3
+ # 命中后可把开放平台配额留给 zhihu 内容搜索。非公开承诺接口,失败诚实空。
4
+ # 查询与热榜内容无关(热榜是榜单型源,与 baidu_hot/toutiao_hot 同型)。
5
+ # 验证:
6
+ # python3 scripts/engine_validate.py --engine zhihu_hot_app --stage all --admit --write-doc
7
+
8
+ engine_id: zhihu_hot_app
9
+ type: http
10
+ enabled: true
11
+ cost_tier: free
12
+ method: GET
13
+ url: https://api.zhihu.com/topstory/hot-list
14
+ timeout: 10
15
+ query_param: ""
16
+ canary_query: "热榜"
17
+ desc: "知乎热榜匿名通道(App JSON,免密钥;开放平台 hot_list 的免费替代)"
18
+ coverage: [chinese, hot, trending, realtime]
19
+ recommended: false
20
+ latency_ms: 800
21
+
22
+ headers:
23
+ User-Agent: argo-search/1.0 (+zhihu_hot_app)
24
+
25
+ extra_params:
26
+ limit: "{n}"
27
+
28
+ output_map:
29
+ items: data
30
+ item_title: target.title
31
+ item_summary: detail_text
32
+ url_template: "https://www.zhihu.com/question/{target.id}"
33
+
34
+ quality_queries:
35
+ - query: "热榜"
@@ -0,0 +1,74 @@
1
+ # mcp/clients.yaml — 多客户端 MCP 注入的声明式真源(自研,零第三方依赖)
2
+ #
3
+ # 设计:加/改客户端只需编辑本文件(对齐 config.yaml / engines/specs/*.yaml 的
4
+ # "配置真源"哲学),无需改代码。mcp_setup.py 读取本文件做 探测/注入/诊断/还原。
5
+ #
6
+ # 字段说明:
7
+ # id 客户端标识(CLI --client 用)
8
+ # name 展示名
9
+ # config_path 配置文件路径(相对 home;用 {home} 占位可指绝对路径)
10
+ # servers_key MCP 服务器所在顶层键(mcpServers / servers / mcp_servers / mcp)
11
+ # format json | toml(toml 走"行级 append section",注释零破坏)
12
+ # detect 探测目录/文件(相对 home,逗号分隔;存在即"已安装")。
13
+ # 只写宿主自身的目录/文件——写别家客户端的配置文件路径会把
14
+ # 别家已配置误判成本家已安装(cline 曾挂 .cursor/mcp.json)
15
+ #
16
+ # 注入形态:当前全部为 stdio(command=mcp_launch.sh),由 mcp_setup._mcp_command
17
+ # 统一生成;HTTP/远程形态是未来能力,尚未实现——字段表里不设占位。
18
+ #
19
+ # 运行:
20
+ # python3 scripts/mcp_setup.py status # 诊断各客户端
21
+ # python3 scripts/mcp_setup.py inject --all # 注入所有已安装客户端
22
+ # python3 scripts/mcp_setup.py inject --cursor # 注入指定客户端
23
+ # python3 scripts/mcp_setup.py undo --all # 还原所有(含备份历史)
24
+ # python3 scripts/mcp_setup.py inject --all --dry-run
25
+
26
+ clients:
27
+ - id: claude-code
28
+ name: Claude Code
29
+ config_path: .claude.json
30
+ servers_key: mcpServers
31
+ format: json
32
+ detect: [.claude]
33
+
34
+ - id: cursor
35
+ name: Cursor
36
+ config_path: .cursor/mcp.json
37
+ servers_key: mcpServers
38
+ format: json
39
+ detect: [.cursor/mcp.json, .cursor]
40
+
41
+ - id: windsurf
42
+ name: Windsurf
43
+ config_path: .codeium/windsurf/mcp_config.json
44
+ servers_key: mcpServers
45
+ format: json
46
+ detect: [.codeium]
47
+
48
+ - id: codex
49
+ name: Codex
50
+ config_path: .codex/config.toml
51
+ servers_key: mcp_servers
52
+ format: toml
53
+ detect: [.codex]
54
+
55
+ - id: opencode
56
+ name: OpenCode
57
+ config_path: .config/opencode/opencode.json
58
+ servers_key: mcp
59
+ format: json
60
+ detect: [.config/opencode]
61
+
62
+ - id: cline
63
+ name: Cline
64
+ config_path: .cline/mcp_settings.json
65
+ servers_key: mcpServers
66
+ format: json
67
+ detect: [.cline]
68
+
69
+ - id: workbuddy
70
+ name: WorkBuddy
71
+ config_path: .workbuddy/mcp.json
72
+ servers_key: mcpServers
73
+ format: json
74
+ detect: [.workbuddy]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "argo-search",
3
- "version": "1.0.1",
4
- "description": "Argo — 47-engine unified search MCP server with TF-IDF routing, RRF fusion, and Bocha reranker. 6 tools: search, research, evidence, clarify, crawl, extract.",
3
+ "version": "2.9.7",
4
+ "description": "Argo 阿尔戈 — 统一搜索与证据核验。推荐 npx -y github:taxueseek/argo 或 install.sh 安装(不依赖 npm 发版)。多语言路由、264 个源(227 个免密钥开箱可用)、影视/体育/金融等垂直源、19 个 MCP 工具(与 CLI 能力面对齐)。",
5
5
  "keywords": [
6
6
  "mcp",
7
7
  "mcp-server",
@@ -13,31 +13,70 @@
13
13
  "grok",
14
14
  "kimi",
15
15
  "codex",
16
- "argo"
16
+ "argo",
17
+ "npx"
17
18
  ],
18
- "license": "MIT",
19
+ "license": "Apache-2.0",
19
20
  "author": "Argo Search",
20
21
  "repository": {
21
22
  "type": "git",
22
- "url": "https://github.com/taxueseek/argo"
23
+ "url": "git+https://github.com/taxueseek/argo.git"
23
24
  },
24
25
  "bin": {
25
- "argo-search": "./bin/argo.js"
26
+ "argo-search": "bin/argo.js"
26
27
  },
27
28
  "files": [
28
29
  "bin/",
29
30
  "scripts/",
30
31
  "config.yaml",
32
+ "engines/",
31
33
  "backends/",
32
- "sub-skills/"
34
+ "data/",
35
+ "sub-skills/",
36
+ "assets/",
37
+ "docs/ADDING_NEW_ENGINE.md",
38
+ "docs/ARGO_INTRO.md",
39
+ "docs/DATA_SOURCE_GAPS.md",
40
+ "docs/DESIGN_LOCAL_DATA_FUSION.md",
41
+ "docs/ENGINE_CATALOG.md",
42
+ "docs/MCP_SETUP.md",
43
+ "docs/PLATFORM_PATHS.md",
44
+ "docs/SEARCH_ARCHIVE.md",
45
+ "docs/为什么选择argo.md",
46
+ "docs/RELEASE_NOTES_v2.8.0.md",
47
+ "docs/RELEASE_NOTES_v2.8.2.md",
48
+ "docs/RELEASE_NOTES_v2.8.3.md",
49
+ "docs/RELEASE_NOTES_v2.8.4.md",
50
+ "docs/RELEASE_NOTES_v2.8.5.md",
51
+ "docs/RELEASE_NOTES_v2.8.6.md",
52
+ "docs/RELEASE_NOTES_v2.8.7.md",
53
+ "docs/RELEASE_NOTES_v2.8.8.md",
54
+ "docs/RELEASE_NOTES_v2.8.9.md",
55
+ "docs/RELEASE_NOTES_v2.9.0.md",
56
+ "docs/assets/",
57
+ "docs/engines/",
58
+ "cordis.patch.yml",
59
+ "mcp/clients.yaml",
60
+ "packages/dsh-plugin/",
61
+ "README.md",
62
+ "SKILL.md",
63
+ "references/query-templates.yaml",
64
+ "references/query-templates.md",
65
+ "LICENSE",
66
+ "!**/__pycache__/**",
67
+ "!**/*.pyc",
68
+ "!sub-skills/**/__pycache__/**",
69
+ "!sub-skills/**/*.pyc",
70
+ "!data/jobs"
33
71
  ],
72
+ "dsh": {
73
+ "bundle": {
74
+ "patch": "cordis.patch.yml"
75
+ }
76
+ },
34
77
  "engines": {
35
78
  "node": ">=18"
36
79
  },
37
- "os": [
38
- "darwin",
39
- "linux"
40
- ],
41
80
  "dependencies": {},
42
81
  "devDependencies": {}
43
- }
82
+ }