Commit Graph

12 Commits

Author SHA1 Message Date
Teknium f1ccf436a2 feat(web): Perplexity Search API as a web_search + web_extract backend
Adds plugins/web/perplexity — a keyed-only WebSearchProvider over httpx:

- search: POST https://api.perplexity.ai/search (documented Search API),
  search_context_size=low so `snippet` stays description-sized;
  results[].snippet -> description, max_results capped at the API's 20.
- extract: POST /sdk/content/snippets — the query-relevant page-excerpt
  route behind `pplx content snippets` (the CLI's `content fetch` is
  deprecated upstream). web_extract has no query, so the URLs' path words
  serve as the relevance query; per-URL `error` entries survive a 200.
- Wired into the same touchpoints as the other keyed vendors: legacy
  backend set + credential ladder + availability probe (web_tools),
  registry preference walk, OPTIONAL_ENV_VARS, `hermes config`/status/
  dump key lists, nous_subscription direct-credential detection, setup
  summary, test conftests, docs.

Not a keyless-ring member (Perplexity has no anonymous tier). Related
closed PRs #9192 / #23981 / #45225 predate the plugin ABC.
2026-09-04 07:17:00 -07:00
Teknium b818085298 simplify(compat): doctor/status — drop 13 re-exports + the doctor_* globals() facade (97 names), repoint 6 callers / 13 tests 2026-09-03 13:10:52 -07:00
Teknium 0c26446e15 refactor(hermes_cli): inline _try_poll, hoist datetime import, share _kv/_detail and _header/_lines 2026-09-03 00:11:01 -07:00
Teknium 439ceb51ed refactor(hermes_cli): drop dead generate_bot_username/slug + DEFAULT_MANAGER_BOT (tests only) 2026-09-03 00:09:14 -07:00
Teknium f547fb64e5 refactor(hermes_cli): compact data tables, docstrings and body blanks in status/setup slice 2026-09-03 00:05:30 -07:00
Teknium e6ee7215d2 refactor(hermes_cli): status renderers share _row/_banner, feature-state table, flatten context 2026-09-02 23:56:03 -07:00
Teknium 456377f704 refactor(hermes_cli): compact docstrings (keep WHY/invariants); final AST-neutral layout pass 2026-09-02 21:49:33 -07:00
Teknium beeccf716c refactor(hermes_cli): replace per-function lazy 'from hermes_cli.setup/status import' with one bottom module alias 2026-09-02 21:16:32 -07:00
Teknium 1f52e93565 refactor(hermes_cli): fold verify-token branches, share track/untrack counter, compact probe script 2026-09-02 20:59:41 -07:00
Teknium 46997ee7ed refactor(hermes_cli): statement packing (AST-neutral) 2026-09-02 20:50:24 -07:00
Teknium 076ede8d97 refactor(hermes_cli): AST-neutral layout compaction across group D 2026-09-02 20:47:53 -07:00
Teknium ebb9f312dc refactor(status): extract credential sections into status_auth, unify redact_key
- new hermes_cli/status_auth.py: _render_api_keys / _render_auth_providers /
  _render_nous_gateway / _render_apikey_providers + their data tables and the
  OAuth/timestamp helpers; origin helpers imported lazily so status monkeypatches hold
- status.redact_key was a verbatim copy of hermes_cli.config.redact_key -> imported
- sessions/cron/deep/footer renderers compacted; 624 -> 372 lines (base 639)

Parity: r2m_status_golden.py 33 fixtures byte-identical vs base; real
`hermes status`, `status --deep`, `status --help` byte-identical after normalizing
the per-run temp HERMES_HOME path; test_status*/test_estop/test_jobs_json_utf8_bom green.
2026-09-02 16:54:55 -07:00