Sign In

@clervo/router

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@clervo/router - npm Package Compare versions

Comparing version
0.2.0
to
0.3.0
+65
dist/connect.d.ts
import { callFree, reconcileOperation, type PaidOutcome, type Quote } from './client.js';
import { type Diagnosis } from './doctor.js';
import { type SpendLimits } from './limits.js';
import { type AiModelCatalog, type Registry } from './registry.js';
import { type ConnectSurface } from './store.js';
import { type LocalUsage } from './usage.js';
import { type CreatedWallet, type WalletView } from './wallet.js';
import { type CommerceLockStatus } from './lock.js';
export interface ConnectOptions {
readonly env?: NodeJS.ProcessEnv;
readonly surface: ConnectSurface;
readonly autoPay?: boolean;
readonly fetch?: typeof fetch;
}
export interface ConnectStatus {
readonly surface: ConnectSurface;
readonly autoPay: boolean;
readonly wallet: WalletView | null;
readonly limits: SpendLimits;
readonly unreconciled: number;
readonly operations: number;
readonly usage: LocalUsage;
readonly commerceLock: CommerceLockStatus;
}
export interface ConnectExecuteOptions {
readonly paid?: boolean;
}
export type ConnectExecution = Readonly<{
status: 'completed';
funding: 'free' | 'paid';
idempotencyKey: string;
outcome: Awaited<ReturnType<typeof callFree>> | PaidOutcome;
}> | Readonly<{
status: 'payment_required';
funding: 'paid';
idempotencyKey: string;
quote: Quote;
}>;
export declare class ClervoConnect {
readonly env: NodeJS.ProcessEnv;
readonly surface: ConnectSurface;
readonly autoPay: boolean;
readonly fetchImpl: typeof fetch;
constructor(options: ConnectOptions);
registry(): Promise<Registry>;
models(): Promise<AiModelCatalog>;
quote(productId: string, body: Record<string, unknown>, idempotencyKey?: string): Promise<Quote>;
execute(productId: string, body: Record<string, unknown>, idempotencyKey?: string, options?: ConnectExecuteOptions): Promise<ConnectExecution>;
limits(): SpendLimits;
setLimits(values: {
readonly perOperationAtomic?: string;
readonly dailyAtomic?: string;
}): SpendLimits;
usage(): LocalUsage;
wallet(): WalletView | null;
createWallet(): CreatedWallet;
backupWallet(confirmSecretExposure: boolean): Readonly<{
wallet: WalletView;
recoveryPhrase: string;
}>;
restoreWallet(mnemonic: string): Promise<WalletView>;
status(): ConnectStatus;
doctor(): Promise<Diagnosis>;
reconcile(): Promise<readonly Awaited<ReturnType<typeof reconcileOperation>>[]>;
}
import { callAiFree, callFree, callPaid, newIdempotencyKey, reconcileOperation, requestQuote } from './client.js';
import { diagnose } from './doctor.js';
import { loadLimits, saveLimits } from './limits.js';
import { loadAiModelCatalog, loadRegistry } from './registry.js';
import { listOperations, unreconciledOperations } from './store.js';
import { localUsage } from './usage.js';
import { readWalletBalance } from './chain.js';
import { createWallet, loadWalletFile, replaceWallet, walletExists, walletView } from './wallet.js';
import { clearCommerceLockAfterReconciliation, commerceLockStatus } from './lock.js';
function assertExactModel(requested, outcome, catalog) {
const selected = catalog.models.find(({ id }) => id === requested);
if (selected === undefined || !selected.publicSellable)
throw new Error('model_unavailable');
if (selected.identityKind !== 'canonical')
return;
if (outcome.exactModelId !== requested || outcome.model !== requested)
throw new Error('canonical_model_substituted');
}
export class ClervoConnect {
env;
surface;
autoPay;
fetchImpl;
constructor(options) {
this.env = options.env ?? process.env;
this.surface = options.surface;
this.autoPay = options.autoPay === true;
this.fetchImpl = options.fetch ?? fetch;
}
registry() {
return loadRegistry({ env: this.env, fetchImpl: this.fetchImpl });
}
models() {
return loadAiModelCatalog({ env: this.env, fetchImpl: this.fetchImpl });
}
async quote(productId, body, idempotencyKey = newIdempotencyKey()) {
return requestQuote({ registry: await this.registry(), productId, body, idempotencyKey, fetchImpl: this.fetchImpl });
}
async execute(productId, body, idempotencyKey = newIdempotencyKey(), options = {}) {
const registry = await this.registry();
if (productId === 'search.web' && options.paid !== true) {
const outcome = await callFree({ registry, productId, body, idempotencyKey, env: this.env, fetchImpl: this.fetchImpl, surface: this.surface });
return Object.freeze({ status: 'completed', funding: 'free', idempotencyKey, outcome });
}
let models;
if (productId.startsWith('ai.')) {
const requested = typeof body.model === 'string' ? body.model : '';
models = await this.models();
const selected = models.models.find(({ id }) => id === requested);
if (selected === undefined || !selected.publicSellable || !selected.productIds.includes(productId))
throw new Error('model_unavailable');
if (selected.billingMode === 'free') {
const outcome = await callAiFree({ registry, body, idempotencyKey, env: this.env, fetchImpl: this.fetchImpl, surface: this.surface });
assertExactModel(requested, outcome.result, models);
return Object.freeze({ status: 'completed', funding: 'free', idempotencyKey, outcome });
}
}
if (!this.autoPay) {
return Object.freeze({ status: 'payment_required', funding: 'paid', idempotencyKey, quote: await requestQuote({ registry, productId, body, idempotencyKey, fetchImpl: this.fetchImpl }) });
}
const outcome = await callPaid({ registry, productId, body, idempotencyKey, env: this.env, fetchImpl: this.fetchImpl, surface: this.surface, approve: () => true });
if (models !== undefined && typeof body.model === 'string')
assertExactModel(body.model, outcome.result, models);
return Object.freeze({ status: 'completed', funding: 'paid', idempotencyKey, outcome });
}
limits() { return loadLimits(this.env); }
setLimits(values) {
return saveLimits(values, this.env);
}
usage() { return localUsage(this.env); }
wallet() {
if (!walletExists(this.env))
return null;
const loaded = loadWalletFile(this.env);
return walletView(loaded.file, loaded.path);
}
createWallet() { return createWallet({}, this.env); }
backupWallet(confirmSecretExposure) {
if (confirmSecretExposure !== true)
throw new Error('wallet_backup_confirmation_required');
const loaded = loadWalletFile(this.env);
return Object.freeze({ wallet: walletView(loaded.file, loaded.path), recoveryPhrase: loaded.file.mnemonic });
}
async restoreWallet(mnemonic) {
let outgoingIsEmpty = true;
if (walletExists(this.env)) {
const loaded = loadWalletFile(this.env);
const balance = await readWalletBalance({ address: loaded.file.address, env: this.env });
outgoingIsEmpty = BigInt(balance.amountAtomic) === 0n && BigInt(balance.nativeWei) === 0n;
}
return replaceWallet({ mnemonic, outgoingIsEmpty }, this.env);
}
status() {
return Object.freeze({
surface: this.surface,
autoPay: this.autoPay,
wallet: this.wallet(),
limits: this.limits(),
unreconciled: unreconciledOperations(this.env).length,
operations: listOperations(this.env).length,
usage: this.usage(),
commerceLock: commerceLockStatus(this.env),
});
}
doctor() { return diagnose({ env: this.env, fetchImpl: this.fetchImpl }); }
async reconcile() {
const registry = await this.registry();
const results = [];
for (const record of unreconciledOperations(this.env)) {
results.push(await reconcileOperation({ registry, record, env: this.env, fetchImpl: this.fetchImpl }));
}
clearCommerceLockAfterReconciliation(this.env);
return Object.freeze(results);
}
}
//# sourceMappingURL=connect.js.map
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAgC,MAAM,aAAa,CAAC;AAChJ,OAAO,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAsC,MAAM,eAAe,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAuB,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAuC,UAAU,EAAE,MAAM,aAAa,CAAC;AACzI,OAAO,EAAE,oCAAoC,EAAE,kBAAkB,EAA2B,MAAM,WAAW,CAAC;AA0B9G,SAAS,gBAAgB,CAAC,SAAiB,EAAE,OAAgC,EAAE,OAAuB;IACpG,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACnE,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC7F,IAAI,QAAQ,CAAC,YAAY,KAAK,WAAW;QAAE,OAAO;IAClD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,OAAO,aAAa;IACf,GAAG,CAAoB;IACvB,OAAO,CAAiB;IACxB,OAAO,CAAU;IACjB,SAAS,CAAe;IAEjC,YAAY,OAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM;QACJ,OAAO,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,IAA6B,EAAE,cAAc,GAAG,iBAAiB,EAAE;QAChG,OAAO,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACvH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAA6B,EAAE,cAAc,GAAG,iBAAiB,EAAE,EAAE,OAAO,GAA0B,EAAE;QACvI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,SAAS,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/I,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,MAAkC,CAAC;QACvC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAClE,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACzI,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtI,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7L,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpK,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,KAAkB,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEtD,SAAS,CAAC,MAA+E;QACvF,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,KAAiB,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM;QACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,KAAoB,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpE,YAAY,CAAC,qBAA8B;QACzC,IAAI,qBAAqB,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACzF,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5F,CAAC;QACD,OAAO,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,YAAY,EAAE,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;YACrD,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;YAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACnB,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAyB,OAAO,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/F,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACzG,CAAC;QACD,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF"}
export interface CommerceLockStatus {
readonly exists: boolean;
readonly ownerAlive: boolean | null;
readonly createdAt: string | null;
}
export declare function commerceLockStatus(env?: NodeJS.ProcessEnv): CommerceLockStatus;
export declare function acquireCommerceLock(env?: NodeJS.ProcessEnv): () => void;
export declare function clearCommerceLockAfterReconciliation(env?: NodeJS.ProcessEnv): boolean;
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
import { hostname } from 'node:os';
import { randomUUID } from 'node:crypto';
import { clervoPaths } from './paths.js';
import { unreconciledOperations } from './store.js';
function readLock(env) {
try {
const value = JSON.parse(readFileSync(clervoPaths(env).commerceLock, 'utf8'));
if (typeof value.token !== 'string' || !Number.isSafeInteger(value.pid) || typeof value.host !== 'string' || typeof value.createdAt !== 'string')
return undefined;
return value;
}
catch {
return undefined;
}
}
function processAlive(pid) {
try {
process.kill(pid, 0);
return true;
}
catch {
return false;
}
}
export function commerceLockStatus(env = process.env) {
const path = clervoPaths(env).commerceLock;
if (!existsSync(path))
return Object.freeze({ exists: false, ownerAlive: null, createdAt: null });
const record = readLock(env);
return Object.freeze({ exists: true, ownerAlive: record === undefined || record.host !== hostname() ? null : processAlive(record.pid), createdAt: record?.createdAt ?? null });
}
export function acquireCommerceLock(env = process.env) {
const paths = clervoPaths(env);
mkdirSync(paths.home, { recursive: true, mode: 0o700 });
const record = { token: randomUUID(), pid: process.pid, host: hostname(), createdAt: new Date().toISOString() };
let descriptor;
try {
descriptor = openSync(paths.commerceLock, 'wx', 0o600);
}
catch {
throw Object.assign(new Error('another Clervo surface is reserving a payment; retry after it completes or run `clervo reconcile` if the process stopped'), { name: 'CommerceLockError', code: 'commerce_lock_busy' });
}
try {
writeFileSync(descriptor, `${JSON.stringify(record)}\n`, { encoding: 'utf8' });
}
finally {
closeSync(descriptor);
}
let released = false;
return () => {
if (released)
return;
released = true;
if (readLock(env)?.token !== record.token)
return;
try {
unlinkSync(paths.commerceLock);
}
catch { /* A missing lock is already released. */ }
};
}
export function clearCommerceLockAfterReconciliation(env = process.env) {
if (unreconciledOperations(env).length > 0)
return false;
const status = commerceLockStatus(env);
if (!status.exists)
return true;
if (status.ownerAlive !== false)
return false;
try {
unlinkSync(clervoPaths(env).commerceLock);
return true;
}
catch {
return false;
}
}
//# sourceMappingURL=lock.js.map
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"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"}
import { type Server } from 'node:http';
export interface ProxyOptions {
readonly host?: string;
readonly port?: number;
readonly autoPay?: boolean;
readonly env?: NodeJS.ProcessEnv;
readonly fetch?: typeof fetch;
}
export interface RunningProxy {
readonly host: string;
readonly port: number;
readonly baseUrl: string;
readonly autoPay: boolean;
readonly server: Server;
close(): Promise<void>;
}
export declare function startOpenAiProxy(options?: ProxyOptions): Promise<RunningProxy>;
import { createServer } from 'node:http';
import { ClervoConnect } from './connect.js';
import { formatUsdc } from './chain.js';
import { RouterError } from './client.js';
const MAXIMUM_BODY_BYTES = 4_194_304;
function json(response, status, value, headers = {}) {
const body = JSON.stringify(value);
response.writeHead(status, { 'content-type': 'application/json; charset=utf-8', 'content-length': String(Buffer.byteLength(body)), 'cache-control': 'no-store', ...headers });
response.end(body);
}
async function body(request) {
const chunks = [];
let size = 0;
for await (const chunk of request) {
const value = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
size += value.byteLength;
if (size > MAXIMUM_BODY_BYTES)
throw new Error('request_too_large');
chunks.push(value);
}
const parsed = JSON.parse(Buffer.concat(chunks).toString('utf8'));
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
throw new Error('invalid_request');
return parsed;
}
function outputOf(execution) {
if (execution.status !== 'completed')
throw new Error('payment_required');
const raw = execution.outcome.result;
const normalized = raw.result ?? raw;
const output = normalized.output ?? normalized;
const content = typeof output.content === 'string' ? output.content : typeof output.text === 'string' ? output.text : JSON.stringify(output);
return { content, raw };
}
function metadata(execution) {
if (execution.status !== 'completed')
return { idempotencyKey: execution.idempotencyKey, quote: execution.quote };
const result = execution.outcome.result;
const receipt = result.receipt;
return {
idempotencyKey: execution.idempotencyKey,
operationId: execution.outcome.operationId,
funding: execution.funding,
model: result.model,
exactModelId: result.exactModelId,
route: result.route ?? result.result?.route,
receiptId: receipt?.receiptId,
settlement: receipt?.settlement,
replayed: execution.outcome.replayed,
};
}
function responseHeaders(execution) {
const details = metadata(execution);
const headers = { 'x-clervo-idempotency-key': execution.idempotencyKey };
for (const [field, header] of [['operationId', 'x-clervo-operation-id'], ['exactModelId', 'x-clervo-model'], ['receiptId', 'x-clervo-receipt-id']]) {
if (typeof details[field] === 'string')
headers[header] = details[field];
}
return headers;
}
function openAiError(response, status, code, message, extra = {}) {
json(response, status, { error: { message, type: code, code, ...extra } });
}
export async function startOpenAiProxy(options = {}) {
const host = options.host ?? '127.0.0.1';
if (!['127.0.0.1', '::1', 'localhost'].includes(host))
throw new Error('proxy_host_must_be_loopback');
const connect = new ClervoConnect({ surface: 'openai', autoPay: options.autoPay === true, ...(options.env === undefined ? {} : { env: options.env }), ...(options.fetch === undefined ? {} : { fetch: options.fetch }) });
const connectFor = (request) => {
const requested = request.headers['x-clervo-surface'];
const surface = requested === 'python' ? 'python' : 'openai';
return surface === 'openai' ? connect : new ClervoConnect({ surface, autoPay: options.autoPay === true, ...(options.env === undefined ? {} : { env: options.env }), ...(options.fetch === undefined ? {} : { fetch: options.fetch }) });
};
const server = createServer(async (request, response) => {
try {
const url = new URL(request.url ?? '/', `http://${host}`);
const localConnect = connectFor(request);
if (request.method === 'GET' && url.pathname === '/v1/models') {
const models = await connect.models();
json(response, 200, { object: 'list', data: models.models.map((model) => ({ id: model.id, object: 'model', created: 0, owned_by: 'clervo', clervo: model })), clervo: { catalogRevision: models.revision, inventory: models.inventory } });
return;
}
if (request.method === 'GET' && url.pathname === '/clervo/status') {
json(response, 200, localConnect.status());
return;
}
if (request.method === 'GET' && url.pathname === '/clervo/usage') {
json(response, 200, localConnect.usage());
return;
}
if (request.method === 'GET' && url.pathname === '/clervo/limits') {
json(response, 200, localConnect.limits());
return;
}
if (request.method === 'GET' && url.pathname === '/clervo/doctor') {
json(response, 200, await localConnect.doctor());
return;
}
if (request.method === 'GET' && url.pathname === '/clervo/catalog') {
json(response, 200, await localConnect.registry());
return;
}
if (request.method === 'POST' && url.pathname === '/clervo/limits') {
const value = await body(request);
json(response, 200, localConnect.setLimits({ ...(typeof value.perOperationAtomic === 'string' ? { perOperationAtomic: value.perOperationAtomic } : {}), ...(typeof value.dailyAtomic === 'string' ? { dailyAtomic: value.dailyAtomic } : {}) }));
return;
}
if (request.method === 'POST' && url.pathname === '/clervo/reconcile') {
json(response, 200, { results: await localConnect.reconcile() });
return;
}
if (request.method === 'POST' && url.pathname === '/clervo/wallet/create') {
const created = localConnect.createWallet();
json(response, 200, { wallet: created.view, recoveryPhrase: created.mnemonic });
return;
}
if (request.method === 'POST' && url.pathname === '/clervo/wallet/backup') {
const value = await body(request);
json(response, 200, localConnect.backupWallet(value.confirm === true));
return;
}
if (request.method === 'POST' && url.pathname === '/clervo/wallet/restore') {
const value = await body(request);
if (typeof value.recoveryPhrase !== 'string')
throw new Error('wallet_recovery_phrase_required');
json(response, 200, { wallet: await localConnect.restoreWallet(value.recoveryPhrase) });
return;
}
if (request.method === 'POST' && (url.pathname === '/clervo/quote' || url.pathname === '/clervo/execute')) {
const value = await body(request);
if (typeof value.productId !== 'string' || value.body === null || typeof value.body !== 'object' || Array.isArray(value.body))
throw new Error('invalid_connect_request');
const key = typeof value.idempotencyKey === 'string' ? value.idempotencyKey : undefined;
const result = url.pathname.endsWith('/quote')
? await localConnect.quote(value.productId, value.body, key)
: await localConnect.execute(value.productId, value.body, key, { paid: value.paid === true });
json(response, 200, result);
return;
}
if (request.method === 'POST' && url.pathname === '/v1/embeddings') {
const value = await body(request);
if (typeof value.model !== 'string' || !(typeof value.input === 'string' || Array.isArray(value.input) && value.input.every((entry) => typeof entry === 'string')))
throw new Error('invalid_embedding_request');
const inputs = typeof value.input === 'string' ? [value.input] : value.input;
const idempotencyKey = String(request.headers['idempotency-key'] ?? request.headers['x-idempotency-key'] ?? `openai_${crypto.randomUUID().replaceAll('-', '')}`);
const execution = await connect.execute('ai.embed', { model: value.model, input: { kind: 'embedding', inputs, ...(typeof value.dimensions === 'number' ? { dimensions: value.dimensions } : {}) } }, idempotencyKey);
if (execution.status === 'payment_required') {
openAiError(response, 402, 'payment_required', `Clervo auto-pay is disabled. Quote: ${formatUsdc(execution.quote.amountAtomic)} USDC. Restart with --auto-pay after reviewing local limits.`, { clervo: metadata(execution) });
return;
}
const raw = execution.outcome.result;
const normalized = raw.result ?? raw;
const output = normalized.output ?? normalized;
const vectors = Array.isArray(output.embeddings) ? output.embeddings : [];
if (!vectors.every((vector) => Array.isArray(vector) && vector.every((item) => typeof item === 'number')))
throw new Error('embedding_result_contract_mismatch');
json(response, 200, { object: 'list', data: vectors.map((embedding, index) => ({ object: 'embedding', embedding, index })), model: typeof raw.exactModelId === 'string' ? raw.exactModelId : value.model, usage: normalized.usage ?? null, clervo: metadata(execution) }, responseHeaders(execution));
return;
}
if (request.method === 'POST' && url.pathname === '/v1/chat/completions') {
const value = await body(request);
if (typeof value.model !== 'string' || !Array.isArray(value.messages))
throw new Error('invalid_chat_request');
const idempotencyKey = String(request.headers['idempotency-key'] ?? request.headers['x-idempotency-key'] ?? `openai_${crypto.randomUUID().replaceAll('-', '')}`);
const execution = await connect.execute('ai.chat', {
model: value.model,
input: { kind: 'chat', messages: value.messages, responseFormat: 'text', stream: false, ...(value.temperature === undefined ? {} : { temperature: value.temperature }) },
...(typeof value.max_tokens === 'number' ? { maximumOutputTokens: value.max_tokens } : {}),
}, idempotencyKey);
if (execution.status === 'payment_required') {
openAiError(response, 402, 'payment_required', `Clervo auto-pay is disabled. Quote: ${formatUsdc(execution.quote.amountAtomic)} USDC. Restart with --auto-pay after reviewing local limits.`, { clervo: metadata(execution) });
return;
}
const { content, raw } = outputOf(execution);
const actualModel = typeof raw.exactModelId === 'string' ? raw.exactModelId : value.model;
const created = Math.floor(Date.now() / 1000);
const id = `chatcmpl_${execution.outcome.operationId}`;
const details = metadata(execution);
if (value.stream === true) {
response.writeHead(200, { 'content-type': 'text/event-stream; charset=utf-8', 'cache-control': 'no-cache, no-store', connection: 'keep-alive', ...responseHeaders(execution) });
response.write(`data: ${JSON.stringify({ id, object: 'chat.completion.chunk', created, model: actualModel, choices: [{ index: 0, delta: { role: 'assistant' }, finish_reason: null }], clervo: details })}\n\n`);
response.write(`data: ${JSON.stringify({ id, object: 'chat.completion.chunk', created, model: actualModel, choices: [{ index: 0, delta: { content }, finish_reason: null }] })}\n\n`);
response.write(`data: ${JSON.stringify({ id, object: 'chat.completion.chunk', created, model: actualModel, choices: [{ index: 0, delta: {}, finish_reason: 'stop' }] })}\n\n`);
response.end('data: [DONE]\n\n');
return;
}
json(response, 200, { id, object: 'chat.completion', created, model: actualModel, choices: [{ index: 0, message: { role: 'assistant', content }, finish_reason: 'stop' }], usage: raw.result?.usage ?? null, clervo: details }, responseHeaders(execution));
return;
}
openAiError(response, 404, 'not_found', 'The local Clervo proxy does not implement this endpoint.');
}
catch (error) {
const localCode = error instanceof RouterError || error instanceof Error && typeof error.code === 'string'
? error.code
: undefined;
if (localCode !== undefined) {
const status = localCode === 'payment_approval_required' ? 402 : localCode === 'settlement_unknown' || localCode === 'unreconciled_operation_blocks_spend' ? 409 : 400;
openAiError(response, status, localCode, error instanceof Error ? error.message : localCode);
return;
}
const message = error instanceof Error ? error.message : 'proxy request failed';
const clientError = new Set(['invalid_request', 'invalid_chat_request', 'invalid_embedding_request', 'invalid_connect_request', 'request_too_large', 'wallet_recovery_phrase_required']).has(message);
openAiError(response, clientError ? 400 : 500, clientError ? message : 'clervo_proxy_error', message);
}
});
const port = options.port ?? 8402;
await new Promise((resolve, reject) => { server.once('error', reject); server.listen(port, host, () => { server.off('error', reject); resolve(); }); });
const address = server.address();
const boundPort = address !== null && typeof address === 'object' ? address.port : port;
return Object.freeze({ host, port: boundPort, baseUrl: `http://${host}:${boundPort}/v1`, autoPay: connect.autoPay, server, close: () => new Promise((resolve, reject) => server.close((error) => error === undefined ? resolve() : reject(error))) });
}
//# sourceMappingURL=proxy.js.map
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
export interface UsageBucket {
readonly calls: number;
readonly free: number;
readonly paid: number;
readonly authorizedAtomic: string;
readonly settledAtomic: string;
readonly successful: number;
readonly failed: number;
readonly refused: number;
readonly replayed: number;
}
export interface LocalUsage {
readonly generatedAt: string;
readonly calls: number;
readonly free: number;
readonly paid: number;
readonly amountAuthorizedAtomic: string;
readonly amountAuthorized: string;
readonly amountSettledAtomic: string;
readonly amountSettled: string;
readonly currentDaySpendAtomic: string;
readonly currentDaySpend: string;
readonly unreconciledCount: number;
readonly bySurface: Readonly<Record<string, UsageBucket>>;
readonly byFamily: Readonly<Record<string, UsageBucket>>;
readonly byProduct: Readonly<Record<string, UsageBucket>>;
readonly byModelOrRoute: Readonly<Record<string, UsageBucket>>;
}
export declare function localUsage(env?: NodeJS.ProcessEnv, now?: () => string): LocalUsage;
import { formatUsdc } from './chain.js';
import { listOperations, readReceipt, spentTodayAtomic, unreconciledOperations } from './store.js';
function empty() {
return { calls: 0, free: 0, paid: 0, authorized: 0n, settled: 0n, successful: 0, failed: 0, refused: 0, replayed: 0 };
}
function familyFor(productId) {
const family = productId.split('.', 1)[0] ?? 'unknown';
return family === 'crypto' ? 'crypto_intelligence' : family;
}
function modelOrRouteFor(record, env) {
const model = record.requestBody.model;
if (typeof model === 'string' && model.length > 0)
return model;
if (record.receiptId !== null) {
const receipt = readReceipt(record.receiptId, env);
const route = receipt?.route ?? receipt?.model ?? receipt?.exactModelId;
if (typeof route === 'string' && route.length > 0)
return route;
const provenance = Array.isArray(receipt?.provenance) ? receipt.provenance : [];
const routeId = provenance.find((entry) => typeof entry.routeId === 'string')?.routeId;
if (typeof routeId === 'string')
return routeId;
}
return 'not_applicable';
}
function add(bucket, record) {
bucket.calls += 1;
if (record.state === 'free')
bucket.free += 1;
else
bucket.paid += 1;
if (record.authorizationCreated === true || record.authorizationCreated === undefined && (record.state === 'authorizing' || record.state === 'unknown' || record.state === 'settled')) {
bucket.authorized += BigInt(record.quotedAtomic ?? '0');
}
if (record.state === 'settled')
bucket.settled += BigInt(record.chargedAtomic ?? '0');
if (record.state === 'settled' || record.state === 'free')
bucket.successful += 1;
else
bucket.failed += 1;
if (record.state === 'refused')
bucket.refused += 1;
if (record.replayed)
bucket.replayed += 1;
}
function frozen(bucket) {
return Object.freeze({
calls: bucket.calls,
free: bucket.free,
paid: bucket.paid,
authorizedAtomic: bucket.authorized.toString(),
settledAtomic: bucket.settled.toString(),
successful: bucket.successful,
failed: bucket.failed,
refused: bucket.refused,
replayed: bucket.replayed,
});
}
function project(map) {
return Object.freeze(Object.fromEntries([...map.entries()].sort(([left], [right]) => left.localeCompare(right)).map(([key, value]) => [key, frozen(value)])));
}
export function localUsage(env = process.env, now = () => new Date().toISOString()) {
const records = listOperations(env);
const total = empty();
const surface = new Map();
const family = new Map();
const product = new Map();
const modelOrRoute = new Map();
for (const record of records) {
const surfaceName = record.surface ?? 'unknown';
const familyName = familyFor(record.productId);
const routeName = modelOrRouteFor(record, env);
for (const [map, key] of [[surface, surfaceName], [family, familyName], [product, record.productId], [modelOrRoute, routeName]]) {
const bucket = map.get(key) ?? empty();
add(bucket, record);
map.set(key, bucket);
}
add(total, record);
}
const day = spentTodayAtomic(env);
return Object.freeze({
generatedAt: now(),
calls: total.calls,
free: total.free,
paid: total.paid,
amountAuthorizedAtomic: total.authorized.toString(),
amountAuthorized: formatUsdc(total.authorized.toString()),
amountSettledAtomic: total.settled.toString(),
amountSettled: formatUsdc(total.settled.toString()),
currentDaySpendAtomic: day,
currentDaySpend: formatUsdc(day),
unreconciledCount: unreconciledOperations(env).length,
bySurface: project(surface),
byFamily: project(family),
byProduct: project(product),
byModelOrRoute: project(modelOrRoute),
});
}
//# sourceMappingURL=usage.js.map
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAA6C,MAAM,YAAY,CAAC;AA4C9I,SAAS,KAAK;IACZ,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACxH,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACvD,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9D,CAAC;AAED,SAAS,eAAe,CAAC,MAAuB,EAAE,GAAsB;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,YAAY,CAAC;QACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAA4C,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,OAAO,CAAC;QACvF,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;IAClD,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,GAAG,CAAC,MAAqB,EAAE,MAAuB;IACzD,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAClB,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;;QACzC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IACtB,IAAI,MAAM,CAAC,oBAAoB,KAAK,IAAI,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,aAAa,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;QACtL,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;;QAC7E,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,MAAM,CAAC,MAAqB;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC9C,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QACxC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,GAA+B;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChK,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACnG,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IACtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAmB,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;QAChE,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAU,EAAE,CAAC;YACzI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,GAAG,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;QACnD,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzD,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC7C,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnD,qBAAqB,EAAE,GAAG;QAC1B,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC;QAChC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,MAAM;QACrD,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;QAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;QAC3B,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC;KACtC,CAAC,CAAC;AACL,CAAC"}
+53
-6

@@ -12,2 +12,5 @@ #!/usr/bin/env node

import { createWallet, loadWalletFile, replaceWallet, walletExists } from './wallet.js';
import { localUsage } from './usage.js';
import { startOpenAiProxy } from './proxy.js';
import { clearCommerceLockAfterReconciliation, commerceLockStatus } from './lock.js';
function parseArgs(argv) {

@@ -66,2 +69,4 @@ const flags = new Map();

clervo doctor Check this machine end to end.
clervo usage Durable local usage from operations and receipts.
clervo proxy [--port 8402] OpenAI-compatible localhost proxy.

@@ -78,2 +83,3 @@ clervo wallet create Create the dedicated payment wallet.

Global flags: --json, --key <idempotency-key>, --yes, --product <id>
Proxy payment: --auto-pay (explicit opt-in; local spend limits always apply)
Environment: CLERVO_HOME, CLERVO_API_ORIGIN, CLERVO_BASE_RPC_URL`;

@@ -151,3 +157,3 @@ async function confirm(question, assumeYes) {

}
const outcome = await callFree({ registry, productId: 'search.web', body: searchBody(query, args) });
const outcome = await callFree({ registry, productId: 'search.web', body: searchBody(query, args), surface: 'cli' });
if (wantsJson(args)) {

@@ -217,2 +223,3 @@ printJson(outcome.result);

const rest = { ...args, rest: args.rest.slice(1) };
const key = flagString(args, 'key') ?? newIdempotencyKey();
const quote = await requestQuote({

@@ -222,3 +229,3 @@ registry,

body: requestBodyFor(productId, rest),
idempotencyKey: flagString(args, 'key') ?? newIdempotencyKey(),
idempotencyKey: key,
});

@@ -229,3 +236,3 @@ if (wantsJson(args)) {

network: quote.network, payTo: quote.payTo, priceVersion: quote.priceVersion, expiresAt: quote.expiresAt,
quoteId: quote.quoteId, operationId: quote.operationId, requestHash: quote.requestHash,
quoteId: quote.quoteId, operationId: quote.operationId, requestHash: quote.requestHash, idempotencyKey: quote.idempotencyKey,
});

@@ -236,4 +243,5 @@ return 0;

printQuote(quote);
print(` key ${quote.idempotencyKey}`);
print();
print('Pay it with the same request: clervo run ' + quote.productId + ' ... --key <key>');
print(`Pay it with the same request: clervo run ${quote.productId} ... --key ${quote.idempotencyKey}`);
return 0;

@@ -256,3 +264,3 @@ }

if (model.billingMode === 'free') {
const outcome = await callAiFree({ registry, body, ...(flagString(args, 'key') === undefined ? {} : { idempotencyKey: flagString(args, 'key') }) });
const outcome = await callAiFree({ registry, body, surface: 'cli', ...(flagString(args, 'key') === undefined ? {} : { idempotencyKey: flagString(args, 'key') }) });
if (wantsJson(args))

@@ -275,2 +283,3 @@ printJson(outcome.result);

...(flagString(args, 'key') === undefined ? {} : { idempotencyKey: flagString(args, 'key') }),
surface: 'cli',
async approve(quote, limits) {

@@ -360,6 +369,41 @@ if (wantsJson(args) || assumeYes)

}
function commandUsage(args) {
const usage = localUsage();
if (wantsJson(args)) {
printJson(usage);
return 0;
}
print(`${usage.calls} call(s): ${usage.free} free, ${usage.paid} paid`);
print(`authorized ${usage.amountAuthorized} USDC`);
print(`settled ${usage.amountSettled} USDC`);
print(`today ${usage.currentDaySpend} USDC`);
print(`unresolved ${usage.unreconciledCount}`);
print();
for (const [surface, bucket] of Object.entries(usage.bySurface)) {
print(` ${surface.padEnd(12)} ${String(bucket.calls).padStart(4)} calls ${formatUsdc(bucket.settledAtomic)} USDC settled`);
}
return 0;
}
async function commandProxy(args) {
const port = Number.parseInt(flagString(args, 'port') ?? '8402', 10);
if (!Number.isSafeInteger(port) || port < 0 || port > 65535)
throw new RouterError('proxy_port_invalid');
const running = await startOpenAiProxy({ port, autoPay: args.flags.get('auto-pay') === true || args.flags.get('auto-pay') === 'true' });
if (wantsJson(args))
printJson({ baseUrl: running.baseUrl, autoPay: running.autoPay, wallet: walletExists() ? loadWalletFile().file.address : null });
else {
print(`Clervo OpenAI proxy listening at ${running.baseUrl}`);
print(`auto-pay ${running.autoPay ? 'ENABLED (bounded by local limits)' : 'disabled'}`);
print('Use any placeholder API key required by your OpenAI client; it is not sent to Clervo.');
}
return 0;
}
async function commandReconcile(args, registry) {
const open = unreconciledOperations();
if (open.length < 1) {
print('Nothing to reconcile. No operation is in an unknown settlement state.');
const cleared = clearCommerceLockAfterReconciliation();
const lock = commerceLockStatus();
print(cleared || !lock.exists
? 'Nothing to reconcile. No operation is in an unknown settlement state.'
: 'No unknown settlement record exists, but another live Clervo process is reserving a payment. Wait for it to finish.');
return 0;

@@ -384,2 +428,3 @@ }

}
clearCommerceLockAfterReconciliation();
print('All settlements resolved. Paid calls are unblocked.');

@@ -598,2 +643,4 @@ return 0;

case 'doctor': return commandDoctor(args);
case 'usage': return commandUsage(args);
case 'proxy': return commandProxy(args);
case 'wallet': return commandWallet(args);

@@ -600,0 +647,0 @@ case 'limits': return commandLimits(args);

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
import { type SpendLimits } from './limits.js';
import { type OperationRecord } from './store.js';
import { type ConnectSurface, type OperationRecord } from './store.js';
import { type Registry } from './registry.js';

@@ -18,3 +18,3 @@ export declare class RouterError extends Error {

}
export declare function callAiFree({ registry, body, idempotencyKey, env, fetchImpl, timeoutMs }: {
export declare function callAiFree({ registry, body, idempotencyKey, env, fetchImpl, timeoutMs, surface }: {
registry: Registry;

@@ -26,4 +26,5 @@ body: Record<string, unknown>;

timeoutMs?: number;
surface?: ConnectSurface;
}): Promise<FreeOutcome>;
export declare function callFree({ registry, productId, body, env, fetchImpl, idempotencyKey, timeoutMs, }: {
export declare function callFree({ registry, productId, body, env, fetchImpl, idempotencyKey, timeoutMs, surface, }: {
registry: Registry;

@@ -36,4 +37,6 @@ productId: string;

timeoutMs?: number;
surface?: ConnectSurface;
}): Promise<FreeOutcome>;
export interface Quote {
readonly idempotencyKey: string;
readonly productId: string;

@@ -83,2 +86,3 @@ readonly resource: string;

readonly limits?: SpendLimits;
readonly surface?: ConnectSurface;
}

@@ -85,0 +89,0 @@ export declare function callPaid(options: PaidCallOptions): Promise<PaidOutcome>;

@@ -11,2 +11,3 @@ import { randomUUID } from 'node:crypto';

import { OPERATION_SCHEMA_VERSION } from './store.js';
import { acquireCommerceLock } from './lock.js';
const MAXIMUM_RESPONSE_BYTES = 8_388_608;

@@ -43,3 +44,3 @@ export class RouterError extends Error {

}
export async function callAiFree({ registry, body, idempotencyKey, env = process.env, fetchImpl = fetch, timeoutMs = 600_000 }) {
export async function callAiFree({ registry, body, idempotencyKey, env = process.env, fetchImpl = fetch, timeoutMs = 600_000, surface = 'unknown' }) {
const key = idempotencyKey === undefined ? newIdempotencyKey() : assertIdempotencyKey(idempotencyKey);

@@ -65,3 +66,3 @@ const resource = `${registry.origin}/v1/ai/execute`;

const completedAt = new Date().toISOString();
writeOperation({ schemaVersion: OPERATION_SCHEMA_VERSION, idempotencyKey: key, productId: 'ai.chat', resource, requestBodyHash: requestBodyHash(body), requestBody: body, state: 'free', startedAt: completedAt, completedAt, quotedAtomic: '0', chargedAtomic: '0', operationId: typeof value.operationId === 'string' ? value.operationId : null, receiptId: null, settlementReferenceHash: null, replayed: value.replayed === true, reason: null }, env);
writeOperation({ schemaVersion: OPERATION_SCHEMA_VERSION, idempotencyKey: key, productId: typeof value.productId === 'string' ? value.productId : 'ai.chat', resource, requestBodyHash: requestBodyHash(body), requestBody: body, state: 'free', startedAt: completedAt, completedAt, quotedAtomic: '0', chargedAtomic: '0', operationId: typeof value.operationId === 'string' ? value.operationId : null, receiptId: null, settlementReferenceHash: null, replayed: value.replayed === true, reason: null, surface }, env);
return Object.freeze({ funding: 'free', productId: 'ai.chat', operationId: typeof value.operationId === 'string' ? value.operationId : '', requestHash: typeof value.requestHash === 'string' ? value.requestHash : '', result: value, replayed: value.replayed === true });

@@ -76,3 +77,3 @@ }

*/
export async function callFree({ registry, productId, body, env = process.env, fetchImpl = fetch, idempotencyKey, timeoutMs = 60_000, }) {
export async function callFree({ registry, productId, body, env = process.env, fetchImpl = fetch, idempotencyKey, timeoutMs = 60_000, surface = 'unknown', }) {
const capability = capabilityFor(registry, productId);

@@ -128,2 +129,4 @@ if (!capability.freeCallable || capability.freeRoute === null) {

reason: null,
surface,
authorizationCreated: false,
}, env);

@@ -139,3 +142,3 @@ return Object.freeze({

}
function readQuote(productId, resource, challenge) {
function readQuote(productId, resource, idempotencyKey, challenge) {
const accepts = Array.isArray(challenge.accepts) ? challenge.accepts : [];

@@ -151,2 +154,3 @@ const accepted = accepts[0];

return Object.freeze({
idempotencyKey,
productId,

@@ -210,3 +214,3 @@ resource,

throw new RouterError(typeof value.code === 'string' ? value.code : `http_${response.status}`, typeof value.detail === 'string' ? value.detail : `expected a 402 quote and got ${response.status}`, value);
return readQuote(productId, resource, value);
return readQuote(productId, resource, idempotencyKey, value);
}

@@ -281,3 +285,3 @@ /*

export async function callPaid(options) {
const { registry, productId, body, env = process.env, fetchImpl = fetch, timeoutMs = 90_000, approve, } = options;
const { registry, productId, body, env = process.env, fetchImpl = fetch, timeoutMs = 90_000, approve, surface = 'unknown', } = options;
const key = options.idempotencyKey === undefined ? newIdempotencyKey() : assertIdempotencyKey(options.idempotencyKey);

@@ -292,33 +296,57 @@ const bodyHash = requestBodyHash(body);

}
/* Step 1. Includes any `authorizing` record for this very key. */
assertNothingUnreconciled(env);
const limits = options.limits ?? loadLimits(env);
const quote = await requestQuote({ registry, productId, body, idempotencyKey: key, fetchImpl, timeoutMs });
assertWithinLimits({ limits, quotedAtomic: quote.amountAtomic, spentTodayAtomic: spentTodayAtomic(env) });
if (approve !== undefined && (await approve(quote, limits)) !== true) {
throw new RouterError('payment_not_approved', 'the payment was not approved, so nothing was signed or spent');
}
const account = loadWalletAccount(env);
/* The reservation is serialized across processes. Without this small local
* lock, two surfaces could both observe the same remaining daily budget and
* sign before either operation became visible to the other. The lock is
* released as soon as `authorizing` is durable; that record then becomes the
* global fail-closed barrier while the payment is in flight. */
const releaseCommerceLock = acquireCommerceLock(env);
const reservation = await (async () => {
try {
const current = readOperation(key, env);
if (current !== undefined && current.requestBodyHash !== bodyHash)
throw new RouterError('idempotency_key_reused_with_different_body', `idempotency key ${key} was already used for a different request body — use a new key`);
if (current?.state === 'settled')
return Object.freeze({ replay: true });
/* Step 1. Includes any `authorizing` record for this very key. */
assertNothingUnreconciled(env);
const limits = options.limits ?? loadLimits(env);
const quote = await requestQuote({ registry, productId, body, idempotencyKey: key, fetchImpl, timeoutMs });
assertWithinLimits({ limits, quotedAtomic: quote.amountAtomic, spentTodayAtomic: spentTodayAtomic(env) });
if (approve === undefined)
throw new RouterError('payment_approval_required', 'automatic payment is disabled; explicitly opt in and supply an approval decision');
if ((await approve(quote, limits)) !== true)
throw new RouterError('payment_not_approved', 'the payment was not approved, so nothing was signed or spent');
const account = loadWalletAccount(env);
const startedAt = new Date().toISOString();
const record = {
schemaVersion: OPERATION_SCHEMA_VERSION,
idempotencyKey: key,
productId,
resource: quote.resource,
requestBodyHash: bodyHash,
requestBody: body,
state: 'authorizing',
startedAt,
completedAt: null,
quotedAtomic: quote.amountAtomic,
chargedAtomic: null,
operationId: quote.operationId,
receiptId: null,
settlementReferenceHash: null,
replayed: false,
reason: null,
surface,
};
writeOperation(record, env);
return Object.freeze({ replay: false, account, quote, record });
}
finally {
releaseCommerceLock();
}
})();
if (reservation.replay)
return replayPaid({ registry, productId, body, idempotencyKey: key, env, fetchImpl, timeoutMs });
const { account, quote, record } = reservation;
const paymentClient = new x402Client();
registerExactEvmScheme(paymentClient, { signer: account });
const startedAt = new Date().toISOString();
const record = {
schemaVersion: OPERATION_SCHEMA_VERSION,
idempotencyKey: key,
productId,
resource: quote.resource,
requestBodyHash: bodyHash,
requestBody: body,
state: 'authorizing',
startedAt,
completedAt: null,
quotedAtomic: quote.amountAtomic,
chargedAtomic: null,
operationId: quote.operationId,
receiptId: null,
settlementReferenceHash: null,
replayed: false,
reason: null,
};
writeOperation(record, env);
let paymentHeader;

@@ -334,2 +362,4 @@ try {

}
const authorizedRecord = { ...record, authorizationCreated: true };
writeOperation(authorizedRecord, env);
const controller = new AbortController();

@@ -355,3 +385,3 @@ const timer = setTimeout(() => controller.abort(), timeoutMs);

/* The signature was on the wire. This is ambiguous by definition. */
writeOperation({ ...record, state: 'unknown', reason: 'transport_failed_after_authorization' }, env);
writeOperation({ ...authorizedRecord, state: 'unknown', reason: 'transport_failed_after_authorization' }, env);
throw new RouterError('settlement_unknown', `the request failed after the payment was sent, so it may have settled. Run \`clervo reconcile\` — do not retry until it resolves.`, error?.name);

@@ -367,3 +397,3 @@ }

catch (error) {
writeOperation({ ...record, state: 'unknown', reason: 'unreadable_response_after_authorization' }, env);
writeOperation({ ...authorizedRecord, state: 'unknown', reason: 'unreadable_response_after_authorization' }, env);
throw error;

@@ -375,7 +405,7 @@ }

writeOperation({
...record,
...authorizedRecord,
state: 'settled',
completedAt: new Date().toISOString(),
chargedAtomic: outcome.chargedAtomic,
operationId: outcome.operationId === '' ? record.operationId : outcome.operationId,
operationId: outcome.operationId === '' ? authorizedRecord.operationId : outcome.operationId,
receiptId,

@@ -389,6 +419,6 @@ settlementReferenceHash: settlementReferenceHashOf(outcome.receipt),

if (settlementIsAmbiguous(response.status, code)) {
writeOperation({ ...record, state: 'unknown', reason: code ?? `http_${response.status}` }, env);
writeOperation({ ...authorizedRecord, state: 'unknown', reason: code ?? `http_${response.status}` }, env);
throw new RouterError('settlement_unknown', `the API answered ${response.status}${code === undefined ? '' : ` (${code})`} after the payment was sent, so it may have settled. Run \`clervo reconcile\` — do not retry until it resolves.`, value);
}
writeOperation({ ...record, state: 'refused', completedAt: new Date().toISOString(), reason: code ?? `http_${response.status}` }, env);
writeOperation({ ...authorizedRecord, state: 'refused', completedAt: new Date().toISOString(), reason: code ?? `http_${response.status}` }, env);
throw new RouterError(code ?? `http_${response.status}`, typeof value.detail === 'string' ? value.detail : `the API refused the payment with ${response.status}`, value);

@@ -463,2 +493,3 @@ }

reason: null,
surface: existing?.surface ?? 'unknown',
}, env);

@@ -465,0 +496,0 @@ return outcome;

@@ -1,1 +0,1 @@

{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAA6C,MAAM,YAAY,CAAC;AACvM,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEzC,MAAM,OAAO,WAAY,SAAQ,KAAK;IACf,IAAI;IAAqC,MAAM;IAApE,YAAqB,IAAY,EAAE,OAAgB,EAAW,MAAgB;QAC5E,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;oBADJ,IAAI;sBAAqC,MAAM;QAElE,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAkB;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,sBAAsB;QAAE,MAAM,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAChH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,sBAAsB;QAAE,MAAM,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAClG,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAClG,OAAO,KAAgC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,GAAG,QAAQ,CAAC,MAAM,8CAA8C,CAAC,CAAC;IACnH,CAAC;AACH,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,GAAG,SAAS,EAAmL;IAClU,MAAM,GAAG,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACtG,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,gBAAgB,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,4CAA4C,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5S,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,mBAAmB,QAAQ,EAAE,EAAG,KAAe,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;YAAS,CAAC;QAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACjN,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY;QAAE,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE,yDAAyD,CAAC,CAAC;IACvN,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,aAAa,EAAE,wBAAwB,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7f,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC;AAC9Q,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,SAAS,GAAG,KAAK,EACjB,cAAc,EACd,SAAS,GAAG,MAAM,EAClB,OAAO,GAAG,SAAS,GAUpB;IACC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,GAAG,SAAS,uCAAuC,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,GAAG,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACtG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE;YACtE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,4CAA4C;gBACpD,cAAc,EAAE,kBAAkB;gBAClC,iBAAiB,EAAE,GAAG;gBACtB,YAAY,EAAE,wBAAwB;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,mBAAmB,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,EAAG,KAAe,EAAE,IAAI,CAAC,CAAC;IACjI,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACjN,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM;QAAE,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE,sDAAsD,CAAC,CAAC;IAChL,cAAc,CAAC;QACb,aAAa,EAAE,wBAAwB;QACvC,cAAc,EAAE,GAAG;QACnB,SAAS;QACT,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE;QACrD,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC;QACtC,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,GAAG;QAClB,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QAC7E,SAAS,EAAE,IAAI;QACf,uBAAuB,EAAE,IAAI;QAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI;QACjC,MAAM,EAAE,IAAI;QACZ,OAAO;QACP,oBAAoB,EAAE,KAAK;KAC5B,EAAE,GAAG,CAAC,CAAC;IACR,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM;QACf,SAAS;QACT,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC3E,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC3E,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI;KAClC,CAAC,CAAC;AACL,CAAC;AAoBD,SAAS,SAAS,CAAC,SAAiB,EAAE,QAAgB,EAAE,cAAsB,EAAE,SAAkC;IAChH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAoC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvG,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAI,SAAS,CAAC,KAA6C,IAAI,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAK,QAAQ,EAAE,KAA6C,EAAE,MAA8C,IAAI,EAAE,CAAC;IAC/H,MAAM,YAAY,GAAG,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,6CAA6C,CAAC,CAAC;IAC1J,IAAI,QAAQ,CAAC,OAAO,KAAK,aAAa;QAAE,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,kEAAkE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvL,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,cAAc;QACd,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjE,YAAY;QACZ,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;QAChC,KAAK,EAAE,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC/D,OAAO,EAAE,aAAa;QACtB,KAAK,EAAE,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC/D,YAAY,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QAChF,SAAS,EAAE,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3I,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC7E,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC7E,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,cAAc,EACd,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,MAAM,GAQnB;IACC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,GAAG,SAAS,sCAAsC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAClK,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,4CAA4C;gBACpD,cAAc,EAAE,kBAAkB;gBAClC,iBAAiB,EAAE,oBAAoB,CAAC,cAAc,CAAC;gBACvD,YAAY,EAAE,wBAAwB;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,mBAAmB,QAAQ,EAAE,EAAG,KAAe,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,kEAAkE;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,wGAAwG,EAAE,KAAK,CAAC,CAAC;IACvL,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAgC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACxO,OAAO,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAeD;;;;;;;;;GASG;AACH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IAC5C,oBAAoB;IACpB,oBAAoB;IACpB,kCAAkC;IAClC,8BAA8B;IAC9B,4BAA4B;IAC5B,yBAAyB;IACzB,yBAAyB;IACzB,0BAA0B;CAC3B,CAAC,CAAC,CAAC;AAEJ,SAAS,qBAAqB,CAAC,MAAc,EAAE,IAAwB;IACrE,IAAI,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE;gEAC4D;IAC5D,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;yBAGyB;AACzB,SAAS,yBAAyB,CAAC,OAAuC;IACxE,MAAM,UAAU,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,OAAO,CAAC,UAAkD,CAAC;IAC9G,MAAM,SAAS,GAAG,UAAU,EAAE,aAAa,CAAC;IAC5C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB,EAAE,KAA8B,EAAE,QAAiB;IAC1F,MAAM,OAAO,GAAI,KAAK,CAAC,OAA+C,IAAI,IAAI,CAAC;IAC/E,MAAM,cAAc,GAAI,OAAO,EAAE,cAAsD,IAAI,SAAS,CAAC;IACrG,MAAM,aAAa,GAAG,OAAO,cAAc,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3G,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM;QACf,SAAS;QACT,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC3E,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC3E,aAAa;QACb,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC;QAClC,OAAO;QACP,SAAS,EAAE,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC5E,MAAM,EAAE,KAAK;QACb,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAiBD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,EACJ,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAClH,GAAG,OAAO,CAAC;IACZ,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACtH,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,IAAI,WAAW,CAAC,4CAA4C,EAAE,mBAAmB,GAAG,gEAAgE,CAAC,CAAC;IAC9J,CAAC;IACD,IAAI,QAAQ,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACnG,CAAC;IACD;;;;oEAIgE;IAChE,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ;gBAAE,MAAM,IAAI,WAAW,CAAC,4CAA4C,EAAE,mBAAmB,GAAG,gEAAgE,CAAC,CAAC;YAC/N,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,CAAC,CAAC;YAClF,kEAAkE;YAClE,yBAAyB,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3G,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1G,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,kFAAkF,CAAC,CAAC;YAClK,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI;gBAAE,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,8DAA8D,CAAC,CAAC;YAC3J,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAoB;gBAC9B,aAAa,EAAE,wBAAwB;gBACvC,cAAc,EAAE,GAAG;gBACnB,SAAS;gBACT,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,eAAe,EAAE,QAAQ;gBACzB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,aAAa;gBACpB,SAAS;gBACT,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,IAAI;gBACf,uBAAuB,EAAE,IAAI;gBAC7B,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,IAAI;gBACZ,OAAO;aACR,CAAC;YACF,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,mBAAmB,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,IAAI,WAAW,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACzH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;IACvC,sBAAsB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3D,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAkB,CAAC,CAAC;QACnF,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oDAAoD;QACpD,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9H,MAAM,IAAI,WAAW,CAAC,wBAAwB,EAAE,sDAAsD,EAAG,KAAe,EAAE,OAAO,CAAC,CAAC;IACrI,CAAC;IAED,MAAM,gBAAgB,GAAoB,EAAE,GAAG,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IACpF,cAAc,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE;YACzC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,4CAA4C;gBACpD,cAAc,EAAE,kBAAkB;gBAClC,iBAAiB,EAAE,GAAG;gBACtB,mBAAmB,EAAE,aAAa;gBAClC,YAAY,EAAE,wBAAwB;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,cAAc,CAAC,EAAE,GAAG,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/G,MAAM,IAAI,WAAW,CACnB,oBAAoB,EACpB,mIAAmI,EAClI,KAAe,EAAE,IAAI,CACvB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,EAAE,GAAG,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,yCAAyC,EAAE,EAAE,GAAG,CAAC,CAAC;QAClH,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,MAAM,CAAC,CAAC;QAC1G,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtF,cAAc,CAAC;YACb,GAAG,gBAAgB;YACnB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;YAC5F,SAAS;YACT,uBAAuB,EAAE,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC;YACnE,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,cAAc,CAAC,EAAE,GAAG,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1G,MAAM,IAAI,WAAW,CACnB,oBAAoB,EACpB,oBAAoB,QAAQ,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,iHAAiH,EAC7L,KAAK,CACN,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,EAAE,GAAG,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACjJ,MAAM,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAoC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3K,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,cAAc,EACd,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,MAAM,GASnB;IACC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,GAAG,SAAS,oBAAoB,CAAC,CAAC;IACpH,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAC7D,MAAM,GAAG,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,4CAA4C;gBACpD,cAAc,EAAE,kBAAkB;gBAClC,iBAAiB,EAAE,GAAG;gBACtB,YAAY,EAAE,wBAAwB;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,mBAAmB,QAAQ,EAAE,EAAG,KAAe,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,uEAAuE,EAAE,KAAK,CAAC,CAAC;IAClJ,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACjN,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IACrI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;QAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,cAAc,CAAC;QACb,aAAa,EAAE,wBAAwB;QACvC,cAAc,EAAE,GAAG;QACnB,SAAS;QACT,QAAQ;QACR,eAAe,EAAE,QAAQ;QACzB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC1D,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9D,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,OAAO,CAAC,aAAa;QAC7D,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,uBAAuB,EAAE,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC;QACnE;;8EAEsE;QACtE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,SAAS;KACxC,EAAE,GAAG,CAAC,CAAC;IACR,OAAO,OAAO,CAAC;AACjB,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,QAAQ,EACR,MAAM,EACN,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,MAAM,GAOnB;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IAChC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,8HAA8H;SACvI,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACpJ,8DAA8D;QAC9D,cAAc,CAAC;YACb,GAAG,MAAM;YACT,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC3D,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,uBAAuB,EAAE,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC;YACnE,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI;SACb,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,uBAAuB,OAAO,CAAC,OAAO,OAAO;SACtD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjE,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,CAAC;YAClJ,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,aAAa;gBACvB,aAAa,EAAE,GAAG;gBAClB,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,sDAAsD;aAC/D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,iCAAiC;SACxF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}

@@ -1,2 +0,2 @@

import { statSync } from 'node:fs';
import { readdirSync, statSync } from 'node:fs';
import { clervoPaths } from './paths.js';

@@ -9,2 +9,3 @@ import { loadLimits } from './limits.js';

import { CLERVO_ROUTER_VERSION } from './version.js';
import { commerceLockStatus } from './lock.js';
function check(id, status, detail, remedy) {

@@ -23,3 +24,10 @@ return Object.freeze(remedy === undefined ? { id, status, detail } : { id, status, detail, remedy });

const checks = [];
const paths = clervoPaths(env);
let paths;
try {
paths = clervoPaths(env);
checks.push(check('home.path', 'ok', paths.home));
}
catch (error) {
return Object.freeze({ routerVersion: CLERVO_ROUTER_VERSION, checkedAt: now(), checks: Object.freeze([check('home.path', 'fail', error.message, 'set CLERVO_HOME to an absolute private directory')]), healthy: false });
}
checks.push(check('runtime.node', Number(process.versions.node.split('.')[0]) >= 20 ? 'ok' : 'fail', `Node ${process.versions.node}`, Number(process.versions.node.split('.')[0]) >= 20 ? undefined : 'install Node 20 or newer'));

@@ -35,2 +43,11 @@ try {

}
for (const [id, path] of [['operations.permissions', paths.operations], ['receipts.permissions', paths.receipts]]) {
try {
const mode = statSync(path).mode & 0o777;
checks.push(process.platform === 'win32' || (mode & 0o077) === 0 ? check(id, 'ok', `${path} is private`) : check(id, 'fail', `${path} mode ${mode.toString(8)} is not private`, `chmod 700 ${path}`));
}
catch {
checks.push(check(id, 'ok', `${path} has not been created yet`));
}
}
let origin;

@@ -95,2 +112,34 @@ try {

: check('settlement.reconciled', 'fail', `${open.length} operation(s) have an unresolved settlement: ${open.map((record) => record.idempotencyKey).join(', ')}`, 'run `clervo reconcile` — paid calls are blocked until this clears'));
const commerceLock = commerceLockStatus(env);
checks.push(!commerceLock.exists
? check('commerce.lock', 'ok', 'no payment reservation is held')
: commerceLock.ownerAlive === true
? check('commerce.lock', 'warn', `a live local process holds the payment reservation${commerceLock.createdAt === null ? '' : ` since ${commerceLock.createdAt}`}`, 'wait for the active call to finish')
: check('commerce.lock', 'fail', `a stale payment reservation blocks spending${commerceLock.createdAt === null ? '' : ` since ${commerceLock.createdAt}`}`, 'run `clervo reconcile`; the lock is removed only after no settlement remains unknown'));
const operations = (() => { try {
return readdirSync(paths.operations).filter((name) => name.endsWith('.json')).length;
}
catch {
return 0;
} })();
const receipts = (() => { try {
return readdirSync(paths.receipts).filter((name) => name.endsWith('.json')).length;
}
catch {
return 0;
} })();
checks.push(check('history.state', 'ok', `${operations} operation record(s), ${receipts} receipt(s)`));
const proxyOrigin = env.CLERVO_PROXY_URL ?? 'http://127.0.0.1:8402';
try {
const parsed = new URL(proxyOrigin);
const loopback = ['localhost', '127.0.0.1', '[::1]'].includes(parsed.hostname);
if (parsed.protocol !== 'http:' || !loopback || parsed.username || parsed.password)
throw new Error('proxy URL must be loopback HTTP');
const response = await fetchImpl(`${parsed.origin}/v1/models`, { method: 'GET', headers: { accept: 'application/json' }, signal: AbortSignal.timeout(1_500), redirect: 'error' });
checks.push(response.ok ? check('proxy.readiness', 'ok', `${parsed.origin}/v1 is ready`) : check('proxy.readiness', 'warn', `${parsed.origin} returned ${response.status}`, 'run `clervo proxy` and retry'));
}
catch (error) {
checks.push(check('proxy.readiness', 'warn', `${proxyOrigin} is not currently ready: ${error.message}`, 'run `clervo proxy`; add `--auto-pay` only after reviewing limits'));
}
checks.push(check('clients.versions', 'ok', `Router ${CLERVO_ROUTER_VERSION}; expected Connect clients @clervo/sdk 0.5.0, @clervo/mcp 0.5.0, clervo-sdk 0.4.0`));
return Object.freeze({

@@ -97,0 +146,0 @@ routerVersion: CLERVO_ROUTER_VERSION,

@@ -1,1 +0,1 @@

{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAmB/C,SAAS,KAAK,CAAC,EAAU,EAAE,MAAmB,EAAE,MAAc,EAAE,MAAe;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACvG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,SAAS,GAAG,KAAK,EACjB,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACpC,YAAY,GAAG,IAAI,GACpB,GAAsG,EAAE;IACvG,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,KAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAG,KAAe,CAAC,OAAO,EAAE,kDAAkD,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtO,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EACjG,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAE/F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9D,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,oBAAoB,CAAC;YACpE,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,gDAAgD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,qBAAqB,EAAE,sDAAsD,CAAC,CAAC,CAAC;IAC7I,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,sBAAsB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAU,EAAE,CAAC;QAC3H,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QACxM,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,2BAA2B,CAAC,CAAC,CAAC;QAAC,CAAC;IAC/E,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,oCAAqC,KAAe,CAAC,OAAO,EAAE,EAAE,uDAAuD,CAAC,CAAC,CAAC;IACpK,CAAC;IAED,IAAI,QAA8B,CAAC;IACnC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;YAChF,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,kBAAkB,IAAI,UAAU,IAAI,sBAAsB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjK,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,EAAG,KAAe,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,6DAA6D,EAAE,+CAA+C,CAAC,CAAC,CAAC;IAC/J,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/C,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,yCAAyC,CAAC;YAC9E,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,EAAE,qDAAqD,EAAE,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7H,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;YAC/E,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC7E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE;wBAC3C,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,eAAe,CAAC;wBAChE,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,0BAA0B,EAAE,gCAAgC,IAAI,CAAC,OAAO,sCAAsC,CAAC,CAAC,CAAC;gBACtJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,mCAAmC,UAAU,CAAC,GAAG,CAAC,KAAM,KAAe,CAAC,OAAO,EAAE,EAAE,0DAA0D,CAAC,CAAC,CAAC;gBAC7L,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAG,KAAe,CAAC,OAAO,EAAE,iFAAiF,CAAC,CAAC,CAAC;QAC7J,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,EACzC,iBAAiB,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACzJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAG,KAAe,CAAC,OAAO,EAAE,UAAU,KAAK,CAAC,MAAM,+BAA+B,CAAC,CAAC,CAAC;IACnI,CAAC;IAED,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,EAAE,gDAAgD,CAAC;QACxF,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,gDAAgD,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,mEAAmE,CAAC,CAAC,CAAC;IAEzO,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM;QAC9B,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,gCAAgC,CAAC;QAChE,CAAC,CAAC,YAAY,CAAC,UAAU,KAAK,IAAI;YAChC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,qDAAqD,YAAY,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,YAAY,CAAC,SAAS,EAAE,EAAE,EAAE,oCAAoC,CAAC;YACxM,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,8CAA8C,YAAY,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,YAAY,CAAC,SAAS,EAAE,EAAE,EAAE,sFAAsF,CAAC,CAAC,CAAC;IAEzP,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnJ,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/I,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,UAAU,yBAAyB,QAAQ,aAAa,CAAC,CAAC,CAAC;IAEvG,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvI,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAClL,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,aAAa,QAAQ,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAC/M,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,WAAW,4BAA6B,KAAe,CAAC,OAAO,EAAE,EAAE,kEAAkE,CAAC,CAAC,CAAC;IAC1L,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,EAAE,UAAU,qBAAqB,mFAAmF,CAAC,CAAC,CAAC;IAEjK,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,qBAAqB;QACpC,SAAS,EAAE,GAAG,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC"}
export { BASE_CHAIN_ID, BASE_USDC_ADDRESS, DEFAULT_BASE_RPC_URL, USDC_DECIMALS, baseRpcUrl, formatUsdc, fundingGuidance, readWalletBalance, type FundingGuidance, type WalletBalance, } from './chain.js';
export { RouterError, callFree, callPaid, newIdempotencyKey, reconcileOperation, replayPaid, requestQuote, type FreeOutcome, type PaidCallOptions, type PaidOutcome, type Quote, type ReconcileResult, } from './client.js';
export { diagnose, type Check, type CheckStatus, type Diagnosis } from './doctor.js';
export { acquireCommerceLock, clearCommerceLockAfterReconciliation, commerceLockStatus, type CommerceLockStatus } from './lock.js';
export { DEFAULT_DAILY_ATOMIC, DEFAULT_PER_OPERATION_ATOMIC, LimitError, assertWithinLimits, defaultLimits, loadLimits, saveLimits, usdcToAtomic, type SpendLimits, } from './limits.js';
export { clervoHome, clervoPaths, type ClervoPaths } from './paths.js';
export { DEFAULT_API_ORIGIN, DISCOVERY_PATH, RegistryError, apiOrigin, capabilityFor, loadRegistry, type Registry, type RegistryCapability, } from './registry.js';
export { OPERATION_SCHEMA_VERSION, StoreError, assertIdempotencyKey, assertNothingUnreconciled, listOperations, readOperation, readReceipt, requestBodyHash, saveReceipt, spentTodayAtomic, unreconciledOperations, writeOperation, type OperationRecord, type OperationState, } from './store.js';
export { DEFAULT_API_ORIGIN, DISCOVERY_PATH, RegistryError, apiOrigin, capabilityFor, loadAiModelCatalog, loadRegistry, type AiCatalogModel, type AiModelCatalog, type Registry, type RegistryCapability, } from './registry.js';
export { OPERATION_SCHEMA_VERSION, StoreError, assertIdempotencyKey, assertNothingUnreconciled, listOperations, readOperation, readReceipt, requestBodyHash, saveReceipt, spentTodayAtomic, unreconciledOperations, writeOperation, type OperationRecord, type OperationState, type ConnectSurface, } from './store.js';
export { localUsage, type LocalUsage, type UsageBucket } from './usage.js';
export { ClervoConnect, type ConnectExecuteOptions, type ConnectExecution, type ConnectOptions, type ConnectStatus } from './connect.js';
export { startOpenAiProxy, type ProxyOptions, type RunningProxy } from './proxy.js';
export { CLERVO_CONTRACT_VERSION, CLERVO_ROUTER_USER_AGENT, CLERVO_ROUTER_VERSION } from './version.js';
export { WALLET_DERIVATION_PATH, WALLET_NETWORK, WALLET_SCHEMA_VERSION, WalletError, addressForMnemonic, createWallet, loadWalletAccount, loadWalletFile, replaceWallet, walletExists, walletPermissionsSecure, walletView, type CreatedWallet, type WalletFile, type WalletView, } from './wallet.js';
export { BASE_CHAIN_ID, BASE_USDC_ADDRESS, DEFAULT_BASE_RPC_URL, USDC_DECIMALS, baseRpcUrl, formatUsdc, fundingGuidance, readWalletBalance, } from './chain.js';
export { RouterError, callFree, callPaid, newIdempotencyKey, reconcileOperation, replayPaid, requestQuote, } from './client.js';
export { diagnose } from './doctor.js';
export { acquireCommerceLock, clearCommerceLockAfterReconciliation, commerceLockStatus } from './lock.js';
export { DEFAULT_DAILY_ATOMIC, DEFAULT_PER_OPERATION_ATOMIC, LimitError, assertWithinLimits, defaultLimits, loadLimits, saveLimits, usdcToAtomic, } from './limits.js';
export { clervoHome, clervoPaths } from './paths.js';
export { DEFAULT_API_ORIGIN, DISCOVERY_PATH, RegistryError, apiOrigin, capabilityFor, loadRegistry, } from './registry.js';
export { DEFAULT_API_ORIGIN, DISCOVERY_PATH, RegistryError, apiOrigin, capabilityFor, loadAiModelCatalog, loadRegistry, } from './registry.js';
export { OPERATION_SCHEMA_VERSION, StoreError, assertIdempotencyKey, assertNothingUnreconciled, listOperations, readOperation, readReceipt, requestBodyHash, saveReceipt, spentTodayAtomic, unreconciledOperations, writeOperation, } from './store.js';
export { localUsage } from './usage.js';
export { ClervoConnect } from './connect.js';
export { startOpenAiProxy } from './proxy.js';
export { CLERVO_CONTRACT_VERSION, CLERVO_ROUTER_USER_AGENT, CLERVO_ROUTER_VERSION } from './version.js';
export { WALLET_DERIVATION_PATH, WALLET_NETWORK, WALLET_SCHEMA_VERSION, WalletError, addressForMnemonic, createWallet, loadWalletAccount, loadWalletFile, replaceWallet, walletExists, walletPermissionsSecure, walletView, } from './wallet.js';
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,GAGlB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,YAAY,GAMb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAgD,MAAM,aAAa,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,YAAY,GAGb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,UAAU,EACV,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,UAAU,GAIX,MAAM,aAAa,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,GAGlB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,YAAY,GAMb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAgD,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,oCAAoC,EAAE,kBAAkB,EAA2B,MAAM,WAAW,CAAC;AACnI,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,YAAY,GAKb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,UAAU,EACV,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,GAIf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAqC,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,aAAa,EAA8F,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,gBAAgB,EAAwC,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,UAAU,GAIX,MAAM,aAAa,CAAC"}

@@ -8,3 +8,4 @@ export declare function clervoHome(env?: NodeJS.ProcessEnv): string;

readonly operations: string;
readonly commerceLock: string;
}
export declare function clervoPaths(env?: NodeJS.ProcessEnv): ClervoPaths;

@@ -28,4 +28,5 @@ import { homedir } from 'node:os';

operations: join(home, 'operations'),
commerceLock: join(home, 'commerce.lock'),
});
}
//# sourceMappingURL=paths.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAUD,MAAM,UAAU,WAAW,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACjC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;KACrC,CAAC,CAAC;AACL,CAAC"}
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACzG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAWD,MAAM,UAAU,WAAW,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACjC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QACpC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC"}

@@ -108,3 +108,3 @@ import { CLERVO_ROUTER_USER_AGENT } from './version.js';

}
const capabilities = products.map((product) => {
const capabilities = products.flatMap((product) => {
const productId = typeof product.productId === 'string' ? product.productId : '';

@@ -122,4 +122,10 @@ const family = familyOf(productId);

const priceAtomic = typeof displayPrice?.amountAtomic === 'string' ? displayPrice.amountAtomic : null;
return Object.freeze({
productId,
const operationIds = productId === 'ai' && Array.isArray(product.operationIds)
? product.operationIds.filter((value) => typeof value === 'string')
: [productId];
const aiExecute = productId === 'ai' && typeof routes.execute === 'string' ? routes.execute : null;
const productPaidRoute = paidRoute ?? aiExecute;
const productFreeRoute = freeRoute ?? aiExecute;
return Object.freeze(operationIds.map((operationId) => Object.freeze({
productId: operationId,
family,

@@ -131,4 +137,4 @@ title: typeof product.title === 'string' ? product.title : productId,

reason: typeof observedFamily?.reason === 'string' ? observedFamily.reason : null,
freeRoute,
paidRoute,
freeRoute: productFreeRoute,
paidRoute: productPaidRoute,
priceAtomic,

@@ -147,5 +153,5 @@ priceVersion: typeof pricing.priceVersion === 'string' ? pricing.priceVersion : null,

priceIsBinding: priceAtomic !== null && FIXED_PRICE_MODELS.has(pricing.model),
paidCallable: familyReachable && product.publicAvailable === true && payment.payable === true && paidRoute !== null,
freeCallable: familyReachable && freeRoute !== null && product.publicAvailable === true,
});
paidCallable: familyReachable && product.publicAvailable === true && payment.payable === true && productPaidRoute !== null,
freeCallable: familyReachable && productFreeRoute !== null && product.publicAvailable === true,
})));
}).filter((capability) => capability.productId.length > 0);

@@ -152,0 +158,0 @@ return Object.freeze({

@@ -1,1 +0,1 @@

{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
export declare const OPERATION_SCHEMA_VERSION: 'clervo.router.operation.v1';
export type OperationState = 'authorizing' | 'settled' | 'free' | 'unknown' | 'refused';
export type ConnectSurface = 'cli' | 'mcp' | 'typescript' | 'python' | 'openai' | 'unknown';
export interface OperationRecord {

@@ -20,2 +21,4 @@ readonly schemaVersion: typeof OPERATION_SCHEMA_VERSION;

readonly reason: string | null;
readonly surface?: ConnectSurface;
readonly authorizationCreated?: boolean;
}

@@ -22,0 +25,0 @@ export declare class StoreError extends Error {

@@ -1,1 +0,1 @@

{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}

@@ -1,3 +0,3 @@

export declare const CLERVO_ROUTER_VERSION: '0.2.0';
export declare const CLERVO_ROUTER_USER_AGENT: "@clervo/router/0.2.0";
export declare const CLERVO_ROUTER_VERSION: '0.3.0';
export declare const CLERVO_ROUTER_USER_AGENT: "@clervo/router/0.3.0";
export declare const CLERVO_CONTRACT_VERSION: '2026-07-29.1';

@@ -1,4 +0,4 @@

export const CLERVO_ROUTER_VERSION = '0.2.0';
export const CLERVO_ROUTER_VERSION = '0.3.0';
export const CLERVO_ROUTER_USER_AGENT = `@clervo/router/${CLERVO_ROUTER_VERSION}`;
export const CLERVO_CONTRACT_VERSION = '2026-07-29.1';
//# sourceMappingURL=version.js.map
{
"name": "@clervo/router",
"version": "0.2.0",
"description": "Free-first Clervo CLI for x402 payments, receipts, replay, and local spend controls on Base.",
"version": "0.3.0",
"description": "Clervo Connect core and free-first CLI with one local wallet, x402 safety, usage, reconciliation, and OpenAI compatibility.",
"license": "MIT",

@@ -6,0 +6,0 @@ "type": "module",

@@ -57,3 +57,4 @@ # @clervo/router

This creates a wallet used only for Clervo payments and prints its recovery
This creates the one local wallet used by the Router CLI, MCP, the TypeScript
and Python SDKs, and the OpenAI-compatible proxy. It prints its recovery
phrase once. Write it down before continuing — it is the only way to recover the

@@ -153,2 +154,47 @@ wallet, and `clervo wallet backup` will show it again only after you confirm.

## Local usage
Usage is computed from durable operation records and server receipts under
`CLERVO_HOME`; it is not a separate counter and never invents revenue.
```
clervo usage
clervo usage --json
```
The report includes calls by surface and family, free versus paid, authorized
and settled amounts, route/model identity, replayed/refused outcomes, today's
spend, and the unresolved-operation count.
## OpenAI-compatible clients
Start a loopback-only process:
```
clervo proxy
```
Point an ordinary OpenAI client at `http://127.0.0.1:8402/v1` and use any
placeholder API key its constructor requires. The placeholder and wallet key
are never sent to Clervo. Supported compatibility endpoints are
`GET /v1/models`, `POST /v1/chat/completions` (non-streaming and SSE), and
`POST /v1/embeddings`. The normalized upstream operation is synchronous, so
SSE begins after the verified result completes.
`/v1/responses`, image-generation and audio endpoints are not claimed because
the current normalized artifact contract cannot expose those OpenAI contracts
faithfully.
Auto-pay is disabled by default. Enable it only after reviewing the limits:
```
clervo limits
clervo proxy --auto-pay
```
Every proxy payment still uses the global limits and reconciliation freeze. A
canonical model ID is exact or the call fails; only a published alias may
route, and the actual model, operation, receipt and route remain visible in
`clervo` response metadata and `x-clervo-*` headers.
## Configuration

@@ -155,0 +201,0 @@