@cronvello/sdk 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/errors.ts","../src/internal/http.ts","../src/client/client.ts","../src/registry/format.ts","../src/index.ts","../src/cli/ui.ts","../src/cli/index.ts"],"names":["resolve","c","header","createRequire","existsSync","pathToFileURL"],"mappings":"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","file":"cli.cjs","sourcesContent":["/**\n * Error taxonomy for the SDK. Everything thrown by the public surface is a\n * `CronvelloError` (or subclass), so callers can `catch (e) { if (e instanceof CronvelloError) … }`.\n */\n\nexport class CronvelloError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CronvelloError\";\n // Restore prototype chain for instanceof across transpilation targets.\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/** A non-2xx response from the Cronvello API. */\nexport class CronvelloApiError extends CronvelloError {\n /** HTTP status code. */\n readonly status: number;\n /** Machine-readable error code from the API body, when present. */\n readonly code: string | undefined;\n /** The method + path that failed, e.g. `POST /v1/jobs`. */\n readonly endpoint: string;\n /** Parsed response body (best effort). */\n readonly body: unknown;\n /** Seconds to wait before retrying, parsed from `Retry-After` / rate-limit payload (429 only). */\n readonly retryAfterSeconds: number | undefined;\n\n constructor(args: {\n status: number;\n endpoint: string;\n message: string;\n code?: string;\n body?: unknown;\n retryAfterSeconds?: number;\n }) {\n super(`[${args.status}] ${args.endpoint}: ${args.message}`);\n this.name = \"CronvelloApiError\";\n this.status = args.status;\n this.code = args.code;\n this.endpoint = args.endpoint;\n this.body = args.body;\n this.retryAfterSeconds = args.retryAfterSeconds;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n get isRateLimited(): boolean {\n return this.status === 429;\n }\n\n get isAuthError(): boolean {\n return this.status === 401 || this.status === 403;\n }\n\n get isNotFound(): boolean {\n return this.status === 404;\n }\n}\n\n/** A network/transport failure (DNS, connection reset, timeout) before any HTTP status. */\nexport class CronvelloNetworkError extends CronvelloError {\n readonly endpoint: string;\n override readonly cause: unknown;\n constructor(endpoint: string, cause: unknown) {\n super(`Network error calling ${endpoint}: ${describe(cause)}`);\n this.name = \"CronvelloNetworkError\";\n this.endpoint = endpoint;\n this.cause = cause;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/** A misconfiguration caught before any network call (missing apiKey, bad URL, …). */\nexport class CronvelloConfigError extends CronvelloError {\n constructor(message: string) {\n super(message);\n this.name = \"CronvelloConfigError\";\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nfunction describe(cause: unknown): string {\n if (cause instanceof Error) return cause.message;\n return String(cause);\n}\n","/**\n * Minimal HTTP transport over the global `fetch` (Node 18+). No axios, no node-fetch —\n * zero runtime dependencies. Adds bearer auth, JSON (de)serialization, typed error mapping,\n * bounded retries with backoff for transient failures, and optional idempotency keys.\n */\n\nimport {\n CronvelloApiError,\n CronvelloConfigError,\n CronvelloNetworkError,\n} from \"./errors.js\";\n\nexport type FetchLike = (\n input: string,\n init?: {\n method?: string;\n headers?: Record<string, string>;\n body?: string;\n signal?: AbortSignal;\n },\n) => Promise<{\n ok: boolean;\n status: number;\n headers: { get(name: string): string | null };\n text(): Promise<string>;\n}>;\n\nexport interface TransportOptions {\n baseUrl: string;\n apiKey: string;\n /** Per-request timeout in ms. Default 30_000. */\n timeoutMs?: number;\n /** Max retry attempts for 429/5xx/network errors. Default 2 (=> up to 3 tries). */\n maxRetries?: number;\n /** Override the fetch implementation (testing / custom agents). */\n fetch?: FetchLike;\n /** Extra headers sent on every request (e.g. a custom User-Agent). */\n defaultHeaders?: Record<string, string>;\n /** Telemetry hook — called once per completed attempt. */\n onRequest?: (info: { method: string; path: string; status: number; attempt: number; durationMs: number }) => void;\n}\n\nexport interface RequestOptions {\n method: string;\n path: string;\n query?: Record<string, string | number | boolean | undefined>;\n body?: unknown;\n /** Idempotency-Key header value — replays of the same key are de-duplicated server-side. */\n idempotencyKey?: string;\n signal?: AbortSignal;\n}\n\nconst RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);\n\nexport class Transport {\n private readonly baseUrl: string;\n private readonly apiKey: string;\n private readonly timeoutMs: number;\n private readonly maxRetries: number;\n private readonly fetchImpl: FetchLike;\n private readonly defaultHeaders: Record<string, string>;\n private readonly onRequest: TransportOptions[\"onRequest\"];\n\n constructor(opts: TransportOptions) {\n if (!opts.apiKey) throw new CronvelloConfigError(\"apiKey is required\");\n if (!opts.baseUrl) throw new CronvelloConfigError(\"baseUrl is required\");\n const resolvedFetch = opts.fetch ?? (globalThis.fetch as unknown as FetchLike | undefined);\n if (!resolvedFetch) {\n throw new CronvelloConfigError(\n \"No global fetch found. Use Node 18+ or pass a `fetch` implementation in the client options.\",\n );\n }\n this.baseUrl = opts.baseUrl.replace(/\\/+$/, \"\");\n this.apiKey = opts.apiKey;\n this.timeoutMs = opts.timeoutMs ?? 30_000;\n this.maxRetries = opts.maxRetries ?? 2;\n this.fetchImpl = resolvedFetch;\n this.defaultHeaders = opts.defaultHeaders ?? {};\n this.onRequest = opts.onRequest;\n }\n\n async request<T>(opts: RequestOptions): Promise<T> {\n const url = this.buildUrl(opts.path, opts.query);\n const endpoint = `${opts.method} ${opts.path}`;\n const headers: Record<string, string> = {\n authorization: `Bearer ${this.apiKey}`,\n accept: \"application/json\",\n ...this.defaultHeaders,\n };\n let payload: string | undefined;\n if (opts.body !== undefined) {\n headers[\"content-type\"] = \"application/json\";\n payload = JSON.stringify(opts.body);\n }\n if (opts.idempotencyKey) headers[\"idempotency-key\"] = opts.idempotencyKey;\n\n let lastError: unknown;\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n const startedAt = Date.now();\n const { signal, cancel } = this.withTimeout(opts.signal);\n try {\n const res = await this.fetchImpl(url, {\n method: opts.method,\n headers,\n ...(payload !== undefined ? { body: payload } : {}),\n signal,\n });\n cancel();\n const durationMs = Date.now() - startedAt;\n this.onRequest?.({ method: opts.method, path: opts.path, status: res.status, attempt, durationMs });\n\n const text = await res.text();\n const parsed = text ? safeJson(text) : null;\n\n if (res.ok) return unwrapEnvelope(parsed) as T;\n\n const retryAfter = parseRetryAfter(res, parsed);\n if (RETRYABLE_STATUS.has(res.status) && attempt < this.maxRetries) {\n await sleep(this.backoff(attempt, retryAfter));\n continue;\n }\n throw new CronvelloApiError({\n status: res.status,\n endpoint,\n message: extractMessage(parsed) ?? `Request failed`,\n code: extractCode(parsed),\n body: parsed,\n ...(retryAfter !== undefined ? { retryAfterSeconds: retryAfter } : {}),\n });\n } catch (err) {\n cancel();\n if (err instanceof CronvelloApiError) throw err;\n // Network/abort error — retry if attempts remain.\n lastError = err;\n if (attempt < this.maxRetries) {\n await sleep(this.backoff(attempt));\n continue;\n }\n throw new CronvelloNetworkError(endpoint, err);\n }\n }\n // Unreachable, but satisfies the type checker.\n throw new CronvelloNetworkError(endpoint, lastError);\n }\n\n private buildUrl(path: string, query?: RequestOptions[\"query\"]): string {\n const base = `${this.baseUrl}${path.startsWith(\"/\") ? path : `/${path}`}`;\n if (!query) return base;\n const params = Object.entries(query)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`);\n return params.length ? `${base}?${params.join(\"&\")}` : base;\n }\n\n private withTimeout(external?: AbortSignal): { signal: AbortSignal; cancel: () => void } {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), this.timeoutMs);\n const onExternalAbort = () => controller.abort();\n if (external) {\n if (external.aborted) controller.abort();\n else external.addEventListener(\"abort\", onExternalAbort, { once: true });\n }\n return {\n signal: controller.signal,\n cancel: () => {\n clearTimeout(timer);\n external?.removeEventListener(\"abort\", onExternalAbort);\n },\n };\n }\n\n private backoff(attempt: number, retryAfterSeconds?: number): number {\n if (retryAfterSeconds !== undefined) return Math.min(retryAfterSeconds * 1000, 30_000);\n // Exponential backoff with full jitter: base 300ms, capped at 5s.\n const base = Math.min(300 * 2 ** attempt, 5_000);\n return Math.floor(Math.random() * base);\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction safeJson(text: string): unknown {\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\n/**\n * The Cronvello server wraps every successful `/v1` response in a `{ success, message, data }`\n * envelope, while the typed client methods are declared in terms of the inner payload. Unwrap\n * it here — centrally — so every resource method (and the high-level `sync()`) sees the data it\n * expects. Bodies that aren't enveloped (no boolean `success` + `data`) pass through unchanged,\n * so non-enveloped or future endpoints keep working.\n */\nfunction unwrapEnvelope(body: unknown): unknown {\n if (\n body !== null &&\n typeof body === \"object\" &&\n \"success\" in body &&\n typeof (body as { success: unknown }).success === \"boolean\" &&\n \"data\" in body\n ) {\n return (body as { data: unknown }).data;\n }\n return body;\n}\n\nfunction extractMessage(body: unknown): string | undefined {\n if (body && typeof body === \"object\" && \"message\" in body) {\n const m = (body as { message?: unknown }).message;\n if (typeof m === \"string\") return m;\n }\n return undefined;\n}\n\nfunction extractCode(body: unknown): string | undefined {\n if (body && typeof body === \"object\" && \"code\" in body) {\n const c = (body as { code?: unknown }).code;\n if (typeof c === \"string\") return c;\n }\n return undefined;\n}\n\nfunction parseRetryAfter(\n res: { headers: { get(name: string): string | null } },\n body: unknown,\n): number | undefined {\n const header = res.headers.get(\"retry-after\");\n if (header) {\n const n = Number(header);\n if (Number.isFinite(n)) return n;\n }\n if (body && typeof body === \"object\" && \"data\" in body) {\n const data = (body as { data?: { retryAfterSeconds?: unknown } }).data;\n if (data && typeof data.retryAfterSeconds === \"number\") return data.retryAfterSeconds;\n }\n return undefined;\n}\n","/**\n * Low-level, fully-typed client for the Cronvello public `/v1` API.\n *\n * This is the thin REST layer: one method per endpoint, request/response types straight\n * from the server contract. The high-level registry (`defineCronvello`) is built on top of\n * it. Use this directly when you need ad-hoc control beyond the registry model.\n */\n\nimport { Transport, type FetchLike } from \"../internal/http.js\";\nimport { CronvelloConfigError } from \"../internal/errors.js\";\nimport type {\n AccountRunsQuery,\n AccountTasksQuery,\n JobCreateBody,\n JobUpdateBody,\n MeResponse,\n PublicJob,\n PublicRun,\n PublicTask,\n RunNowResult,\n RegistryReconcileRequest,\n RegistryReconcileResponse,\n RunsPage,\n RunsQuery,\n TaskCreateBody,\n TasksPage,\n TaskUpdateBody,\n UsageResponse,\n} from \"../internal/wire.js\";\n\n/** The production Cronvello API. Override `baseUrl` only for self-hosting or testing. */\nexport const CRONVELLO_DEFAULT_BASE_URL = \"https://api.cronvello.com\";\n\nexport interface CronvelloClientOptions {\n /** Account API key (`crn_live_…`). Required. */\n apiKey: string;\n /** API base URL. Defaults to https://api.cronvello.com. */\n baseUrl?: string;\n /** Per-request timeout in ms (default 30_000). */\n timeoutMs?: number;\n /** Retry attempts for 429/5xx/network errors (default 2). */\n maxRetries?: number;\n /** Custom fetch implementation (default: global fetch). */\n fetch?: FetchLike;\n /** Telemetry hook for every request attempt. */\n onRequest?: (info: { method: string; path: string; status: number; attempt: number; durationMs: number }) => void;\n}\n\nexport class CronvelloClient {\n private readonly transport: Transport;\n /** The resolved base URL in use. */\n readonly baseUrl: string;\n\n /** Job container operations. */\n readonly jobs: JobsResource;\n /** Scheduled task operations. */\n readonly tasks: TasksResource;\n /** Execution-history (run) operations. */\n readonly runs: RunsResource;\n /** Account identity + usage. */\n readonly account: AccountResource;\n\n constructor(options: CronvelloClientOptions) {\n if (!options || !options.apiKey) {\n throw new CronvelloConfigError(\"CronvelloClient requires an `apiKey` (crn_live_…).\");\n }\n this.baseUrl = (options.baseUrl ?? CRONVELLO_DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n this.transport = new Transport({\n baseUrl: this.baseUrl,\n apiKey: options.apiKey,\n ...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),\n ...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),\n ...(options.fetch ? { fetch: options.fetch } : {}),\n ...(options.onRequest ? { onRequest: options.onRequest } : {}),\n defaultHeaders: { \"user-agent\": \"cronvello-sdk\" },\n });\n this.jobs = new JobsResource(this.transport);\n this.tasks = new TasksResource(this.transport);\n this.runs = new RunsResource(this.transport);\n this.account = new AccountResource(this.transport);\n }\n\n /**\n * Atomically reconcile a whole code registry server-side (`PUT /v1/registry`): one job\n * container + its tasks, created/updated/pruned/started in a single call. This is what\n * `defineCronvello().sync()` prefers; the high-level API builds the body for you.\n */\n reconcileRegistry(body: RegistryReconcileRequest, opts?: { idempotencyKey?: string }): Promise<RegistryReconcileResponse> {\n return this.transport.request({\n method: \"PUT\",\n path: \"/v1/registry\",\n body,\n ...(opts?.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}),\n });\n }\n\n /**\n * Escape hatch for endpoints not yet wrapped by a typed method (heartbeat monitors,\n * maintenance windows, DLQ, notification channels, audit log, API-key self-service …).\n * `T` is the response shape you expect.\n */\n request<T>(method: string, path: string, opts?: { query?: Record<string, string | number | boolean | undefined>; body?: unknown; idempotencyKey?: string }): Promise<T> {\n return this.transport.request<T>({\n method,\n path,\n ...(opts?.query ? { query: opts.query } : {}),\n ...(opts?.body !== undefined ? { body: opts.body } : {}),\n ...(opts?.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}),\n });\n }\n}\n\nclass JobsResource {\n constructor(private readonly t: Transport) {}\n\n list(): Promise<PublicJob[]> {\n return this.t.request({ method: \"GET\", path: \"/v1/jobs\" });\n }\n get(jobId: string): Promise<PublicJob> {\n return this.t.request({ method: \"GET\", path: `/v1/jobs/${enc(jobId)}` });\n }\n create(body: JobCreateBody, opts?: { idempotencyKey?: string }): Promise<PublicJob> {\n return this.t.request({ method: \"POST\", path: \"/v1/jobs\", body, ...(opts?.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}) });\n }\n update(jobId: string, body: JobUpdateBody): Promise<PublicJob> {\n return this.t.request({ method: \"PATCH\", path: `/v1/jobs/${enc(jobId)}`, body });\n }\n delete(jobId: string): Promise<null> {\n return this.t.request({ method: \"DELETE\", path: `/v1/jobs/${enc(jobId)}` });\n }\n start(jobId: string): Promise<PublicJob> {\n return this.t.request({ method: \"POST\", path: `/v1/jobs/${enc(jobId)}/start` });\n }\n stop(jobId: string): Promise<PublicJob> {\n return this.t.request({ method: \"POST\", path: `/v1/jobs/${enc(jobId)}/stop` });\n }\n listTasks(jobId: string): Promise<PublicTask[]> {\n return this.t.request({ method: \"GET\", path: `/v1/jobs/${enc(jobId)}/tasks` });\n }\n createTask(jobId: string, body: TaskCreateBody, opts?: { idempotencyKey?: string }): Promise<PublicTask> {\n return this.t.request({ method: \"POST\", path: `/v1/jobs/${enc(jobId)}/tasks`, body, ...(opts?.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}) });\n }\n}\n\nclass TasksResource {\n constructor(private readonly t: Transport) {}\n\n /** Account-wide paginated task table. */\n list(query?: AccountTasksQuery): Promise<TasksPage> {\n return this.t.request({ method: \"GET\", path: \"/v1/tasks\", ...(query ? { query: query as Record<string, string | number | boolean | undefined> } : {}) });\n }\n get(taskId: string): Promise<PublicTask> {\n return this.t.request({ method: \"GET\", path: `/v1/tasks/${enc(taskId)}` });\n }\n update(taskId: string, body: TaskUpdateBody): Promise<PublicTask> {\n return this.t.request({ method: \"PATCH\", path: `/v1/tasks/${enc(taskId)}`, body });\n }\n delete(taskId: string): Promise<null> {\n return this.t.request({ method: \"DELETE\", path: `/v1/tasks/${enc(taskId)}` });\n }\n start(taskId: string): Promise<PublicTask> {\n return this.t.request({ method: \"POST\", path: `/v1/tasks/${enc(taskId)}/start` });\n }\n stop(taskId: string): Promise<PublicTask> {\n return this.t.request({ method: \"POST\", path: `/v1/tasks/${enc(taskId)}/stop` });\n }\n /** Trigger a one-off manual execution (does not change the schedule). */\n runNow(taskId: string): Promise<RunNowResult> {\n return this.t.request({ method: \"POST\", path: `/v1/tasks/${enc(taskId)}/run` });\n }\n listRuns(taskId: string, query?: RunsQuery): Promise<RunsPage> {\n return this.t.request({ method: \"GET\", path: `/v1/tasks/${enc(taskId)}/runs`, ...(query ? { query: query as Record<string, string | number | boolean | undefined> } : {}) });\n }\n}\n\nclass RunsResource {\n constructor(private readonly t: Transport) {}\n\n /** Account-wide paginated activity feed. */\n list(query?: AccountRunsQuery): Promise<RunsPage> {\n return this.t.request({ method: \"GET\", path: \"/v1/runs\", ...(query ? { query: query as Record<string, string | number | boolean | undefined> } : {}) });\n }\n get(runId: string): Promise<PublicRun> {\n return this.t.request({ method: \"GET\", path: `/v1/runs/${enc(runId)}` });\n }\n}\n\nclass AccountResource {\n constructor(private readonly t: Transport) {}\n\n me(): Promise<MeResponse> {\n return this.t.request({ method: \"GET\", path: \"/v1/me\" });\n }\n usage(): Promise<UsageResponse> {\n return this.t.request({ method: \"GET\", path: \"/v1/usage\" });\n }\n}\n\nfunction enc(segment: string): string {\n return encodeURIComponent(segment);\n}\n","/**\n * Render a `ReconcileResult` as a clean, human-readable summary — for boot logs, CI output, and\n * `npx cronvello sync`. Zero-dependency ANSI colouring, opt-in via `color: true`.\n */\n\nimport type { ReconcileResult, ReconcileTaskChange } from \"./types.js\";\n\nexport interface FormatOptions {\n /** Emit ANSI colour codes (default false — safe for log files). */\n color?: boolean;\n /** Label the summary as a preview (\"would …\") rather than an applied change. */\n dryRun?: boolean;\n}\n\nconst ESC = String.fromCharCode(27); // ANSI escape\nconst ANSI = {\n reset: `${ESC}[0m`,\n dim: `${ESC}[2m`,\n bold: `${ESC}[1m`,\n green: `${ESC}[32m`,\n yellow: `${ESC}[33m`,\n red: `${ESC}[31m`,\n cyan: `${ESC}[36m`,\n gray: `${ESC}[90m`,\n} as const;\n\ntype Color = keyof typeof ANSI;\n\nconst GLYPH: Record<ReconcileTaskChange[\"action\"], { sign: string; color: Color }> = {\n created: { sign: \"+\", color: \"green\" },\n updated: { sign: \"~\", color: \"yellow\" },\n unchanged: { sign: \"=\", color: \"gray\" },\n deleted: { sign: \"-\", color: \"red\" },\n skipped: { sign: \"·\", color: \"cyan\" },\n};\n\n/** Build the multi-line summary string. */\nexport function formatSyncResult(result: ReconcileResult, options: FormatOptions = {}): string {\n const paint = (s: string, c: Color) => (options.color ? `${ANSI[c]}${s}${ANSI.reset}` : s);\n const verb = options.dryRun ? \"would sync\" : \"synced\";\n const lines: string[] = [];\n\n lines.push(\n `${paint(\"Cronvello\", \"cyan\")} ${verb} ${paint(`\"${result.jobName}\"`, \"bold\")} ${paint(`(${result.jobId})`, \"gray\")}`,\n );\n\n // Per-task lines, in a stable, readable order.\n const order: ReconcileTaskChange[\"action\"][] = [\"created\", \"updated\", \"deleted\", \"skipped\", \"unchanged\"];\n const sorted = [...result.changes].sort((a, b) => order.indexOf(a.action) - order.indexOf(b.action));\n for (const c of sorted) {\n const g = GLYPH[c.action];\n const detail =\n c.changedFields && c.changedFields.length\n ? paint(` (${c.changedFields.join(\", \")})`, \"gray\")\n : c.reason\n ? paint(` (${c.reason})`, \"gray\")\n : \"\";\n lines.push(` ${paint(g.sign, g.color)} ${paint(c.action.padEnd(9), g.color)} ${c.key}${detail}`);\n }\n\n const tally = [\n result.created && `${result.created} created`,\n result.updated && `${result.updated} updated`,\n result.unchanged && `${result.unchanged} unchanged`,\n result.deleted && `${result.deleted} deleted`,\n result.skipped && `${result.skipped} skipped`,\n ].filter(Boolean);\n const summary = tally.length ? tally.join(\", \") : \"no changes\";\n const containerNote = result.jobCreated ? paint(\" · container created\", \"gray\") : \"\";\n lines.push(` ${paint(summary, \"bold\")}${containerNote}`);\n\n return lines.join(\"\\n\");\n}\n","/**\n * @cronvello/sdk — code-first cron jobs for Cronvello.\n *\n * Two layers, one package:\n * • High-level registry: `defineCronvello({ jobs })` → `.sync()` + `.expressHandler()` / `.nextHandler()`.\n * Define jobs in code; the SDK reconciles them to https://api.cronvello.com and runs them.\n * • Low-level client: `new CronvelloClient({ apiKey })` → typed access to the whole `/v1` API.\n */\n\n// ── High-level registry ────────────────────────────────────────────────────\nexport { defineCronvello, type CronvelloApp, type CronvelloEnvConfig } from \"./registry/define.js\";\nexport { formatSyncResult, type FormatOptions } from \"./registry/format.js\";\nexport type {\n CronvelloAppConfig,\n CronvelloJobConfig,\n CronvelloJobConfigWithKey,\n CronvelloJobsInput,\n CronvelloJobContext,\n CronvelloJobHandler,\n CronvelloLogger,\n CronvelloHooks,\n CronvelloRunSource,\n ReconcileResult,\n ReconcileTaskChange,\n SyncOptions,\n} from \"./registry/types.js\";\nexport type { DispatchRequest, DispatchResponse } from \"./registry/dispatch.js\";\n\n// ── Schedule builders ──────────────────────────────────────────────────────\nexport {\n cron,\n every,\n everyMinutes,\n everyHours,\n hourly,\n daily,\n weekly,\n monthly,\n weekdays,\n weekends,\n schedule,\n type Weekday,\n} from \"./schedule/index.js\";\nexport { validateCron, isValidTimeZone, type CronValidation } from \"./internal/cron.js\";\n\n// ── Low-level client ───────────────────────────────────────────────────────\nexport {\n CronvelloClient,\n CRONVELLO_DEFAULT_BASE_URL,\n type CronvelloClientOptions,\n} from \"./client/client.js\";\n\n// ── Errors ─────────────────────────────────────────────────────────────────\nexport {\n CronvelloError,\n CronvelloApiError,\n CronvelloNetworkError,\n CronvelloConfigError,\n} from \"./internal/errors.js\";\n\n// ── Wire types ─────────────────────────────────────────────────────────────\nexport type {\n Urgency,\n ExecutionMode,\n HttpMethod,\n JobStatus,\n RunStatus,\n RunType,\n CallbackStatus,\n SuccessCriteria,\n PublicJob,\n PublicTask,\n PublicRun,\n JobCreateBody,\n JobUpdateBody,\n TaskCreateBody,\n TaskUpdateBody,\n RunsPage,\n TasksPage,\n RunNowResult,\n RegistryTaskInput,\n RegistryReconcileRequest,\n RegistryReconcileResponse,\n RegistryReconcileChange,\n MeResponse,\n UsageResponse,\n Pagination,\n RunsQuery,\n AccountTasksQuery,\n AccountRunsQuery,\n} from \"./internal/wire.js\";\n\n/**\n * Generate a strong random dispatch secret (hex). Convenience for setup scripts:\n * node -e \"console.log(require('@cronvello/sdk').generateDispatchSecret())\"\n */\nexport function generateDispatchSecret(bytes = 32): string {\n const buf = new Uint8Array(bytes);\n crypto.getRandomValues(buf);\n return Array.from(buf)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n","/**\n * Zero-dependency terminal UI helpers for the `cronvello` CLI: colour, symbols, tables, boxes,\n * relative times. Colour auto-disables when stdout is not a TTY, when NO_COLOR is set, or when\n * `--no-color` was passed (see `setColor`).\n */\n\nconst E = String.fromCharCode(27);\nconst ENV = typeof process !== \"undefined\" && process.env ? process.env : {};\nlet COLOR =\n !ENV[\"NO_COLOR\"] &&\n (!!ENV[\"FORCE_COLOR\"] || !!(typeof process !== \"undefined\" && process.stdout && process.stdout.isTTY));\n\nexport function setColor(on: boolean): void {\n COLOR = on;\n}\n\nfunction wrap(code: number, close: number, s: string): string {\n return COLOR ? `${E}[${code}m${s}${E}[${close}m` : s;\n}\n\nexport const c = {\n bold: (s: string) => wrap(1, 22, s),\n dim: (s: string) => wrap(2, 22, s),\n red: (s: string) => wrap(31, 39, s),\n green: (s: string) => wrap(32, 39, s),\n yellow: (s: string) => wrap(33, 39, s),\n blue: (s: string) => wrap(34, 39, s),\n magenta: (s: string) => wrap(35, 39, s),\n cyan: (s: string) => wrap(36, 39, s),\n gray: (s: string) => wrap(90, 39, s),\n};\n\n/** Cronvello brand: indigo-ish on supported terminals (256-colour), falling back to cyan. */\nexport function brand(s: string): string {\n return COLOR ? `${E}[38;5;63m${s}${E}[39m` : s;\n}\n\nexport const sym = {\n ok: c.green(\"✔\"),\n fail: c.red(\"✗\"),\n warn: c.yellow(\"▲\"),\n info: c.cyan(\"ℹ\"),\n dot: c.gray(\"·\"),\n arrow: c.gray(\"→\"),\n};\n\n/** Visible length of a string, ignoring ANSI escape codes — for column alignment. */\nexport function visibleLength(s: string): number {\n // eslint-disable-next-line no-control-regex\n return s.replace(/\\x1b\\[[0-9;]*m/g, \"\").length;\n}\n\nfunction padEndVisible(s: string, width: number): string {\n const pad = width - visibleLength(s);\n return pad > 0 ? s + \" \".repeat(pad) : s;\n}\n\nexport interface TableColumn {\n header: string;\n /** Right-align (e.g. numbers). */\n align?: \"left\" | \"right\";\n}\n\n/** Render an aligned table. Cells may already contain colour codes. */\nexport function table(columns: TableColumn[], rows: string[][]): string {\n const widths = columns.map((col, i) =>\n Math.max(visibleLength(col.header), ...rows.map((r) => visibleLength(r[i] ?? \"\"))),\n );\n const fmtRow = (cells: string[]) =>\n cells\n .map((cell, i) => {\n const w = widths[i]!;\n if (columns[i]?.align === \"right\") {\n const pad = w - visibleLength(cell);\n return (pad > 0 ? \" \".repeat(pad) : \"\") + cell;\n }\n return padEndVisible(cell, w);\n })\n .join(\" \");\n const head = fmtRow(columns.map((col) => c.dim(col.header)));\n const body = rows.map(fmtRow);\n return [head, ...body].join(\"\\n\");\n}\n\n/** A simple rounded box around a block of text (already-coloured lines are fine). */\nexport function box(title: string, lines: string[]): string {\n const inner = [title, \"\", ...lines];\n const width = Math.max(...inner.map(visibleLength));\n const top = c.gray(\"╭─ \") + brand(title) + c.gray(\" \" + \"─\".repeat(Math.max(0, width - visibleLength(title) - 1)) + \"╮\");\n const mid = lines.map((l) => c.gray(\"│ \") + padEndVisible(l, width) + c.gray(\" │\"));\n const bot = c.gray(\"╰\" + \"─\".repeat(width + 2) + \"╯\");\n return [top, ...mid, bot].join(\"\\n\");\n}\n\n/** Compact relative time like \"3m ago\" / \"in 2h\" from an ISO string. `nowMs` is injectable for tests. */\nexport function relativeTime(iso: string | null, nowMs: number): string {\n if (!iso) return c.gray(\"—\");\n const then = Date.parse(iso);\n if (Number.isNaN(then)) return c.gray(\"—\");\n const deltaSec = Math.round((then - nowMs) / 1000);\n const future = deltaSec > 0;\n const abs = Math.abs(deltaSec);\n const unit =\n abs < 60 ? `${abs}s` : abs < 3600 ? `${Math.round(abs / 60)}m` : abs < 86400 ? `${Math.round(abs / 3600)}h` : `${Math.round(abs / 86400)}d`;\n return c.gray(future ? `in ${unit}` : `${unit} ago`);\n}\n\nexport const ICON = brand(\"◷\"); // clock-ish brand mark for the header\n","#!/usr/bin/env node\n/**\n * The `cronvello` CLI — inspect and drive your Cronvello account from the terminal.\n *\n * cronvello whoami account, plan, limits, usage\n * cronvello list [jobName] job containers, or the tasks inside one\n * cronvello tasks [--job name] account-wide task table\n * cronvello runs [--limit n] [--status failed] recent activity feed\n * cronvello run <taskId> trigger one task now\n * cronvello run <jobName> <task> …resolved by name\n * cronvello status health overview (active tasks, open DLQ, recent failures)\n * cronvello sync [configPath] [--dry] reconcile a code registry (loads your module)\n * cronvello dev [configPath] <jobKey> run a job's handler locally, no deploy\n * cronvello secret generate a strong dispatch secret\n *\n * Auth comes from the environment: CRONVELLO_API_KEY (required), CRONVELLO_API_URL (optional base).\n * Global flags: --json (machine output), --no-color, -h/--help, -v/--version.\n */\n\nimport { createRequire } from \"node:module\";\nimport { pathToFileURL } from \"node:url\";\nimport { resolve } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { CronvelloClient } from \"../client/client.js\";\nimport { CronvelloApiError, CronvelloConfigError } from \"../internal/errors.js\";\nimport { formatSyncResult } from \"../registry/format.js\";\nimport { generateDispatchSecret } from \"../index.js\";\nimport type { CronvelloApp } from \"../registry/define.js\";\nimport type { PublicJob, PublicRun, PublicTask } from \"../internal/wire.js\";\nimport { box, brand, c, ICON, relativeTime, setColor, sym, table } from \"./ui.js\";\n\nconst require2 = createRequire(import.meta.url);\nconst VERSION: string = (() => {\n try {\n return (require2(\"../package.json\") as { version: string }).version;\n } catch {\n return \"0.0.0\";\n }\n})();\n\ninterface Args {\n command: string;\n positionals: string[];\n flags: Record<string, string | boolean>;\n}\n\nfunction parseArgs(argv: string[]): Args {\n const positionals: string[] = [];\n const flags: Record<string, string | boolean> = {};\n for (let i = 0; i < argv.length; i++) {\n const a = argv[i]!;\n if (a.startsWith(\"--\")) {\n const key = a.slice(2);\n const next = argv[i + 1];\n if (next !== undefined && !next.startsWith(\"-\") && [\"limit\", \"status\", \"job\", \"type\", \"runType\"].includes(key)) {\n flags[key] = next;\n i++;\n } else {\n flags[key] = true;\n }\n } else if (a.startsWith(\"-\") && a.length > 1) {\n flags[a.slice(1)] = true;\n } else {\n positionals.push(a);\n }\n }\n return { command: positionals[0] ?? \"\", positionals: positionals.slice(1), flags };\n}\n\nconst out = (s = \"\"): void => void process.stdout.write(s + \"\\n\");\nconst json = (v: unknown): void => out(JSON.stringify(v, null, 2));\n\nfunction makeClient(): CronvelloClient {\n const apiKey = process.env[\"CRONVELLO_API_KEY\"];\n if (!apiKey) {\n throw new CronvelloConfigError(\"CRONVELLO_API_KEY is not set. Export your crn_live_… key first.\");\n }\n const baseUrl = process.env[\"CRONVELLO_API_URL\"];\n return new CronvelloClient({ apiKey, ...(baseUrl ? { baseUrl } : {}) });\n}\n\nfunction statusColor(status: string): string {\n const s = status.toUpperCase();\n if (s === \"ACTIVE\" || s === \"COMPLETED\") return c.green(status);\n if (s === \"DISABLED\" || s === \"QUEUED\" || s === \"RUNNING\") return c.cyan(status);\n if (s.startsWith(\"ERROR\") || s === \"FAILED\") return c.red(status);\n return c.yellow(status);\n}\n\nfunction header(subtitle: string): void {\n out(`${ICON} ${brand(\"Cronvello\")} ${c.gray(subtitle)}`);\n out();\n}\n\n// ─── Commands ────────────────────────────────────────────────────────────────\n\nasync function cmdWhoami(useJson: boolean): Promise<void> {\n const me = await makeClient().account.me();\n if (useJson) return json(me);\n const u = me.usage;\n const quota = u.executionQuota == null ? \"∞\" : String(u.executionQuota);\n out(\n box(`${me.accountName}`, [\n `${c.dim(\"account\")} #${me.accountId} ${me.isActive ? sym.ok : sym.fail} ${me.email}`,\n `${c.dim(\"plan\")} ${brand(me.plan?.displayName ?? \"—\")}`,\n `${c.dim(\"limits\")} ${me.limits.maxJobs ?? \"∞\"} jobs · ${me.limits.maxTasksPerJob ?? \"∞\"} tasks/job · ${me.limits.rateLimitPerMinute ?? \"∞\"}/min`,\n `${c.dim(\"usage\")} ${c.bold(String(u.executionCount))} / ${quota} executions ${c.gray(`(${u.jobsUsed} jobs)`)}`,\n `${c.dim(\"attention\")} ${me.summary.openDlqCount} DLQ · ${me.summary.heartbeatNeedsAttention} heartbeats · ${me.summary.activeMaintenanceWindows} maintenance`,\n ]),\n );\n}\n\nasync function cmdList(jobName: string | undefined, useJson: boolean): Promise<void> {\n const client = makeClient();\n if (jobName) {\n const container = (await client.jobs.list()).find((j) => j.name === jobName);\n if (!container) throw new CronvelloConfigError(`No job container named \"${jobName}\".`);\n const tasks = await client.jobs.listTasks(container.id);\n if (useJson) return json(tasks);\n header(`tasks in \"${container.name}\"`);\n out(renderTasks(tasks));\n return;\n }\n const jobs = await client.jobs.list();\n if (useJson) return json(jobs);\n header(\"job containers\");\n out(\n table(\n [{ header: \"NAME\" }, { header: \"STATUS\" }, { header: \"TASKS\", align: \"right\" }, { header: \"ACTIVE\", align: \"right\" }, { header: \"ERRORS\", align: \"right\" }, { header: \"ID\" }],\n jobs.map((j: PublicJob) => [\n c.bold(j.name),\n statusColor(j.status),\n String(j.taskCount),\n String(j.activeTaskCount),\n j.errorTaskCount ? c.red(String(j.errorTaskCount)) : c.gray(\"0\"),\n c.gray(j.id),\n ]),\n ),\n );\n out();\n out(c.gray(`${jobs.length} container(s) · ${jobs.reduce((n, j) => n + j.taskCount, 0)} task(s)`));\n}\n\nfunction renderTasks(tasks: PublicTask[]): string {\n const now = Date.now();\n return table(\n [{ header: \"TASK\" }, { header: \"STATUS\" }, { header: \"SCHEDULE\" }, { header: \"NEXT RUN\" }, { header: \"LAST\" }],\n tasks.map((t) => [\n c.bold(t.name),\n statusColor(t.status),\n c.cyan(t.schedule),\n relativeTime(t.nextRun, now),\n t.lastRunStatus ? statusColor(t.lastRunStatus) : c.gray(\"—\"),\n ]),\n );\n}\n\nasync function cmdTasks(flags: Args[\"flags\"], useJson: boolean): Promise<void> {\n const client = makeClient();\n const jobName = typeof flags[\"job\"] === \"string\" ? flags[\"job\"] : undefined;\n let jobId: string | undefined;\n if (jobName) {\n const container = (await client.jobs.list()).find((j) => j.name === jobName);\n if (!container) throw new CronvelloConfigError(`No job container named \"${jobName}\".`);\n jobId = container.id;\n }\n const page = await client.tasks.list({ limit: 100, ...(jobId ? { jobId } : {}) });\n if (useJson) return json(page);\n header(jobName ? `tasks · ${jobName}` : \"all tasks\");\n out(renderTasks(page.tasks));\n}\n\nasync function cmdRuns(flags: Args[\"flags\"], useJson: boolean): Promise<void> {\n const client = makeClient();\n const limit = clampLimit(flags[\"limit\"]);\n const status = typeof flags[\"status\"] === \"string\" ? (flags[\"status\"] as PublicRun[\"status\"]) : undefined;\n const page = await client.runs.list({ limit, ...(status ? { status } : {}) });\n if (useJson) return json(page);\n header(`recent runs${status ? ` · ${status}` : \"\"}`);\n const now = Date.now();\n out(\n table(\n [{ header: \"WHEN\" }, { header: \"TASK\" }, { header: \"JOB\" }, { header: \"STATUS\" }, { header: \"HTTP\", align: \"right\" }, { header: \"TOOK\", align: \"right\" }],\n page.runs.map((r: PublicRun) => [\n relativeTime(r.startedAt, now),\n c.bold(r.taskName),\n c.gray(r.jobName),\n statusColor(r.status),\n r.httpStatusCode == null ? c.gray(\"—\") : String(r.httpStatusCode),\n r.durationMs == null ? c.gray(\"—\") : `${r.durationMs}ms`,\n ]),\n ),\n );\n out();\n out(c.gray(`showing ${page.runs.length} of ${page.pagination.total} runs`));\n}\n\nasync function cmdRun(positionals: string[], useJson: boolean): Promise<void> {\n const client = makeClient();\n let taskId: string;\n if (positionals.length >= 2) {\n const [jobName, taskName] = positionals;\n const container = (await client.jobs.list()).find((j) => j.name === jobName);\n if (!container) throw new CronvelloConfigError(`No job container named \"${jobName}\".`);\n const task = (await client.jobs.listTasks(container.id)).find((t) => t.name === taskName);\n if (!task) throw new CronvelloConfigError(`No task \"${taskName}\" in \"${jobName}\".`);\n taskId = task.id;\n } else if (positionals.length === 1) {\n taskId = positionals[0]!;\n } else {\n throw new CronvelloConfigError(\"Usage: cronvello run <taskId> | cronvello run <jobName> <taskName>\");\n }\n const res = await client.tasks.runNow(taskId);\n if (useJson) return json(res);\n if (res.success) out(`${sym.ok} triggered ${c.bold(taskId)} ${res.runId ? c.gray(`→ ${res.runId}`) : \"\"}`);\n else out(`${sym.fail} ${c.red(res.error ?? \"run failed\")}`);\n}\n\nasync function cmdStatus(useJson: boolean): Promise<void> {\n const client = makeClient();\n const [me, jobs, failures] = await Promise.all([\n client.account.me(),\n client.jobs.list(),\n client.runs.list({ limit: 5, status: \"failed\" }),\n ]);\n if (useJson) return json({ me, jobs, recentFailures: failures.runs });\n const totalTasks = jobs.reduce((n, j) => n + j.taskCount, 0);\n const activeTasks = jobs.reduce((n, j) => n + j.activeTaskCount, 0);\n const errorTasks = jobs.reduce((n, j) => n + j.errorTaskCount, 0);\n const healthy = errorTasks === 0 && me.summary.openDlqCount === 0;\n header(\"status\");\n out(`${healthy ? sym.ok : sym.warn} ${healthy ? c.green(\"healthy\") : c.yellow(\"needs attention\")}`);\n out();\n out(` ${c.dim(\"containers\")} ${jobs.length}`);\n out(` ${c.dim(\"tasks\")} ${activeTasks}/${totalTasks} active${errorTasks ? c.red(` · ${errorTasks} errored`) : \"\"}`);\n out(` ${c.dim(\"open DLQ\")} ${me.summary.openDlqCount ? c.red(String(me.summary.openDlqCount)) : c.gray(\"0\")}`);\n out(` ${c.dim(\"executions\")} ${me.usage.executionCount} this period`);\n if (failures.runs.length) {\n out();\n out(c.dim(\" recent failures:\"));\n const now = Date.now();\n for (const r of failures.runs) out(` ${sym.fail} ${c.bold(r.taskName)} ${c.gray(r.jobName)} ${relativeTime(r.startedAt, now)} ${r.error ? c.red(truncate(r.error, 50)) : \"\"}`);\n }\n}\n\nasync function cmdSync(positionals: string[], flags: Args[\"flags\"], useJson: boolean): Promise<void> {\n const app = await loadApp(positionals[0]);\n const dryRun = !!flags[\"dry\"] || !!flags[\"dry-run\"];\n const result = await app.sync({ dryRun });\n if (useJson) return json(result);\n out(formatSyncResult(result, { color: true, dryRun }));\n}\n\nasync function cmdDev(positionals: string[], useJson: boolean): Promise<void> {\n // Last positional is the job key; an optional earlier one is the config path.\n const jobKey = positionals[positionals.length - 1];\n const configPath = positionals.length >= 2 ? positionals[0] : undefined;\n if (!jobKey) throw new CronvelloConfigError(\"Usage: cronvello dev [configPath] <jobKey>\");\n const app = await loadApp(configPath);\n if (!app.keys().includes(jobKey)) {\n throw new CronvelloConfigError(`Unknown job \"${jobKey}\". Known: ${app.keys().join(\", \") || \"(none)\"}`);\n }\n if (!useJson) out(`${sym.arrow} running ${c.bold(jobKey)} locally…`);\n const started = Date.now();\n const result = await app.trigger(jobKey);\n if (useJson) return json({ job: jobKey, result });\n out(`${sym.ok} ${c.bold(jobKey)} ${c.gray(`done in ${Date.now() - started}ms`)}`);\n if (result !== undefined && result !== null) {\n out(c.dim(\" result:\"));\n out(JSON.stringify(result, null, 2).split(\"\\n\").map((l) => \" \" + l).join(\"\\n\"));\n }\n}\n\nfunction cmdSecret(useJson: boolean): void {\n const secret = generateDispatchSecret();\n if (useJson) return json({ dispatchSecret: secret });\n out(secret);\n}\n\n// ─── Config-module loading (sync / dev) ──────────────────────────────────────\n\nconst DEFAULT_CONFIG_PATHS = [\n \"cronvello.config.ts\", \"cronvello.config.js\", \"cronvello.config.mjs\",\n \"cronvello.ts\", \"cronvello.js\", \"src/cronvello.ts\", \"src/cronvello.js\",\n];\n\nfunction looksLikeApp(v: unknown): v is CronvelloApp {\n return !!v && typeof v === \"object\" && typeof (v as CronvelloApp).sync === \"function\" && typeof (v as CronvelloApp).trigger === \"function\";\n}\n\nasync function loadApp(pathArg: string | undefined): Promise<CronvelloApp> {\n const candidate = pathArg ?? DEFAULT_CONFIG_PATHS.find((p) => existsSync(resolve(process.cwd(), p)));\n if (!candidate) {\n throw new CronvelloConfigError(\n `No config module found. Pass a path (cronvello sync ./cronvello.config.js) or add one of: ${DEFAULT_CONFIG_PATHS.join(\", \")}.`,\n );\n }\n const abs = resolve(process.cwd(), candidate);\n if (!existsSync(abs)) throw new CronvelloConfigError(`Config module not found: ${abs}`);\n\n let mod: Record<string, unknown>;\n try {\n mod = (await import(pathToFileURL(abs).href)) as Record<string, unknown>;\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n if (/Unknown file extension|\\.ts|ERR_UNKNOWN/.test(msg) && abs.endsWith(\".ts\")) {\n throw new CronvelloConfigError(\n `Could not import a TypeScript config directly. Run the CLI under a TS loader, e.g.\\n node --import tsx node_modules/@cronvello/sdk/dist/cli.js sync ${candidate}\\nor point at a compiled .js file.`,\n );\n }\n throw new CronvelloConfigError(`Failed to import ${candidate}: ${msg}`);\n }\n\n const found = looksLikeApp(mod[\"default\"]) ? mod[\"default\"]\n : looksLikeApp(mod[\"cronvello\"]) ? mod[\"cronvello\"]\n : looksLikeApp(mod[\"app\"]) ? mod[\"app\"]\n : Object.values(mod).find(looksLikeApp);\n if (!found) {\n throw new CronvelloConfigError(`${candidate} does not export a Cronvello app (export default defineCronvello({…}) or a named \\`cronvello\\`).`);\n }\n return found as CronvelloApp;\n}\n\n// ─── Help / dispatch ─────────────────────────────────────────────────────────\n\nfunction printHelp(): void {\n out(`${ICON} ${brand(\"Cronvello\")} ${c.gray(\"· code-first cron\")} ${c.dim(\"v\" + VERSION)}`);\n out();\n out(c.bold(\"USAGE\"));\n out(` ${c.cyan(\"cronvello\")} <command> [options]`);\n out();\n out(c.bold(\"COMMANDS\"));\n const cmds: [string, string][] = [\n [\"whoami\", \"account, plan, limits & usage\"],\n [\"list [jobName]\", \"job containers, or tasks inside one\"],\n [\"tasks [--job <name>]\", \"account-wide task table\"],\n [\"runs [--limit n] [--status s]\", \"recent execution feed\"],\n [\"run <taskId>\", \"trigger a task now (or: run <jobName> <taskName>)\"],\n [\"status\", \"health overview + recent failures\"],\n [\"sync [path] [--dry]\", \"reconcile a code registry (loads your module)\"],\n [\"dev [path] <jobKey>\", \"run a job handler locally, no deploy\"],\n [\"secret\", \"generate a strong dispatch secret\"],\n ];\n for (const [name, desc] of cmds) out(` ${c.cyan(name.padEnd(30))} ${c.gray(desc)}`);\n out();\n out(c.bold(\"GLOBAL\"));\n out(` ${c.cyan(\"--json\".padEnd(30))} ${c.gray(\"machine-readable output\")}`);\n out(` ${c.cyan(\"--no-color\".padEnd(30))} ${c.gray(\"disable colour\")}`);\n out(` ${c.cyan(\"-h, --help\".padEnd(30))} ${c.gray(\"show this help\")}`);\n out(` ${c.cyan(\"-v, --version\".padEnd(30))} ${c.gray(\"print version\")}`);\n out();\n out(c.gray(\"Auth: export CRONVELLO_API_KEY (crn_live_…). Optional: CRONVELLO_API_URL.\"));\n}\n\nfunction clampLimit(v: string | boolean | undefined): number {\n const n = typeof v === \"string\" ? Number(v) : NaN;\n if (!Number.isFinite(n)) return 20;\n return Math.min(Math.max(Math.trunc(n), 1), 100);\n}\n\nfunction truncate(s: string, n: number): string {\n return s.length > n ? s.slice(0, n - 1) + \"…\" : s;\n}\n\nexport async function run(argv: string[]): Promise<number> {\n const args = parseArgs(argv);\n if (args.flags[\"no-color\"]) setColor(false);\n const useJson = !!args.flags[\"json\"];\n\n if (args.flags[\"version\"] || args.flags[\"v\"]) {\n out(VERSION);\n return 0;\n }\n if (!args.command || args.flags[\"help\"] || args.flags[\"h\"] || args.command === \"help\") {\n printHelp();\n return 0;\n }\n\n try {\n switch (args.command) {\n case \"whoami\": await cmdWhoami(useJson); break;\n case \"list\": await cmdList(args.positionals[0], useJson); break;\n case \"tasks\": await cmdTasks(args.flags, useJson); break;\n case \"runs\": await cmdRuns(args.flags, useJson); break;\n case \"run\": await cmdRun(args.positionals, useJson); break;\n case \"status\": await cmdStatus(useJson); break;\n case \"sync\": await cmdSync(args.positionals, args.flags, useJson); break;\n case \"dev\": await cmdDev(args.positionals, useJson); break;\n case \"secret\": cmdSecret(useJson); break;\n default:\n out(`${sym.fail} Unknown command \"${args.command}\". Run ${c.cyan(\"cronvello --help\")}.`);\n return 1;\n }\n return 0;\n } catch (err) {\n if (err instanceof CronvelloApiError) {\n out(`${sym.fail} ${c.red(`API ${err.status}`)} ${err.message}${err.isRateLimited && err.retryAfterSeconds ? c.gray(` (retry in ${err.retryAfterSeconds}s)`) : \"\"}`);\n } else if (err instanceof CronvelloConfigError) {\n out(`${sym.fail} ${err.message}`);\n } else {\n out(`${sym.fail} ${err instanceof Error ? err.message : String(err)}`);\n }\n return 1;\n }\n}\n\n// Execute when run as a binary (not when imported by tests).\nconst invokedDirectly =\n typeof process !== \"undefined\" && Array.isArray(process.argv) && /[\\\\/]cli\\.(c?js|ts)$/.test(process.argv[1] ?? \"\");\nif (invokedDirectly) {\n run(process.argv.slice(2)).then((code) => {\n process.exitCode = code;\n });\n}\n"]}