diff --git a/plugin-catalog/hermes-call-ledger.yaml b/plugin-catalog/hermes-call-ledger.yaml index 47cc745326..bc043e555d 100644 --- a/plugin-catalog/hermes-call-ledger.yaml +++ b/plugin-catalog/hermes-call-ledger.yaml @@ -2,39 +2,7 @@ name: hermes-call-ledger repo: https://github.com/skappafrost/hermes-call-ledger sha: c55671dd61becb30a8b4d5e53cba9926938fb299 description: >- - Per-call cost ledger for Hermes Desktop, one route with seven tabs. Every model call Hermes makes is - recorded from the observer hooks (provider, model, tokens, duration, outcome), then paired with the - charge the billing provider actually took, so each row says whether its money came from the local log, - from the invoice, or from a match of the two — and a day's total is the sum of real charges rather than - a rate applied afterwards. English or Vietnamese through a plugin-scoped setting; dong or dollars. - Works with no billing account at all: every call still lands, priced by Hermes' own estimate where the - price book knows the model. Disclosure — the three API-call hooks see per-call metadata for every - profile in the install (session id, platform, task, provider, model, token counts, duration, finish - reason, context length) and never a prompt, response or tool-argument text. Writes one SQLite ledger at - plugin-data/call-ledger/calls.sqlite under the install root, shared by the profile homes so one page - shows all of them, plus an FX cache at plugin-data/call-ledger/usd-vnd.json in the active home; no other - path is written. Disclosure — network is GET-only, to three endpoints readable in the source: - https://vilao.ai/api/v2 (wallet balance, per-request usage ledger, consumer keys) against the account - whose token you configure, https://vilao.ai/api/v1/llm/marketplace/models fetched with no credential - attached because that page asks for none, and https://open.er-api.com/v6/latest/USD for the dollar rate. - VILAO_PAT is read through Hermes' own secret scope, attached as an Authorization header only after the - request host has been checked against the console's own two hosts, never placed in a URL or query - string, never returned by a route, and never written to config.yaml (the settings route drops the key by - name, and it is declared type: secret so it lands in .env instead). vilao issues one full-scope token - per account including wallet writes, so this plugin restricts itself to reads by design and no write - endpoint is named anywhere in it. Disclosure — nothing runs in the plugin host between requests: there - is no daemon thread, no scheduled job and no self-triggered refresh, so while the page is closed the - plugin makes no call at all. While the page is open its twelve query hooks poll the plugin's own routes - on a 5-minute base interval, the price list at 30 times that with a 10-minute staleTime, and the billing - pull behind the Vilao view is rate-limited server-side to one per 45 seconds however fast the reader - changes filters. No self-updating code, no telemetry, no bundled or downloaded binaries. The desktop - half is one plain JavaScript file that stays inside the plugin SDK, taking four surfaces: one route, one - sidebar nav entry, one palette command and one keybinding (the last only when the running Desktop - exposes it). Derived from hermes-resetwatch (Adolanium, MIT) — this started as that listed plugin's - installed directory and was rewritten around a different data source: Hermes' own call hooks paired to - the reader's invoice, instead of probing vendor quota endpoints. Measured against their pinned commit - d460334, 35 of the 5,107 non-trivial code lines here coincide (0.7%), and they are imports, one-line - idioms and SDK registration scaffolding; their copyright is retained in LICENSE. + Per-call cost ledger for Hermes Desktop: every model call Hermes makes is recorded from the observer hooks (provider, model, tokens, duration, outcome) and paired with the charge the billing provider actually took; works with no billing account, priced by Hermes' own estimate where the price book knows the model. English or Vietnamese; dong or dollars. Disclosure — three observer hooks (post_api_request, post_auxiliary_call, api_request_error) record per-call metadata from every profile in the install (session id, platform, task, provider, model, token counts, duration, finish reason, context length; never prompt, response or tool-argument text) into one shared SQLite ledger at /plugin-data/call-ledger/calls.sqlite, and import this plugin's own older per-profile ledgers into it once. It caches the vilao.ai model list there and the USD-to-VND rate under the active profile's plugin-data/call-ledger. Network is GET-only: vilao.ai (wallet balance, per-request usage, consumer keys) with VILAO_PAT read through Hermes's secret scope (vilao issues one full-scope token per account, including wallet writes; this plugin only reads), the public vilao.ai model list with no credential, and open.er-api.com for the dollar rate. The first full billing pull pages back through up to ten years of the account's usage. Nothing runs while the Desktop page is closed. Derived from hermes-resetwatch (Adolanium, MIT). maintainer: skappafrost tier: community category: desktop