chore(catalog): hermes-call-ledger short pitch + reviewed disclosure

This commit is contained in:
teknium1 authored and Teknium committed 2026-10-13 03:43:37 -07:00
1 parent f1414b4aa8
commit 4aa53c06dc
1 file changed
+1 -33
+1 -33
View File
@@ -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 <install root>/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