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.
- package/LICENSE +201 -21
- package/README.en.md +735 -0
- package/README.es.md +777 -0
- package/README.ja.md +777 -0
- package/README.ko.md +777 -0
- package/README.md +778 -320
- package/SKILL.md +135 -0
- package/assets/readme/hero.svg +121 -0
- package/assets/readme/made-with-beautify.svg +10 -0
- package/assets/readme/proof-routes.svg +73 -0
- package/assets/readme/why-better.svg +104 -0
- package/assets/readme/workflow.svg +83 -0
- package/backends/domain_profiles.json +2356 -96
- package/backends/engine_registry.yaml +3428 -503
- package/backends/query_synonyms_cn.json +35 -0
- package/backends/quota_profiles.json +2488 -160
- package/backends/source_types_cn.json +109 -0
- package/backends/text_lexicon.json +44 -0
- package/bin/argo +772 -0
- package/bin/argo.js +102 -39
- package/config.yaml +5139 -367
- package/cordis.patch.yml +21 -0
- package/data/countries.json +40 -0
- package/data/lang_matrix/lang_capability.json +842 -0
- package/data/lang_matrix/matrix_2026-09-10.json +11921 -0
- package/data/regions_cn.json +1 -0
- package/docs/ADDING_NEW_ENGINE.md +184 -0
- package/docs/ARGO_INTRO.md +124 -0
- package/docs/DATA_SOURCE_GAPS.md +81 -0
- package/docs/DESIGN_LOCAL_DATA_FUSION.md +90 -0
- package/docs/ENGINE_CATALOG.md +575 -0
- package/docs/MCP_SETUP.md +108 -0
- package/docs/PLATFORM_PATHS.md +111 -0
- package/docs/RELEASE_NOTES_v2.8.0.md +71 -0
- package/docs/RELEASE_NOTES_v2.8.2.md +63 -0
- package/docs/RELEASE_NOTES_v2.8.3.md +55 -0
- package/docs/RELEASE_NOTES_v2.8.4.md +79 -0
- package/docs/RELEASE_NOTES_v2.8.5.md +102 -0
- package/docs/RELEASE_NOTES_v2.8.6.md +66 -0
- package/docs/RELEASE_NOTES_v2.8.7.md +65 -0
- package/docs/RELEASE_NOTES_v2.8.8.md +67 -0
- package/docs/RELEASE_NOTES_v2.8.9.md +67 -0
- package/docs/RELEASE_NOTES_v2.9.0.md +64 -0
- package/docs/RELEASE_NOTES_v2.9.8.md +73 -0
- package/docs/SEARCH_ARCHIVE.md +115 -0
- package/docs/assets/architecture.svg +104 -0
- package/docs/assets/hero.svg +98 -0
- package/docs/engines/bangumi.md +27 -0
- package/docs/engines/biorxiv.md +27 -0
- package/docs/engines/clawhub.md +27 -0
- package/docs/engines/crt_sh.md +27 -0
- package/docs/engines/datacite.md +27 -0
- package/docs/engines/deps_dev.md +27 -0
- package/docs/engines/douban_movie.md +27 -0
- package/docs/engines/endoflife.md +27 -0
- package/docs/engines/flk_law.md +27 -0
- package/docs/engines/fxtwitter.md +27 -0
- package/docs/engines/google_news.md +27 -0
- package/docs/engines/gov_regulations.md +27 -0
- package/docs/engines/guqian.md +27 -0
- package/docs/engines/hackernews.md +27 -0
- package/docs/engines/iplant.md +27 -0
- package/docs/engines/keenable.md +27 -0
- package/docs/engines/met_museum.md +27 -0
- package/docs/engines/nasa_images.md +27 -0
- package/docs/engines/netease_music.md +27 -0
- package/docs/engines/npm.md +27 -0
- package/docs/engines/nvd.md +27 -0
- package/docs/engines/openreview.md +27 -0
- package/docs/engines/openstd.md +27 -0
- package/docs/engines/parallel_free.md +27 -0
- package/docs/engines/people_daily.md +27 -0
- package/docs/engines/realtime_index.md +27 -0
- package/docs/engines/sec_edgar.md +27 -0
- package/docs/engines/seltz.md +27 -0
- package/docs/engines/skillsmp.md +27 -0
- package/docs/engines/sspai.md +27 -0
- package/docs/engines/std_samr.md +27 -0
- package/docs/engines/train.md +27 -0
- package/docs/engines/un_comtrade.md +27 -0
- package/docs/engines/wikisource.md +27 -0
- package/docs/engines/zdic.md +27 -0
- package/docs/engines/zenodo.md +27 -0
- package/docs/engines/zhihu_hot_app.md +27 -0
- package/docs//344/270/272/344/273/200/344/271/210/351/200/211/346/213/251argo.md +176 -0
- package/engines/README.md +10 -0
- package/engines/_template_cli.yaml +39 -0
- package/engines/_template_http.yaml +37 -0
- package/engines/plugins/_template_plugin.py +50 -0
- package/engines/specs/_cisa_kev.yaml +54 -0
- package/engines/specs/_osv.yaml +63 -0
- package/engines/specs/aljazeera.yaml +43 -0
- package/engines/specs/antara.yaml +43 -0
- package/engines/specs/artic.yaml +20 -0
- package/engines/specs/aviation_weather.yaml +39 -0
- package/engines/specs/bangumi.yaml +21 -0
- package/engines/specs/biorxiv.yaml +24 -0
- package/engines/specs/carbon_intensity.yaml +32 -0
- package/engines/specs/cfets.yaml +41 -0
- package/engines/specs/cinii.yaml +44 -0
- package/engines/specs/clawhub.yaml +49 -0
- package/engines/specs/cleveland.yaml +19 -0
- package/engines/specs/cn_ai_news.yaml +43 -0
- package/engines/specs/core.yaml +35 -0
- package/engines/specs/crt_sh.yaml +38 -0
- package/engines/specs/ct24.yaml +43 -0
- package/engines/specs/datacite.yaml +27 -0
- package/engines/specs/datagov_uk.yaml +41 -0
- package/engines/specs/ddgs_images.yaml +45 -0
- package/engines/specs/deepseek_search.yaml +74 -0
- package/engines/specs/deezer.yaml +20 -0
- package/engines/specs/defillama.yaml +38 -0
- package/engines/specs/deps_dev.yaml +21 -0
- package/engines/specs/digup.yaml +36 -0
- package/engines/specs/doi.yaml +39 -0
- package/engines/specs/douban_movie.yaml +22 -0
- package/engines/specs/dw_news.yaml +47 -0
- package/engines/specs/egov_law.yaml +21 -0
- package/engines/specs/elpais.yaml +43 -0
- package/engines/specs/endoflife.yaml +21 -0
- package/engines/specs/energy_charts.yaml +21 -0
- package/engines/specs/factcheck_org.yaml +52 -0
- package/engines/specs/faz.yaml +43 -0
- package/engines/specs/federal_register.yaml +57 -0
- package/engines/specs/firecrawl.yaml +53 -0
- package/engines/specs/flk_law.yaml +24 -0
- package/engines/specs/folha.yaml +43 -0
- package/engines/specs/france24.yaml +44 -0
- package/engines/specs/full_fact.yaml +47 -0
- package/engines/specs/fxtwitter.yaml +36 -0
- package/engines/specs/gbfs_nyc.yaml +32 -0
- package/engines/specs/gdacs.yaml +21 -0
- package/engines/specs/gdelt.yaml +64 -0
- package/engines/specs/gleif.yaml +55 -0
- package/engines/specs/google_news.yaml +22 -0
- package/engines/specs/gov_regulations.yaml +38 -0
- package/engines/specs/guardian_rss.yaml +59 -0
- package/engines/specs/hkex.yaml +40 -0
- package/engines/specs/hurriyet.yaml +43 -0
- package/engines/specs/iplant.yaml +25 -0
- package/engines/specs/jikan.yaml +24 -0
- package/engines/specs/jolpica.yaml +20 -0
- package/engines/specs/k10plus.yaml +20 -0
- package/engines/specs/keenable.yaml +44 -0
- package/engines/specs/keenable_free.yaml +36 -0
- package/engines/specs/lefigaro.yaml +43 -0
- package/engines/specs/listenbrainz.yaml +19 -0
- package/engines/specs/matichon.yaml +43 -0
- package/engines/specs/met_museum.yaml +21 -0
- package/engines/specs/nasa_images.yaml +45 -0
- package/engines/specs/netease_music.yaml +38 -0
- package/engines/specs/nhk.yaml +43 -0
- package/engines/specs/nhtsa_vpic.yaml +20 -0
- package/engines/specs/noaa_swpc.yaml +20 -0
- package/engines/specs/nvd.yaml +38 -0
- package/engines/specs/obis.yaml +20 -0
- package/engines/specs/opencitations.yaml +52 -0
- package/engines/specs/openf1.yaml +21 -0
- package/engines/specs/openfoodfacts.yaml +45 -0
- package/engines/specs/openligadb.yaml +20 -0
- package/engines/specs/openreview.yaml +37 -0
- package/engines/specs/openstd.yaml +21 -0
- package/engines/specs/people_daily.yaml +22 -0
- package/engines/specs/realtime_index.yaml +34 -0
- package/engines/specs/ror.yaml +20 -0
- package/engines/specs/satnogs.yaml +20 -0
- package/engines/specs/sec_edgar.yaml +46 -0
- package/engines/specs/shfe.yaml +39 -0
- package/engines/specs/skillsmp.yaml +50 -0
- package/engines/specs/sogou_weixin_browser.yaml +30 -0
- package/engines/specs/soilgrids.yaml +25 -0
- package/engines/specs/sspai.yaml +36 -0
- package/engines/specs/stackexchange.yaml +46 -0
- package/engines/specs/std_samr.yaml +21 -0
- package/engines/specs/tass.yaml +43 -0
- package/engines/specs/tavily_free.yaml +56 -0
- package/engines/specs/tle_mirror.yaml +21 -0
- package/engines/specs/train.yaml +37 -0
- package/engines/specs/tvmaze.yaml +20 -0
- package/engines/specs/twitter_syndication.yaml +31 -0
- package/engines/specs/un_comtrade.yaml +23 -0
- package/engines/specs/unpaywall.yaml +54 -0
- package/engines/specs/vnpress.yaml +43 -0
- package/engines/specs/weather.yaml +32 -0
- package/engines/specs/who_don.yaml +21 -0
- package/engines/specs/who_gho.yaml +20 -0
- package/engines/specs/wikimedia_commons.yaml +34 -0
- package/engines/specs/wikisource.yaml +22 -0
- package/engines/specs/worms.yaml +19 -0
- package/engines/specs/x_trending.yaml +34 -0
- package/engines/specs/yna.yaml +43 -0
- package/engines/specs/ynet.yaml +43 -0
- package/engines/specs/yuanbao.yaml +93 -0
- package/engines/specs/zbmath.yaml +40 -0
- package/engines/specs/zdic.yaml +22 -0
- package/engines/specs/zenodo.yaml +27 -0
- package/engines/specs/zhihu_hot_app.yaml +35 -0
- package/mcp/clients.yaml +106 -0
- package/package.json +55 -12
- package/packages/dsh-plugin/README.md +152 -0
- package/packages/dsh-plugin/cordis.patch.yml +48 -0
- package/packages/dsh-plugin/dsh/client.js +1533 -0
- package/packages/dsh-plugin/dsh/diagnostics.js +54 -0
- package/packages/dsh-plugin/dsh/index.js +527 -0
- package/packages/dsh-plugin/dsh/native-tools.mjs +749 -0
- package/packages/dsh-plugin/dsh/runner.js +666 -0
- package/packages/dsh-plugin/dsh/wide-research.js +878 -0
- package/packages/dsh-plugin/package.json +38 -0
- package/packages/dsh-plugin/scripts/sync-local.sh +70 -0
- package/packages/dsh-plugin/test/client.test.js +406 -0
- package/packages/dsh-plugin/test/config.test.js +30 -0
- package/packages/dsh-plugin/test/diagnostics.test.js +28 -0
- package/packages/dsh-plugin/test/index.test.js +1382 -0
- package/references/query-templates.md +96 -0
- package/references/query-templates.yaml +118 -0
- package/scripts/ab_eval.py +219 -0
- package/scripts/ab_eval_p0p1.py +266 -0
- package/scripts/adaptive.py +294 -70
- package/scripts/answer.py +154 -0
- package/scripts/archive_run.py +591 -0
- package/scripts/argo_engine_registry.py +172 -0
- package/scripts/argo_paths.py +728 -0
- package/scripts/article.py +136 -0
- package/scripts/article_meta.py +131 -0
- package/scripts/arxiv_source.py +201 -0
- package/scripts/badcase_ledger.py +252 -0
- package/scripts/batch_probe.py +241 -0
- package/scripts/benchmark.py +19 -0
- package/scripts/bounded_run.py +144 -0
- package/scripts/browser_auth.py +323 -0
- package/scripts/budget.py +247 -0
- package/scripts/budget_cli.py +93 -0
- package/scripts/build_release_assets.sh +65 -0
- package/scripts/burstiness_detector.py +147 -0
- package/scripts/cache.py +1066 -67
- package/scripts/cache_guard.py +271 -0
- package/scripts/cache_key_vdom.py +56 -0
- package/scripts/cache_similarity.py +170 -0
- package/scripts/caliber_isolation.py +195 -0
- package/scripts/calibrate_lowquality.py +210 -0
- package/scripts/candidate_envelope.py +366 -0
- package/scripts/chrome_cdp.py +871 -0
- package/scripts/ci_drift_gate.py +90 -0
- package/scripts/circuit_breaker.py +389 -0
- package/scripts/citations.py +334 -0
- package/scripts/cite_cli.py +59 -0
- package/scripts/cjk_tokens.py +95 -0
- package/scripts/clarify.py +47 -24
- package/scripts/cli_io.py +240 -0
- package/scripts/config.py +683 -45
- package/scripts/config_cache.py +402 -0
- package/scripts/conn_pool.py +220 -0
- package/scripts/content_boundary.py +46 -0
- package/scripts/content_security.py +685 -0
- package/scripts/content_signals.py +751 -0
- package/scripts/crawl.py +74 -35
- package/scripts/cross_lingual_trace.py +293 -0
- package/scripts/daemon.py +866 -0
- package/scripts/digup_bridge.py +214 -0
- package/scripts/dispatch_result.py +98 -0
- package/scripts/engine_admission.py +366 -0
- package/scripts/engine_dispatch.py +982 -0
- package/scripts/engine_env.py +539 -0
- package/scripts/engine_failure.py +411 -0
- package/scripts/engine_families.py +738 -0
- package/scripts/engine_policy.py +218 -0
- package/scripts/engine_requires.py +190 -0
- package/scripts/engine_status.py +322 -0
- package/scripts/engine_validate.py +638 -0
- package/scripts/engines.py +799 -294
- package/scripts/engines_base.py +1521 -0
- package/scripts/engines_builders.py +310 -0
- package/scripts/engines_builders_batch10.py +204 -0
- package/scripts/engines_builders_batch11.py +174 -0
- package/scripts/engines_builders_batch12.py +103 -0
- package/scripts/engines_builders_batch13.py +340 -0
- package/scripts/engines_builders_batch14.py +656 -0
- package/scripts/engines_builders_batch15.py +249 -0
- package/scripts/engines_builders_batch9.py +1468 -0
- package/scripts/engines_builders_cn.py +2283 -0
- package/scripts/engines_builders_data.py +2923 -0
- package/scripts/engines_builders_data_macro.py +775 -0
- package/scripts/engines_builders_feeds.py +255 -0
- package/scripts/engines_builders_intl.py +1239 -0
- package/scripts/engines_builders_keyless.py +111 -0
- package/scripts/engines_builders_search.py +440 -0
- package/scripts/engines_builders_tech.py +1359 -0
- package/scripts/evidence.py +620 -166
- package/scripts/evidence_loop.py +624 -0
- package/scripts/evidence_tier.py +298 -0
- package/scripts/except_sets.py +25 -0
- package/scripts/extract.py +55 -16
- package/scripts/fact_align.py +207 -0
- package/scripts/fact_crosscheck.py +230 -0
- package/scripts/fetch.py +25 -12
- package/scripts/fetch_browser.py +87 -0
- package/scripts/fetch_jsrun.py +122 -0
- package/scripts/fetch_quality.py +225 -0
- package/scripts/fetch_render_tinyfish.py +117 -0
- package/scripts/fetch_v3.py +1804 -0
- package/scripts/focus_extract.py +350 -0
- package/scripts/fulltext_store.py +169 -0
- package/scripts/fxtwitter_api.py +325 -0
- package/scripts/gen_engine_catalog.py +364 -0
- package/scripts/gen_native_tools.py +91 -0
- package/scripts/gen_routing_snapshot.py +195 -0
- package/scripts/health_check.py +140 -402
- package/scripts/health_probe.py +23 -8
- package/scripts/hot_state.py +134 -0
- package/scripts/http_client.py +1053 -0
- package/scripts/image_ops.py +430 -0
- package/scripts/image_vision/vision_probe.swift +126 -0
- package/scripts/install.ps1 +166 -0
- package/scripts/install.sh +221 -0
- package/scripts/job.py +1186 -0
- package/scripts/jump_resolver.py +235 -0
- package/scripts/lang_capability.py +150 -0
- package/scripts/lang_detect.py +289 -0
- package/scripts/lang_matrix_probe.py +329 -0
- package/scripts/lang_pref.py +311 -0
- package/scripts/link_source.py +340 -0
- package/scripts/local_image.py +970 -0
- package/scripts/local_seek.py +402 -0
- package/scripts/macro_countries.py +97 -0
- package/scripts/matrix_search_eval.py +1187 -0
- package/scripts/mcp_compact.py +234 -0
- package/scripts/mcp_diag.py +8 -3
- package/scripts/mcp_handlers.py +492 -0
- package/scripts/mcp_handlers_surface.py +157 -0
- package/scripts/mcp_launch.sh +124 -0
- package/scripts/mcp_local.py +241 -0
- package/scripts/mcp_server.py +125 -419
- package/scripts/mcp_setup.py +431 -0
- package/scripts/mcp_tools.py +331 -0
- package/scripts/mcp_transport.py +191 -0
- package/scripts/mcp_warm.py +127 -0
- package/scripts/min_version_scan.py +335 -0
- package/scripts/net_proxy.py +258 -0
- package/scripts/network_aware.py +152 -0
- package/scripts/output_transparency.py +200 -0
- package/scripts/paid_policy.py +98 -0
- package/scripts/paper.py +274 -0
- package/scripts/pdf_extract.py +518 -0
- package/scripts/phrase_filter.py +66 -0
- package/scripts/plan.py +422 -0
- package/scripts/postprocess_signals.py +150 -0
- package/scripts/pre-commit +48 -0
- package/scripts/query_enhance.py +157 -0
- package/scripts/query_operators.py +196 -0
- package/scripts/query_rewriter.py +116 -7
- package/scripts/query_signals.py +300 -0
- package/scripts/query_templates.py +167 -0
- package/scripts/query_understanding.py +411 -0
- package/scripts/query_variants.py +298 -0
- package/scripts/quota.py +633 -76
- package/scripts/rank_signals.py +775 -0
- package/scripts/ranking_eval.py +319 -0
- package/scripts/readability_extract.py +433 -0
- package/scripts/recompute.py +415 -0
- package/scripts/recovery.py +616 -0
- package/scripts/recovery_l0.py +160 -0
- package/scripts/recovery_runner.py +150 -0
- package/scripts/redskill/redskill_engine.py +332 -0
- package/scripts/regression_p0p1.py +318 -0
- package/scripts/replay_eval.py +658 -0
- package/scripts/rerank_tfidf.py +225 -0
- package/scripts/research.py +607 -403
- package/scripts/research_cli.py +361 -0
- package/scripts/research_dossier.py +492 -0
- package/scripts/research_expand.py +169 -0
- package/scripts/research_gates.py +272 -0
- package/scripts/research_report.py +209 -0
- package/scripts/research_strategy.py +37 -0
- package/scripts/research_work_packages.py +195 -0
- package/scripts/result_lang.py +311 -0
- package/scripts/retry_policy.py +76 -0
- package/scripts/robots_guard.py +259 -0
- package/scripts/route.py +921 -254
- package/scripts/route_bangs.py +40 -0
- package/scripts/route_cache.py +243 -0
- package/scripts/route_combo.py +917 -0
- package/scripts/route_domains.py +341 -0
- package/scripts/route_lang.py +605 -0
- package/scripts/route_log.py +63 -0
- package/scripts/route_policy.py +250 -0
- package/scripts/rrf_classic.py +66 -0
- package/scripts/screenshot.py +73 -0
- package/scripts/search.py +886 -406
- package/scripts/search_attribution.py +185 -0
- package/scripts/search_benchmark.py +407 -0
- package/scripts/search_cli.py +640 -0
- package/scripts/search_entry.py +395 -0
- package/scripts/search_output.py +690 -0
- package/scripts/search_pipeline.py +926 -0
- package/scripts/search_rank.py +991 -0
- package/scripts/search_types.py +129 -16
- package/scripts/seek_locator.py +68 -0
- package/scripts/semantic_evidence.py +391 -0
- package/scripts/serp_guard.py +336 -0
- package/scripts/serp_kill_log.py +74 -0
- package/scripts/single_flight.py +120 -0
- package/scripts/social_engines/__init__.py +10 -0
- package/scripts/social_engines/bilibili_engine.py +131 -0
- package/scripts/social_engines/hackernews_engine.py +113 -0
- package/scripts/social_engines/reddit_engine.py +172 -0
- package/scripts/social_engines/twitter_engine.py +397 -0
- package/scripts/social_engines/v2ex_engine.py +101 -0
- package/scripts/social_engines/weibo_engine.py +128 -0
- package/scripts/social_engines/xiaohongshu_engine.py +137 -0
- package/scripts/social_engines/zhihu_engine.py +139 -0
- package/scripts/social_research.py +201 -0
- package/scripts/sogou_weixin_browser.py +318 -0
- package/scripts/source_ledger.py +249 -0
- package/scripts/stage_timing.py +58 -0
- package/scripts/stats_cli.py +107 -0
- package/scripts/straggler_policy.py +60 -0
- package/scripts/stylometry_detector.py +231 -0
- package/scripts/sync_backends.py +353 -0
- package/scripts/sync_installs.py +29 -0
- package/scripts/template_cli.py +127 -0
- package/scripts/text_lexicon.py +72 -0
- package/scripts/tfidf_router.py +109 -37
- package/scripts/time_utils.py +233 -0
- package/scripts/topic_research_profiles.py +643 -0
- package/scripts/train.py +737 -0
- package/scripts/tweet.py +596 -0
- package/scripts/url_canon.py +217 -0
- package/scripts/url_optimize.py +56 -0
- package/scripts/url_safety.py +236 -0
- package/scripts/usage_log.py +116 -0
- package/scripts/usage_log_clean.py +113 -0
- package/scripts/v2ex_nodes.py +311 -0
- package/scripts/variant_recall.py +188 -0
- package/scripts/watch.py +205 -0
- package/scripts/wechat_article.py +258 -0
- package/scripts/wide_research.py +447 -0
- package/scripts/wx.py +349 -0
- package/scripts/x_article_fetch.py +141 -0
- package/scripts/x_search.py +234 -0
- package/scripts/x_trending.py +189 -0
- package/scripts/yaml_load.py +67 -0
- package/scripts/zhihu_quota.py +139 -0
- package/sub-skills/ego-search/SKILL.md +253 -0
- package/sub-skills/ego-search/scripts/ego_search.py +800 -0
- package/sub-skills/ego-search/scripts/merge.py +226 -0
- package/sub-skills/ego-search/scripts/quality.py +64 -0
- package/sub-skills/ego-search/scripts/runtime.py +172 -0
- package/sub-skills/ego-search/scripts/safety.py +109 -0
- package/sub-skills/ego-search/scripts/serp_spec.py +109 -0
- package/sub-skills/ego-search/scripts/webbridge_adapter.py +374 -0
- package/sub-skills/js-run/SKILL.md +67 -0
- package/sub-skills/js-run/scripts/jsrun.py +112 -0
- package/sub-skills/js-run/scripts/shim.js +188 -0
- package/sub-skills/local-search/SKILL.md +50 -53
- package/sub-skills/local-search/bm25.py +186 -0
- package/sub-skills/local-search/cli_runner.py +331 -0
- package/sub-skills/local-search/config.yaml +152 -55
- package/sub-skills/local-search/engine_registry.py +91 -26
- package/sub-skills/local-search/{health_check.py → local_health_check.py} +140 -10
- package/sub-skills/local-search/local_search_adapter.py +13 -2
- package/sub-skills/local-search/parse_maps.yaml +40 -42
- package/sub-skills/local-search/parsers.py +328 -0
- package/sub-skills/local-search/search_v3.py +716 -242
- package/sub-skills/local-search/smart_router.py +47 -7
- package/sub-skills/local-seek/SKILL.md +110 -0
- package/sub-skills/local-seek/config/domains.yaml +20 -0
- package/sub-skills/local-seek/scripts/eval_rank.py +216 -0
- package/sub-skills/local-seek/scripts/eval_seek.py +224 -0
- package/sub-skills/local-seek/scripts/seek.py +1465 -0
- package/sub-skills/local-seek/scripts/seek_frecency.py +126 -0
- package/sub-skills/local-seek/scripts/seek_fts.py +430 -0
- package/sub-skills/local-seek/scripts/seek_rank.py +197 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# NASA Image and Video Library — 公开航天图像/视频(免认证)
|
|
2
|
+
# 补 earth_science 域的图像素材维度:nasa_cmr 是数据集目录、usgs 是地震目录,
|
|
3
|
+
# 都给不了可看的图。匿名约 30 req/h,无官方契约,qps 从紧。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine nasa_images --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: nasa_images
|
|
8
|
+
type: http
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
method: GET
|
|
12
|
+
url: https://images-api.nasa.gov/search
|
|
13
|
+
timeout: 15
|
|
14
|
+
query_param: q
|
|
15
|
+
canary_query: "apollo 11"
|
|
16
|
+
desc: "NASA 图像视频库(公开航天影像,免认证,匿名约 30 req/h)"
|
|
17
|
+
coverage: [earth_science, media]
|
|
18
|
+
recommended: false
|
|
19
|
+
latency_ms: 2000
|
|
20
|
+
|
|
21
|
+
headers:
|
|
22
|
+
User-Agent: argo-search/1.0 (+nasa_images)
|
|
23
|
+
Accept: application/json
|
|
24
|
+
|
|
25
|
+
extra_params:
|
|
26
|
+
media_type: image
|
|
27
|
+
page_size: "{n}"
|
|
28
|
+
|
|
29
|
+
output_map:
|
|
30
|
+
items: collection.items
|
|
31
|
+
item_title: data.0.title
|
|
32
|
+
item_summary: data.0.description
|
|
33
|
+
item_published_at: data.0.date_created
|
|
34
|
+
url_template: "https://images.nasa.gov/details/{data.0.nasa_id}"
|
|
35
|
+
# 图片直链:item.links 是 [{href, rel, render, width, ...}],必须取 .href
|
|
36
|
+
# ——写成 links.0 会被 _coerce_field 丢成空串(dict 不可强转)。
|
|
37
|
+
item_image: links.0.href
|
|
38
|
+
|
|
39
|
+
# NASA 影像是美国政府作品,属公有领域;授权不随条目变化,声明一次即可。
|
|
40
|
+
image_license: "公有领域(NASA,美国政府作品)"
|
|
41
|
+
|
|
42
|
+
quality_queries:
|
|
43
|
+
- query: "apollo 11"
|
|
44
|
+
- query: "hubble telescope"
|
|
45
|
+
- query: "mars rover"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 网易云音乐搜索 — 中文曲库(Web 接口,免认证)
|
|
2
|
+
# 补 media_search 域的中文曲库维度:qq_music 无歌单/专辑元数据深度,
|
|
3
|
+
# itunes 偏欧美曲库。非官方接口,历史上偶加签名——失败诚实空,不做绕过。
|
|
4
|
+
# fee 字段标 VIP 歌曲仅作元数据用途。
|
|
5
|
+
# 验证:
|
|
6
|
+
# python3 scripts/engine_validate.py --engine netease_music --stage all --admit --write-doc
|
|
7
|
+
|
|
8
|
+
engine_id: netease_music
|
|
9
|
+
type: http
|
|
10
|
+
enabled: true
|
|
11
|
+
cost_tier: free
|
|
12
|
+
method: GET
|
|
13
|
+
url: https://music.163.com/api/search/get/web
|
|
14
|
+
timeout: 10
|
|
15
|
+
query_param: s
|
|
16
|
+
canary_query: "周杰伦 晴天"
|
|
17
|
+
desc: "网易云音乐搜索(中文曲库/专辑元数据,免认证,非官方接口)"
|
|
18
|
+
coverage: [media, chinese]
|
|
19
|
+
recommended: false
|
|
20
|
+
latency_ms: 1000
|
|
21
|
+
|
|
22
|
+
headers:
|
|
23
|
+
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
|
|
24
|
+
Referer: https://music.163.com/
|
|
25
|
+
|
|
26
|
+
extra_params:
|
|
27
|
+
type: "1"
|
|
28
|
+
limit: "{n}"
|
|
29
|
+
|
|
30
|
+
output_map:
|
|
31
|
+
items: result.songs
|
|
32
|
+
item_title: name
|
|
33
|
+
item_summary: album.name
|
|
34
|
+
url_template: "https://music.163.com/song?id={id}"
|
|
35
|
+
|
|
36
|
+
quality_queries:
|
|
37
|
+
- query: "周杰伦 晴天"
|
|
38
|
+
- query: "Taylor Swift Love Story"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# NHK 新闻 RSS — 日本放送协会主要新闻,公共广播一手源
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:**ja 本地一手新闻**。接入前 argo 的新闻链路只有中英源
|
|
4
|
+
# (google_news/guardian_rss/dw_news/france24 都是英语视角),ja 查询
|
|
5
|
+
# 拿不到本地一手报道。
|
|
6
|
+
#
|
|
7
|
+
# 实测(2026-09-21):**7 条**,摘要中位 103 字、最长 163 字。
|
|
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 nhk --stage all --admit
|
|
15
|
+
# python3 scripts/search.py "今日のニュース" --engine nhk --json
|
|
16
|
+
|
|
17
|
+
engine_id: nhk
|
|
18
|
+
type: rss_feed
|
|
19
|
+
enabled: true
|
|
20
|
+
cost_tier: free
|
|
21
|
+
label: NHK 新闻 RSS
|
|
22
|
+
family: world_news
|
|
23
|
+
feed_mode: hot
|
|
24
|
+
relevance_check: false
|
|
25
|
+
priority: 47
|
|
26
|
+
qps: 1
|
|
27
|
+
period: second
|
|
28
|
+
cost_per_call: 0.0
|
|
29
|
+
cost_unit: free
|
|
30
|
+
timeout: 12
|
|
31
|
+
feed_url: https://www3.nhk.or.jp/rss/news/cat0.xml
|
|
32
|
+
langs:
|
|
33
|
+
- ja
|
|
34
|
+
canary_query: "今日のニュース"
|
|
35
|
+
coverage:
|
|
36
|
+
- news
|
|
37
|
+
- japan
|
|
38
|
+
desc: "NHK 新闻(日本放送协会主要新闻,公共广播一手源,免 key)"
|
|
39
|
+
recommended: false
|
|
40
|
+
|
|
41
|
+
quality_queries:
|
|
42
|
+
- query: "今日のニュース"
|
|
43
|
+
- query: "日本の政治"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# NHTSA vPIC 车辆厂商/车型本体(免认证)
|
|
2
|
+
# 补 shopping 域:车辆厂商/车型标准命名(12361 个厂商),
|
|
3
|
+
# 「某车型属于哪个厂商」类查询的权威答案源。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine nhtsa_vpic --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: nhtsa_vpic
|
|
8
|
+
type: nhtsa_vpic
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
timeout: 20
|
|
12
|
+
canary_query: "tesla"
|
|
13
|
+
desc: "车辆厂商/车型本体(NHTSA vPIC,免认证)"
|
|
14
|
+
coverage: [shopping, vehicle, reference, official]
|
|
15
|
+
recommended: false
|
|
16
|
+
latency_ms: 2500
|
|
17
|
+
|
|
18
|
+
quality_queries:
|
|
19
|
+
- query: "tesla"
|
|
20
|
+
- query: "toyota"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# NOAA SWPC 空间天气(官方免认证)
|
|
2
|
+
# 补 astronomy 域的「空间天气」维度:Kp 地磁指数 + 太阳活动区。
|
|
3
|
+
# 榜单型源(查询词不参与过滤),与太阳活动/极光/卫星安全类查询相关。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine noaa_swpc --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: noaa_swpc
|
|
8
|
+
type: noaa_swpc
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
timeout: 15
|
|
12
|
+
canary_query: "solar"
|
|
13
|
+
desc: "空间天气(NOAA SWPC,Kp 指数/太阳活动区,官方免认证)"
|
|
14
|
+
coverage: [astronomy, space, science, official]
|
|
15
|
+
recommended: false
|
|
16
|
+
latency_ms: 2000
|
|
17
|
+
|
|
18
|
+
quality_queries:
|
|
19
|
+
- query: "solar"
|
|
20
|
+
- query: "geomagnetic storm"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# NVD CVE API 2.0 — 安全漏洞情报(NIST 官方,免认证)
|
|
2
|
+
# 配额契约:免 key 5 请求/30 秒滚动窗口(免费 key 50/30s,见 nvd.nist.gov/developers/start-here)
|
|
3
|
+
# 验证:
|
|
4
|
+
# python3 scripts/engine_validate.py --engine nvd --stage all --admit --write-doc
|
|
5
|
+
# python3 scripts/search.py "log4j" --engine nvd --json
|
|
6
|
+
|
|
7
|
+
engine_id: nvd
|
|
8
|
+
type: http
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
method: GET
|
|
12
|
+
url: https://services.nvd.nist.gov/rest/json/cves/2.0
|
|
13
|
+
timeout: 12
|
|
14
|
+
query_param: keywordSearch
|
|
15
|
+
canary_query: "log4j"
|
|
16
|
+
desc: "NVD 漏洞情报(CVE 编号/描述/CVSS 与 KEV 标记;免认证 5 请求/30 秒)"
|
|
17
|
+
coverage: [security, tech]
|
|
18
|
+
recommended: false
|
|
19
|
+
latency_ms: 2500
|
|
20
|
+
|
|
21
|
+
headers:
|
|
22
|
+
User-Agent: argo-search/1.0 (+nvd)
|
|
23
|
+
Accept: application/json
|
|
24
|
+
|
|
25
|
+
extra_params:
|
|
26
|
+
resultsPerPage: "5"
|
|
27
|
+
|
|
28
|
+
output_map:
|
|
29
|
+
items: vulnerabilities
|
|
30
|
+
item_title: cve.id
|
|
31
|
+
item_summary: cve.descriptions.0.value
|
|
32
|
+
item_published_at: cve.published
|
|
33
|
+
url_template: "https://nvd.nist.gov/vuln/detail/{cve.id}"
|
|
34
|
+
|
|
35
|
+
quality_queries:
|
|
36
|
+
- query: "log4j"
|
|
37
|
+
- query: "openssl"
|
|
38
|
+
- query: "heartbleed"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# OBIS 海洋生物多样性观测(IOC/UNESCO,免认证,2.29 亿条记录)
|
|
2
|
+
# 补 species_search 域的「海洋」维度:现有 gbif 以陆生/通用为主,
|
|
3
|
+
# OBIS 是海洋观测的官方汇总。拉丁学名准确,中文俗名诚实空(交回百科类引擎)。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine obis --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: obis
|
|
8
|
+
type: obis
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
timeout: 15
|
|
12
|
+
canary_query: "Gadus morhua"
|
|
13
|
+
desc: "OBIS 海洋物种观测(IOC/UNESCO 官方,2.29 亿条记录,免认证)"
|
|
14
|
+
coverage: [species, marine, science, open_data]
|
|
15
|
+
recommended: false
|
|
16
|
+
latency_ms: 2000
|
|
17
|
+
|
|
18
|
+
quality_queries:
|
|
19
|
+
- query: "Gadus morhua"
|
|
20
|
+
- query: "Delphinus delphis"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# OpenCitations — 引用图谱(免 key、免注册、无限次)
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:论文的**引用关系与溯源**。Crossref/OpenAlex 给的是出版物元数据,
|
|
4
|
+
# 而「这篇被谁引用 / 引了谁」是另一类问题——用于判断一篇工作的影响力与谱系,
|
|
5
|
+
# 也是证据链里「这个说法有没有后续验证」的入口。
|
|
6
|
+
#
|
|
7
|
+
# 端点语义(实测 2026-09-16):
|
|
8
|
+
# /index/api/v1/citation-count/{doi} → [{"count": "1806"}] 被引数
|
|
9
|
+
# /index/api/v1/citations/{doi} → 引用它的 DOI 列表
|
|
10
|
+
# /index/api/v1/references/{doi} → 它引用的 DOI 列表
|
|
11
|
+
# 本引擎走 citation-count(单值、稳定、体积小),查询词传**裸 DOI**。
|
|
12
|
+
#
|
|
13
|
+
# 验证:
|
|
14
|
+
# python3 scripts/engine_validate.py --engine opencitations --stage health --admit
|
|
15
|
+
# python3 scripts/search.py "10.1038/nature12373" --engine opencitations --json
|
|
16
|
+
|
|
17
|
+
engine_id: opencitations
|
|
18
|
+
type: http
|
|
19
|
+
enabled: true
|
|
20
|
+
# 按 DOI 精查而非关键词检索:传裸 DOI,不参与自动路由
|
|
21
|
+
explicit_only: true
|
|
22
|
+
cost_tier: free
|
|
23
|
+
label: OpenCitations 引用图谱
|
|
24
|
+
family: academic
|
|
25
|
+
priority: 52
|
|
26
|
+
qps: 2
|
|
27
|
+
period: second
|
|
28
|
+
cost_per_call: 0.0
|
|
29
|
+
cost_unit: free
|
|
30
|
+
method: GET
|
|
31
|
+
url: https://opencitations.net/index/api/v1/citation-count/{query}
|
|
32
|
+
query_param: ""
|
|
33
|
+
timeout: 12
|
|
34
|
+
format: json
|
|
35
|
+
canary_query: "10.1038/nature12373"
|
|
36
|
+
coverage:
|
|
37
|
+
- academic
|
|
38
|
+
- citation
|
|
39
|
+
desc: "OpenCitations 引用计数(DOI → 被引次数,免 key 无限次;查询词传裸 DOI)"
|
|
40
|
+
# 响应是单元素数组 [{"count": "N"}],没有标题/URL 字段。url_template 的 {..}
|
|
41
|
+
# 占位符取自 **item** 而非 query,写 {query} 会渲染成空串,故用静态入口页
|
|
42
|
+
# (与 carbon_intensity 同做法)。
|
|
43
|
+
output_map:
|
|
44
|
+
items: "."
|
|
45
|
+
item_title: "count"
|
|
46
|
+
item_summary: "count"
|
|
47
|
+
url_template: "https://opencitations.net/"
|
|
48
|
+
recommended: false
|
|
49
|
+
latency_ms: 800
|
|
50
|
+
|
|
51
|
+
quality_queries:
|
|
52
|
+
- query: "10.1038/nature12373"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# OpenF1 — 一级方程式遥测与赛程(免认证,社区维护)
|
|
2
|
+
# 补 sports_search 域的「赛车」维度(现有 thesportsdb 偏足篮)。
|
|
3
|
+
# 先查 sessions 端点拿 session_key 再查 drivers,两级解析由 builder 完成。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine openf1 --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: openf1
|
|
8
|
+
type: openf1
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
timeout: 20
|
|
12
|
+
canary_query: "verstappen"
|
|
13
|
+
desc: "F1 车手/车队/赛程数据(OpenF1,免认证,社区维护)"
|
|
14
|
+
family: sports
|
|
15
|
+
coverage: [sports, racing, realtime]
|
|
16
|
+
recommended: false
|
|
17
|
+
latency_ms: 2500
|
|
18
|
+
|
|
19
|
+
quality_queries:
|
|
20
|
+
- query: "verstappen"
|
|
21
|
+
- query: "monza"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Open Food Facts — 全球食品成分库(免 key,开放数据库)
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:**食品/营养**。argo 有 usda(美国农业部食品营养,DEMO_KEY 限流)
|
|
4
|
+
# 但它是单一国别;Open Food Facts 是 200+ 国家的众包食品库,多语言
|
|
5
|
+
# (产品名/配料表按语言分列),免 key 无配额。
|
|
6
|
+
#
|
|
7
|
+
# 实测(2026-09-21):JSON 直出;「nutella」1038 条命中,含 additives_n /
|
|
8
|
+
# brands / 各国产品名。条目数在垂直源里属最高档。
|
|
9
|
+
#
|
|
10
|
+
# 形态:检索式。url 由 url_template 从条码拼出(上游不返回绝对 URL)。
|
|
11
|
+
#
|
|
12
|
+
# 验证:
|
|
13
|
+
# python3 scripts/engine_validate.py --engine openfoodfacts --stage all --admit
|
|
14
|
+
|
|
15
|
+
engine_id: openfoodfacts
|
|
16
|
+
type: http
|
|
17
|
+
enabled: true
|
|
18
|
+
cost_tier: free
|
|
19
|
+
method: GET
|
|
20
|
+
url: https://world.openfoodfacts.org/cgi/search.pl
|
|
21
|
+
timeout: 20
|
|
22
|
+
query_param: search_terms
|
|
23
|
+
canary_query: "nutella"
|
|
24
|
+
family: misc_vertical
|
|
25
|
+
coverage: [food, nutrition, product]
|
|
26
|
+
desc: "Open Food Facts 全球食品成分库(200+ 国家,多语言,免 key)"
|
|
27
|
+
recommended: false
|
|
28
|
+
# 上游按 Accept 头做内容协商:不带 Accept 时返回 503(实测 2026-09-21,
|
|
29
|
+
# 同一 URL 加 Accept: application/json 即 200)——不是限流,是端点策略。
|
|
30
|
+
headers:
|
|
31
|
+
Accept: application/json
|
|
32
|
+
extra_params:
|
|
33
|
+
search_simple: 1
|
|
34
|
+
action: process
|
|
35
|
+
json: 1
|
|
36
|
+
page_size: "{n}"
|
|
37
|
+
output_map:
|
|
38
|
+
items: products
|
|
39
|
+
item_title: product_name
|
|
40
|
+
item_summary: brands
|
|
41
|
+
url_template: "https://world.openfoodfacts.org/product/{code}"
|
|
42
|
+
|
|
43
|
+
quality_queries:
|
|
44
|
+
- query: "nutella"
|
|
45
|
+
- query: "yogurt"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# OpenLigaDB 德甲/欧洲联赛赛程比分(免认证)
|
|
2
|
+
# 补 sports_search 域的足球赛程/比分维度(thesportsdb 偏球队元数据)。
|
|
3
|
+
# 验证:
|
|
4
|
+
# python3 scripts/engine_validate.py --engine openligadb --stage all --admit --write-doc
|
|
5
|
+
|
|
6
|
+
engine_id: openligadb
|
|
7
|
+
type: openligadb
|
|
8
|
+
enabled: true
|
|
9
|
+
cost_tier: free
|
|
10
|
+
timeout: 15
|
|
11
|
+
canary_query: "bayern"
|
|
12
|
+
desc: "德甲/欧洲联赛赛程比分(OpenLigaDB,免认证)"
|
|
13
|
+
family: sports
|
|
14
|
+
coverage: [sports, football, realtime]
|
|
15
|
+
recommended: false
|
|
16
|
+
latency_ms: 2000
|
|
17
|
+
|
|
18
|
+
quality_queries:
|
|
19
|
+
- query: "bayern"
|
|
20
|
+
- query: "bundesliga"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# OpenReview API2 — 顶会论文与评审意见(免认证)
|
|
2
|
+
# 特点:审稿意见 / meta-review / rebuttal 公开可见,openalex 与
|
|
3
|
+
# semantic_scholar 均不含这一层;content 字段统一为 {value: ...} 包装。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine openreview --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: openreview
|
|
8
|
+
type: http
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
method: GET
|
|
12
|
+
url: https://api2.openreview.net/notes/search
|
|
13
|
+
timeout: 12
|
|
14
|
+
query_param: term
|
|
15
|
+
canary_query: "LLM agents"
|
|
16
|
+
desc: "OpenReview 顶会论文(含评审可见性与 PDF,AI/ML 研究为主)"
|
|
17
|
+
coverage: [academic]
|
|
18
|
+
recommended: false
|
|
19
|
+
latency_ms: 3000
|
|
20
|
+
|
|
21
|
+
headers:
|
|
22
|
+
User-Agent: argo-search/1.0 (+openreview)
|
|
23
|
+
Accept: application/json
|
|
24
|
+
|
|
25
|
+
extra_params:
|
|
26
|
+
limit: "10"
|
|
27
|
+
|
|
28
|
+
output_map:
|
|
29
|
+
items: notes
|
|
30
|
+
item_title: content.title.value
|
|
31
|
+
item_summary: content.abstract.value
|
|
32
|
+
url_template: "https://openreview.net/forum?id={id}"
|
|
33
|
+
|
|
34
|
+
quality_queries:
|
|
35
|
+
- query: "LLM agents"
|
|
36
|
+
- query: "transformer"
|
|
37
|
+
- query: "reinforcement learning"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 国家标准全文公开系统 — GB 国标全文在线预览入口(HTML 解析,免认证)
|
|
2
|
+
# 与 std_samr 同库互补:这里给全文预览页(newGbInfo?hcno=),列表为服务端
|
|
3
|
+
# 渲染 HTML,行内 onclick showInfo('hcno') 取详情键。全文 PDF 防复制渲染,
|
|
4
|
+
# 只取元数据(标准号/名称/性质/状态/发布/实施日期)。
|
|
5
|
+
# 验证:
|
|
6
|
+
# python3 scripts/engine_validate.py --engine openstd --stage all --admit --write-doc
|
|
7
|
+
|
|
8
|
+
engine_id: openstd
|
|
9
|
+
type: openstd
|
|
10
|
+
enabled: true
|
|
11
|
+
cost_tier: free
|
|
12
|
+
timeout: 15
|
|
13
|
+
canary_query: "数据安全"
|
|
14
|
+
desc: "国家标准全文公开系统(GB 全文预览入口,HTML 解析,免认证)"
|
|
15
|
+
coverage: [standards, tech, chinese]
|
|
16
|
+
recommended: false
|
|
17
|
+
latency_ms: 2500
|
|
18
|
+
|
|
19
|
+
quality_queries:
|
|
20
|
+
- query: "数据安全"
|
|
21
|
+
- query: "信息技术"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# 人民网搜索 — 权威综合中文新闻(官方 JSON 接口,免认证,POST)
|
|
2
|
+
# 现有新闻类源全偏财经(东财/财联社/金十),人民网补权威综合新闻维度。
|
|
3
|
+
# 注意:走 http 而非 https(https 会 301 丢 body)。标题/正文带 <em> 高亮
|
|
4
|
+
# 标签,builder 内剥离。displayTime 为毫秒时间戳。
|
|
5
|
+
# 验证:
|
|
6
|
+
# python3 scripts/engine_validate.py --engine people_daily --stage all --admit --write-doc
|
|
7
|
+
|
|
8
|
+
engine_id: people_daily
|
|
9
|
+
type: people_daily
|
|
10
|
+
enabled: true
|
|
11
|
+
cost_tier: free
|
|
12
|
+
timeout: 12
|
|
13
|
+
canary_query: "人工智能"
|
|
14
|
+
desc: "人民网搜索(权威综合中文新闻,官方接口,免认证)"
|
|
15
|
+
coverage: [news, chinese, realtime]
|
|
16
|
+
recommended: false
|
|
17
|
+
latency_ms: 1200
|
|
18
|
+
|
|
19
|
+
quality_queries:
|
|
20
|
+
- query: "人工智能"
|
|
21
|
+
- query: "经济"
|
|
22
|
+
- query: "教育"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 实时索引数据源(免 Key CLI 桥接)
|
|
2
|
+
# 结构化 YAML 输出,结果带 published_at(发布时间)维度,支持时间窗过滤。
|
|
3
|
+
# 工程侧形态与 hackernews/local_search 一致:声明式 spec + 通用 cli builder,
|
|
4
|
+
# 不新增 Python 特例分支。
|
|
5
|
+
#
|
|
6
|
+
# 部署:将实际索引 CLI 安装/软链为 realtime-index(或把 cmd 改为其绝对路径);
|
|
7
|
+
# cmd 不可用时引擎自动禁用(与其他 CLI 引擎同形态)。
|
|
8
|
+
#
|
|
9
|
+
# 验证:
|
|
10
|
+
# python3 scripts/engine_validate.py --engine realtime_index --stage all --admit
|
|
11
|
+
# python3 scripts/search.py "rust async" --engine realtime_index --since 7d --json
|
|
12
|
+
|
|
13
|
+
engine_id: realtime_index
|
|
14
|
+
type: cli
|
|
15
|
+
enabled: true
|
|
16
|
+
disabled_reason: 运行时按 realtime-index CLI 是否存在翻转(config._validate_engine_paths);未安装 CLI 时等效停用,装好后无需改代码自动启用
|
|
17
|
+
cost_tier: free
|
|
18
|
+
label: 实时索引搜索
|
|
19
|
+
desc: 实时索引数据源(免 Key,结构化输出,带发布时间维度与时间窗过滤)
|
|
20
|
+
canary_query: "climate change"
|
|
21
|
+
cmd:
|
|
22
|
+
- realtime-index
|
|
23
|
+
search_args:
|
|
24
|
+
- search
|
|
25
|
+
- '{query}'
|
|
26
|
+
output_format: yaml
|
|
27
|
+
filter_args:
|
|
28
|
+
since:
|
|
29
|
+
- --published-after
|
|
30
|
+
- '{since}'
|
|
31
|
+
until:
|
|
32
|
+
- --published-before
|
|
33
|
+
- '{until}'
|
|
34
|
+
timeout: 15
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# ROR 研究机构标识(免认证)
|
|
2
|
+
# 补 org_entity 域的「学术机构」维度:现有 opencorporates/gleif 覆盖企业法人,
|
|
3
|
+
# ROR 是研究机构的唯一标识(含域名映射),机构消歧刚需。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine ror --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: ror
|
|
8
|
+
type: ror
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
timeout: 15
|
|
12
|
+
canary_query: "tsinghua"
|
|
13
|
+
desc: "ROR 研究机构标识(含域名映射,免认证)"
|
|
14
|
+
coverage: [org_entity, academic, reference]
|
|
15
|
+
recommended: false
|
|
16
|
+
latency_ms: 2000
|
|
17
|
+
|
|
18
|
+
quality_queries:
|
|
19
|
+
- query: "tsinghua"
|
|
20
|
+
- query: "max planck"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# SatNOGS 卫星目录(免认证)
|
|
2
|
+
# 补 astronomy 域的卫星目录维度(NORAD ID/发射信息),与 tle_mirror 配合
|
|
3
|
+
# 组成「目录 + 轨道根数」。Celestrak 在本机不可达,SatNOGS 提供稳定替代。
|
|
4
|
+
# 验证:
|
|
5
|
+
# python3 scripts/engine_validate.py --engine satnogs --stage all --admit --write-doc
|
|
6
|
+
|
|
7
|
+
engine_id: satnogs
|
|
8
|
+
type: satnogs
|
|
9
|
+
enabled: true
|
|
10
|
+
cost_tier: free
|
|
11
|
+
timeout: 20
|
|
12
|
+
canary_query: "ISS"
|
|
13
|
+
desc: "卫星目录(SatNOGS DB,NORAD ID/发射信息,免认证)"
|
|
14
|
+
coverage: [astronomy, space, satellites, open_data]
|
|
15
|
+
recommended: false
|
|
16
|
+
latency_ms: 2500
|
|
17
|
+
|
|
18
|
+
quality_queries:
|
|
19
|
+
- query: "ISS"
|
|
20
|
+
- query: "starlink"
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# SEC EDGAR 美国证监会全文检索(免 Key,官方数据)
|
|
2
|
+
# 文档: https://www.sec.gov/search-filings/edgar-search-assistance
|
|
3
|
+
# 注意: SEC 强制要求 User-Agent
|
|
4
|
+
# q 参数只支持裸关键词搜索(如 q=apple 或 q="apple 10-K"),不支持 field:syntax。
|
|
5
|
+
# 表单过滤必须走 forms= 参数(efts 的 q 参数里写 form_type:10-K 返回 0 条)。
|
|
6
|
+
# 验证:
|
|
7
|
+
# python3 scripts/engine_validate.py --engine sec_edgar --stage all --admit
|
|
8
|
+
# python3 scripts/search.py "apple" --engine sec_edgar --json
|
|
9
|
+
# python3 scripts/search.py "apple" --engine sec_edgar --forms 10-K --json
|
|
10
|
+
|
|
11
|
+
engine_id: sec_edgar
|
|
12
|
+
type: http
|
|
13
|
+
enabled: true
|
|
14
|
+
cost_tier: free
|
|
15
|
+
method: GET
|
|
16
|
+
url: https://efts.sec.gov/LATEST/search-index
|
|
17
|
+
timeout: 15
|
|
18
|
+
query_param: q
|
|
19
|
+
extra_params:
|
|
20
|
+
# forms 默认 10-K:年报是这一源最常被问的表单类型,不传也给出可用结果。
|
|
21
|
+
# 其余三个参数 CLI 暂无开关(ciks=公司 CIK、startdt/enddt=申报日期窗),
|
|
22
|
+
# 留空即不下发有效过滤——需要时先把开关接进 search_cli 再填占位符。
|
|
23
|
+
forms: "10-K"
|
|
24
|
+
ciks: ""
|
|
25
|
+
startdt: ""
|
|
26
|
+
enddt: ""
|
|
27
|
+
canary_query: "apple"
|
|
28
|
+
desc: "SEC EDGAR 美国证监会官方全文检索(公司/财报/申报,免认证)"
|
|
29
|
+
coverage: [finance, us_stock, legal, company]
|
|
30
|
+
# 能力族:这个源回答「某家公司的财报/申报文件是什么」,属公司财务披露。
|
|
31
|
+
# 此前没声明,被静默当成 web_general——后果是它跟通用搜索引擎同族比较,
|
|
32
|
+
# 在排序里被顶到后面,而且会被恢复链当成「安全族」误放行。
|
|
33
|
+
family: finance_market
|
|
34
|
+
recommended: false
|
|
35
|
+
|
|
36
|
+
headers:
|
|
37
|
+
User-Agent: argo-search/1.0 (research contact@example.com)
|
|
38
|
+
Accept: application/json
|
|
39
|
+
|
|
40
|
+
output_map:
|
|
41
|
+
items: hits.hits
|
|
42
|
+
item_title: _source.display_names.0
|
|
43
|
+
# 文档本体 URL:Archives/edgar/data/{cik}/{accession_no_dashes}/{primary_doc}
|
|
44
|
+
# 如果 efts 返回 accession 字段则拼文档本体,否则回退到 browse 页
|
|
45
|
+
url_template: https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={_source.ciks.0}&type={forms}&dateb=&owner=include&count=40
|
|
46
|
+
item_summary: _source.file_description
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 上海期货交易所(SHFE)日行情(免 key)
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:**商品期货此前零源**。现有 finance 源覆盖 A/美/港股票、基金、
|
|
4
|
+
# 债券、汇率,唯独没有商品——「铜价」「螺纹钢主力」「黄金期货」这类问题
|
|
5
|
+
# 只能落到网页搜索,拿二手解读。SHFE 是官方一手日行情。
|
|
6
|
+
#
|
|
7
|
+
# 端点语义(2026-10-21 实测):按交易日全量文件,不支持关键词查询,
|
|
8
|
+
# 所以按「品种」本地过滤(铜/铝/锌/铅/镍/锡/黄金/白银/螺纹钢/热卷/原油等)。
|
|
9
|
+
# GET /data/tradedata/future/dailydata/kxYYYYMMDD.dat
|
|
10
|
+
# → o_curinstrument[]:PRODUCTNAME/PRODUCTGROUPID/DELIVERYMONTH/
|
|
11
|
+
# CLOSEPRICE/SETTLEMENTPRICE/VOLUME/OPENINTEREST
|
|
12
|
+
# 周末与节假日文件不存在,builder 会自动往前找最近一个交易日(最多 12 天)。
|
|
13
|
+
#
|
|
14
|
+
# 验证:
|
|
15
|
+
# python3 scripts/engine_validate.py --engine shfe --stage health --admit
|
|
16
|
+
# argo search "沪铜主力" --engine shfe --json
|
|
17
|
+
|
|
18
|
+
engine_id: shfe
|
|
19
|
+
type: shfe
|
|
20
|
+
enabled: true
|
|
21
|
+
cost_tier: free
|
|
22
|
+
label: 上期所行情
|
|
23
|
+
family: finance_market
|
|
24
|
+
priority: 52
|
|
25
|
+
qps: 2
|
|
26
|
+
period: second
|
|
27
|
+
cost_per_call: 0.0
|
|
28
|
+
cost_unit: free
|
|
29
|
+
recommended: false
|
|
30
|
+
|
|
31
|
+
timeout: 20
|
|
32
|
+
canary_query: 铜
|
|
33
|
+
desc: "上海期货交易所日行情(铜/铝/黄金/螺纹钢等品种,官方一手,免 key)"
|
|
34
|
+
coverage: [finance, futures, commodity, china, official]
|
|
35
|
+
|
|
36
|
+
quality_queries:
|
|
37
|
+
- query: 沪铜主力
|
|
38
|
+
- query: 螺纹钢 期货
|
|
39
|
+
- query: 黄金 期货 收盘
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# SkillsMP — Agent Skills 聚合目录(skill 域跨生态技能索引,GET JSON,keyless)
|
|
2
|
+
# 技能域的广覆盖目录源:独立索引 200 万+ 开源技能,支持语言/职业过滤,
|
|
3
|
+
# 与 redskill(小红书生态 47650 技能本地缓存)互补不重复(不同上游、不同生态)。
|
|
4
|
+
# 免费 REST API 无需密钥(bearerAuth 仅用于提额);sortBy=stars 按仓库热度排序,
|
|
5
|
+
# stars 口径是源仓库星数非安装量,与 skills.sh 安装遥测、ClawHub 下载量互不可比。
|
|
6
|
+
# 可选过滤参数(按需加进 extra_params):language(ISO 码,如 zh)、category、occupation。
|
|
7
|
+
# 验证:
|
|
8
|
+
# python3 scripts/engine_validate.py --engine skillsmp --stage all --admit --write-doc
|
|
9
|
+
|
|
10
|
+
engine_id: skillsmp
|
|
11
|
+
type: http
|
|
12
|
+
enabled: true
|
|
13
|
+
cost_tier: free
|
|
14
|
+
label: SkillsMP 技能目录
|
|
15
|
+
family: misc_vertical
|
|
16
|
+
priority: 50
|
|
17
|
+
qps: 2
|
|
18
|
+
period: second
|
|
19
|
+
limit: null
|
|
20
|
+
cost_per_call: 0.0
|
|
21
|
+
cost_unit: free
|
|
22
|
+
method: GET
|
|
23
|
+
url: https://skillsmp.com/api/v1/skills/search
|
|
24
|
+
timeout: 15
|
|
25
|
+
canary_query: "git commit"
|
|
26
|
+
coverage:
|
|
27
|
+
- skill
|
|
28
|
+
- developer
|
|
29
|
+
- tech
|
|
30
|
+
desc: "SkillsMP Agent 技能聚合目录(200万+ 开源技能独立索引,免费 keyless REST API,stars 排序)"
|
|
31
|
+
format: json
|
|
32
|
+
query_param: q
|
|
33
|
+
extra_params:
|
|
34
|
+
limit: "{n}"
|
|
35
|
+
sortBy: stars
|
|
36
|
+
output_map:
|
|
37
|
+
items: data.skills
|
|
38
|
+
item_title: name
|
|
39
|
+
item_url: skillUrl
|
|
40
|
+
item_summary: description
|
|
41
|
+
# 可验证出处:githubUrl 指向该技能在上游仓里的**目录**(…/tree/main/.agents/
|
|
42
|
+
# skills/xxx),是能核对、能安装的那个地址;skillUrl 只是市场页。
|
|
43
|
+
item_upstream: githubUrl
|
|
44
|
+
# updatedAt 是 epoch **秒**(ClawHub 同名字段是毫秒,差 1000 倍,由
|
|
45
|
+
# engines_base._normalize_epoch 按量级归一成日期)。
|
|
46
|
+
item_published_at: updatedAt
|
|
47
|
+
quality_queries:
|
|
48
|
+
- query: "git commit"
|
|
49
|
+
- query: "code review"
|
|
50
|
+
- query: "pdf"
|