@hasna/domains
Version:
Domain portfolio, registrar, marketplace, and DNS management for AI agents — CLI + MCP + HTTP API + SDK, shared account API and PostgreSQL
30 lines • 1.44 kB
TypeScript
/**
* Domain provisioning daemon — reconciles a set of domains toward `ready`.
*
* Each tick: gather live signals per domain, derive its lifecycle state, and run
* the next action (register / create_cf_zone / delegate_ns / check_ns_propagation
* / verify_dns / finalize). Signals + actions are injected so the loop is fully
* testable; the CLI wires real Route53/Cloudflare/DNS calls. State is derived
* live (no separate persistence needed), so a restart simply re-derives.
*/
import { type DomainSignals, type DomainProvAction } from "./provision-state.js";
export interface DomainReconcileDeps {
gatherSignals: (domain: string) => Promise<DomainSignals>;
runAction: (domain: string, action: DomainProvAction) => Promise<void>;
log?: (event: string, detail: Record<string, unknown>) => void;
}
export interface DomainReconcileSummary {
processed: number;
advanced: number;
ready: number;
errors: number;
}
export declare function reconcileDomainTick(domains: string[], deps: DomainReconcileDeps): Promise<DomainReconcileSummary>;
export interface DomainDaemonOptions extends DomainReconcileDeps {
intervalSec?: number;
maxTicks?: number;
shouldStop?: () => boolean;
sleep?: (ms: number) => Promise<void>;
}
export declare function runDomainDaemon(domains: () => Promise<string[]>, opts: DomainDaemonOptions): Promise<DomainReconcileSummary>;
//# sourceMappingURL=domain-daemon.d.ts.map