mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-24 16:54:43 +00:00
Make the Python skin engine the single source of truth for a canonical theme shape consumed by every surface, so a skin authored in $HERMES_HOME/skins/*.yaml (by a user or by Hermes from a prompt) themes the CLI, TUI, and desktop GUI at once — the theme analogue of the plugin SDK. - @hermes/shared: canonical `HermesSkin` token shape + `SKIN_COLOR_TOKENS` enum, consumed by both TS surfaces (TUI `GatewaySkin` and desktop dedup onto it). - Desktop: `skinToDesktopTheme` resolver (skin → CSS-var palette, VS Code-style derive-from-seed) + `backend-sync` that registers backend skins into the theme registry (Appearance/Cmd-K/`/skin`) and applies on a real change. Seeds on gateway.ready (never stomps a persisted pick), applies on skin.changed and the post-turn `config.get skin` poll (catch-all for agent-edited config.yaml). - TUI: `fromSkin` now maps the status bar + `background` keys it was dropping. - Gateway: `config.get skin` also returns the full resolved palette (additive). - Skill: `hermes-themes` teaches the agent to author + activate a skin. Each surface keeps its own normalizing resolver (ansi for the TUI, CSS vars for the desktop, prompt_toolkit/Rich for the CLI).
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
export {
|
|
BILLING_REFUSAL_POLICY,
|
|
type BillingRecovery,
|
|
type BillingRefusalPolicy,
|
|
refusalPolicy
|
|
} from './billing-policy'
|
|
export type {
|
|
BillingAutoReload,
|
|
BillingCardInfo,
|
|
BillingChargeResponse,
|
|
BillingChargeStatusResponse,
|
|
BillingErrorPayload,
|
|
BillingMonthlyCap,
|
|
BillingMutationResponse,
|
|
BillingRefusalCode,
|
|
BillingStateResponse,
|
|
ChargeFailureReason,
|
|
KnownBillingRefusalCode,
|
|
KnownChargeFailureReason,
|
|
SubscriptionPreviewResponse,
|
|
SubscriptionStateResponse,
|
|
SubscriptionTierOption,
|
|
SubscriptionUpgradeResponse,
|
|
UsageBarData,
|
|
UsageModelData
|
|
} from './billing-types'
|
|
export {
|
|
driveChargeSettlement,
|
|
SETTLEMENT_MAX_RETRY_AFTER_MS,
|
|
SETTLEMENT_POLL_CAP_MS,
|
|
SETTLEMENT_POLL_INTERVAL_MS,
|
|
type SettlementDeps,
|
|
type SettlementOutcome
|
|
} from './charge-settlement'
|
|
export {
|
|
type ConnectionState,
|
|
type GatewayClientOptions,
|
|
type GatewayEvent,
|
|
type GatewayEventName,
|
|
type GatewayRequestId,
|
|
type JsonRpcFrame,
|
|
JsonRpcGatewayClient,
|
|
type WebSocketLike
|
|
} from './json-rpc-gateway'
|
|
export {
|
|
type HermesSkin,
|
|
SKIN_BRANDING_TOKENS,
|
|
SKIN_COLOR_TOKENS,
|
|
type SkinBranding,
|
|
type SkinBrandingToken,
|
|
type SkinColors,
|
|
type SkinColorToken
|
|
} from './skin'
|
|
export {
|
|
buildHermesWebSocketUrl,
|
|
type GatewayAuthMode,
|
|
GatewayReauthRequiredError,
|
|
type GatewayWsConnection,
|
|
type GatewayWsUrlResult,
|
|
type HermesWebSocketUrlOptions,
|
|
isGatewayReauthRequired,
|
|
resolveGatewayWsUrl,
|
|
type ResolveGatewayWsUrlDeps,
|
|
type WebSocketAuthParam
|
|
} from './websocket-url'
|