From 023b2e6d4224ee8836225f942c1a877c985b1700 Mon Sep 17 00:00:00 2001 From: Andrei Hasna Date: Mon, 6 Jul 2026 16:42:28 +0300 Subject: [PATCH 1/5] feat(serve): add knowledge-serve HTTP API + generated SDK with API-key auth Adds the fourth surface: a Bun.serve HTTP API (knowledge-serve) wrapping the core lib PURE REMOTE per Amendment A1 (reads/writes the shared cloud Postgres directly). Public probes GET /health,/ready,/version + /openapi.json; versioned /v1 notes CRUD (knowledge_items) and /v1/registry, gated by @hasna/contracts API-key middleware. The typed SDK (KnowledgeApiClient) is generated from the serve OpenAPI document. --- scripts/generate-sdk.mjs | 36 ++ src/generated/knowledge-api-client.ts | 123 ++++++ src/index.ts | 21 + src/serve-entry.ts | 22 ++ src/serve.ts | 542 ++++++++++++++++++++++++++ tsconfig.build.json | 2 +- tsconfig.json | 2 +- 7 files changed, 746 insertions(+), 2 deletions(-) create mode 100644 scripts/generate-sdk.mjs create mode 100644 src/generated/knowledge-api-client.ts create mode 100644 src/serve-entry.ts create mode 100644 src/serve.ts diff --git a/scripts/generate-sdk.mjs b/scripts/generate-sdk.mjs new file mode 100644 index 0000000..e0a3076 --- /dev/null +++ b/scripts/generate-sdk.mjs @@ -0,0 +1,36 @@ +#!/usr/bin/env bun +/** + * Generate the typed knowledge SDK client from the serve OpenAPI document. + * + * The OpenAPI spec is the single source of truth (also served at + * GET /openapi.json). The generated client is a dependency-free fetch client + * committed to src/generated/knowledge-api-client.ts and re-exported from the + * package root, so `@hasna/knowledge` consumers get a typed self-hosted client. + * + * bun scripts/generate-sdk.mjs + */ +import { writeFileSync, mkdirSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { generateSdkFromOpenApi } from '@hasna/contracts/sdk'; +import { knowledgeOpenApi } from '../src/serve.ts'; + +const root = join(dirname(fileURLToPath(import.meta.url)), '..'); +const pkg = JSON.parse(await Bun.file(join(root, 'package.json')).text()); +const spec = knowledgeOpenApi(pkg.version); + +const { code, operations, warnings } = generateSdkFromOpenApi(spec, { + className: 'KnowledgeApiClient', + apiKeyHeader: 'x-api-key', +}); + +const outDir = join(root, 'src', 'generated'); +mkdirSync(outDir, { recursive: true }); +const outFile = join(outDir, 'knowledge-api-client.ts'); +const header = + '// @generated from the knowledge-serve OpenAPI document by scripts/generate-sdk.mjs.\n' + + '// DO NOT EDIT. Regenerate: bun scripts/generate-sdk.mjs\n\n'; +writeFileSync(outFile, header + code); + +console.log(`[knowledge] generated SDK: ${operations.length} operations -> ${outFile}`); +if (warnings.length) console.warn(`[knowledge] SDK warnings:\n ${warnings.join('\n ')}`); diff --git a/src/generated/knowledge-api-client.ts b/src/generated/knowledge-api-client.ts new file mode 100644 index 0000000..1120471 --- /dev/null +++ b/src/generated/knowledge-api-client.ts @@ -0,0 +1,123 @@ +// @generated from the knowledge-serve OpenAPI document by scripts/generate-sdk.mjs. +// DO NOT EDIT. Regenerate: bun scripts/generate-sdk.mjs + +// @generated from OpenAPI by @hasna/contracts SDK generator — DO NOT EDIT. +// Source: Knowledge 0.2.77 + +export interface Note { "id": string; "short_id"?: string | null; "title": string; "content": string; "url"?: string | null; "tags": Array; "metadata"?: Record; "archived": boolean; "created_at": string; "updated_at": string } + +export interface NoteInput { "title": string; "content"?: string; "url"?: string | null; "tags"?: Array; "metadata"?: Record } + +export interface NotePatch { "title"?: string; "content"?: string; "url"?: string | null; "tags"?: Array; "metadata"?: Record; "archived"?: boolean } + +export interface NoteList { "items": Array; "total": number } + +export interface KnowledgeApiClientOptions { + /** Base URL, e.g. process.env.APP_API_URL. */ + baseUrl: string; + /** API key, e.g. process.env.APP_API_KEY. Sent as the 'x-api-key' header. */ + apiKey?: string; + /** Custom fetch (defaults to global fetch). */ + fetch?: typeof fetch; + /** Extra headers merged into every request. */ + headers?: Record; +} + +export class ApiError extends Error { + constructor(readonly status: number, message: string, readonly body: unknown) { + super(message); + this.name = "ApiError"; + } +} + +export class KnowledgeApiClient { + private readonly baseUrl: string; + private readonly apiKey: string | undefined; + private readonly fetchImpl: typeof fetch; + private readonly baseHeaders: Record; + + constructor(options: KnowledgeApiClientOptions) { + if (!options.baseUrl) throw new Error("KnowledgeApiClient requires a baseUrl."); + this.baseUrl = options.baseUrl.replace(/\/$/, ""); + this.apiKey = options.apiKey; + this.fetchImpl = options.fetch ?? globalThis.fetch; + this.baseHeaders = options.headers ?? {}; + } + + private async request(method: string, path: string, opts: { body?: unknown; query?: Record; init?: RequestInit }): Promise { + const url = new URL(this.baseUrl + path); + if (opts.query) { + for (const [key, value] of Object.entries(opts.query)) { + if (value !== undefined && value !== null) url.searchParams.set(key, String(value)); + } + } + const headers: Record = { Accept: "application/json", ...this.baseHeaders, ...(opts.init?.headers as Record | undefined) }; + if (this.apiKey) headers["x-api-key"] = this.apiKey; + let payload: BodyInit | undefined; + if (opts.body !== undefined) { + headers["Content-Type"] = "application/json"; + payload = JSON.stringify(opts.body); + } + const response = await this.fetchImpl(url.toString(), { ...opts.init, method, headers, body: payload }); + const text = await response.text(); + const data = text ? (() => { try { return JSON.parse(text); } catch { return text; } })() : undefined; + if (!response.ok) { + throw new ApiError(response.status, `${method} ${path} failed: ${response.status}`, data); + } + return data as T; + } + + /** List knowledge items */ + async listNotes(query?: { "limit"?: number; "offset"?: number; "search"?: string }, init?: RequestInit): Promise { + return this.request("GET", `/v1/notes`, { + body: undefined, + query, + init, + }); + } + + /** Create a knowledge item */ + async createNote(body: NoteInput, init?: RequestInit): Promise { + return this.request("POST", `/v1/notes`, { + body, + query: undefined, + init, + }); + } + + /** Fetch a knowledge item */ + async getNote(id: string, init?: RequestInit): Promise { + return this.request("GET", `/v1/notes/${encodeURIComponent(String(id))}`, { + body: undefined, + query: undefined, + init, + }); + } + + /** Delete a knowledge item */ + async deleteNote(id: string, init?: RequestInit): Promise { + return this.request("DELETE", `/v1/notes/${encodeURIComponent(String(id))}`, { + body: undefined, + query: undefined, + init, + }); + } + + /** Update a knowledge item */ + async updateNote(id: string, body: NotePatch, init?: RequestInit): Promise { + return this.request("PATCH", `/v1/notes/${encodeURIComponent(String(id))}`, { + body, + query: undefined, + init, + }); + } + + /** Knowledge registry contract */ + async getRegistry(init?: RequestInit): Promise> { + return this.request("GET", `/v1/registry`, { + body: undefined, + query: undefined, + init, + }); + } +} diff --git a/src/index.ts b/src/index.ts index 40ddd1c..fafa207 100644 --- a/src/index.ts +++ b/src/index.ts @@ -383,6 +383,27 @@ export { type KnowledgeAuthConfig, type KnowledgeAuthStatus, } from './auth.js'; +export { + KnowledgeApiClient, + ApiError as KnowledgeApiError, + type KnowledgeApiClientOptions, + type Note as KnowledgeNote, + type NoteInput as KnowledgeNoteInput, + type NotePatch as KnowledgeNotePatch, + type NoteList as KnowledgeNoteList, +} from './generated/knowledge-api-client.js'; +export { + KNOWLEDGE_SERVE_APP, + createServeHandler, + startKnowledgeServe, + knowledgeOpenApi, + NoteRepo, + type NoteInput as KnowledgeServeNoteInput, + type NoteListOptions as KnowledgeServeNoteListOptions, + type ServeDeps as KnowledgeServeDeps, + type StartServeOptions as KnowledgeStartServeOptions, + type RunningServe as KnowledgeRunningServe, +} from './serve.js'; export { REMOTE_KNOWLEDGE_CONTRACT_VERSION, RemoteKnowledgeClient, diff --git a/src/serve-entry.ts b/src/serve-entry.ts new file mode 100644 index 0000000..c0f39ba --- /dev/null +++ b/src/serve-entry.ts @@ -0,0 +1,22 @@ +#!/usr/bin/env bun +/** + * @hasna/knowledge — knowledge-serve entrypoint. + * + * Boots the HTTP API (PURE REMOTE / Amendment A1). Requires cloud-mode env: + * HASNA_KNOWLEDGE_STORAGE_MODE=cloud + * HASNA_KNOWLEDGE_DATABASE_URL=postgres://... (never logged) + * HASNA_KNOWLEDGE_API_SIGNING_KEY=... (or API_KEY_SIGNING_SECRET) + * PORT=8080 (optional; default 8080) + */ +import { startKnowledgeServe } from './serve.js'; + +const running = await startKnowledgeServe(); + +const shutdown = async (signal: string): Promise => { + console.log(`[knowledge-serve] received ${signal}, shutting down`); + await running.stop(); + process.exit(0); +}; + +process.on('SIGTERM', () => void shutdown('SIGTERM')); +process.on('SIGINT', () => void shutdown('SIGINT')); diff --git a/src/serve.ts b/src/serve.ts new file mode 100644 index 0000000..b19d212 --- /dev/null +++ b/src/serve.ts @@ -0,0 +1,542 @@ +/** + * @hasna/knowledge — HTTP serve surface (knowledge-serve). + * + * A real HTTP API wrapping the knowledge core library. PURE REMOTE per + * Amendment A1: the service reads and writes the shared cloud Postgres directly + * (no local cache, no sync engine in the service). Requests are authenticated + * with @hasna/contracts API-key middleware. + * + * Surfaces: + * GET /health liveness — { status, version, mode } (public) + * GET /ready readiness — pings the DB (public) + * GET /version { status, version, mode } (public) + * GET /openapi.json OpenAPI 3 document (source for the SDK) (public) + * GET /v1/registry knowledge registry contract (auth: knowledge:read) + * POST /v1/notes create a knowledge item (auth: knowledge:write) + * GET /v1/notes list knowledge items (auth: knowledge:read) + * GET /v1/notes/{id} fetch one knowledge item (auth: knowledge:read) + * PATCH /v1/notes/{id} update a knowledge item (auth: knowledge:write) + * DELETE /v1/notes/{id} delete a knowledge item (auth: knowledge:write) + */ +import { readFileSync } from 'node:fs'; +import { verifyApiKey, ApiKeyStore, type ApiKeyVerifier, type ApiKeyPrincipal } from '@hasna/contracts/auth'; +import { createKnowledgeCloudClient } from './db/remote-storage.js'; +import { knowledgeRegistryContract } from './remote-client.js'; +import { makeId, makeShortId, type KnowledgeItem } from './store.js'; +import type { PoolQueryClient } from './generated/storage-kit/index.js'; + +export const KNOWLEDGE_SERVE_APP = 'knowledge'; + +/** + * Restore the vendored storage kit's intended `sslmode=require` semantics + * (encrypt, do NOT verify — the fleet standard for in-VPC RDS) under + * node-postgres >= 8.22, which otherwise reinterprets a bare `sslmode=require` + * as `verify-full`. Appends libpq-compat so `require`/`prefer` mean exactly what + * the kit documents. Never logs the URL. Returns the (possibly) updated value. + */ +export function normalizeCloudDatabaseUrl(env: NodeJS.ProcessEnv = process.env): string | undefined { + const key = 'HASNA_KNOWLEDGE_DATABASE_URL'; + const url = env[key] ?? env.KNOWLEDGE_DATABASE_URL; + if (!url) return url; + const lower = url.toLowerCase(); + const needsCompat = + (lower.includes('sslmode=require') || lower.includes('sslmode=prefer')) && + !lower.includes('uselibpqcompat'); + if (!needsCompat) return url; + const updated = url.includes('?') + ? `${url}&uselibpqcompat=true` + : `${url}?uselibpqcompat=true`; + env[key] = updated; + return updated; +} + +function resolveVersion(): string { + if (process.env.HASNA_KNOWLEDGE_VERSION) return process.env.HASNA_KNOWLEDGE_VERSION; + try { + // package.json sits one level up from the built bin/ or src/. + const url = new URL('../package.json', import.meta.url); + const pkg = JSON.parse(readFileSync(url, 'utf8')) as { version?: string }; + return pkg.version ?? '0.0.0'; + } catch { + return process.env.npm_package_version ?? '0.0.0'; + } +} + +function resolveSigningSecret(env: NodeJS.ProcessEnv = process.env): string { + const secret = + env.HASNA_KNOWLEDGE_API_SIGNING_KEY ?? + env.API_KEY_SIGNING_SECRET ?? + env.HASNA_API_SIGNING_KEY; + if (!secret) { + throw new Error( + 'knowledge-serve requires an API signing secret: set HASNA_KNOWLEDGE_API_SIGNING_KEY ' + + '(or API_KEY_SIGNING_SECRET / HASNA_API_SIGNING_KEY).', + ); + } + return secret; +} + +// --------------------------------------------------------------------------- +// Note repository — knowledge_items in the cloud Postgres (PURE REMOTE / A1). +// --------------------------------------------------------------------------- + +export interface NoteInput { + title: string; + content?: string; + url?: string | null; + tags?: string[]; + metadata?: Record; +} + +export interface NoteListOptions { + limit?: number; + offset?: number; + search?: string; + includeArchived?: boolean; +} + +function rowToItem(row: Record): KnowledgeItem { + const parseJson = (value: unknown, fallback: T): T => { + if (value == null) return fallback; + if (typeof value === 'string') { + try { + return JSON.parse(value) as T; + } catch { + return fallback; + } + } + return value as T; + }; + return { + id: String(row.id), + short_id: (row.short_id as string | null) ?? null, + title: String(row.title ?? ''), + content: String(row.content ?? ''), + url: (row.url as string | null) ?? null, + tags: parseJson(row.tags, []), + metadata: parseJson>(row.metadata, {}), + archived: Boolean(row.archived), + created_at: String(row.created_at), + updated_at: String(row.updated_at), + }; +} + +export class NoteRepo { + constructor(private readonly client: PoolQueryClient) {} + + async create(input: NoteInput): Promise { + if (!input.title || typeof input.title !== 'string') { + throw new HttpError(400, 'title is required'); + } + const id = makeId(); + const now = new Date().toISOString(); + const row = await this.client.get>( + `INSERT INTO knowledge_items (id, short_id, title, content, url, tags, metadata, archived, created_at, updated_at) + VALUES ($1,$2,$3,$4,$5,$6::jsonb,$7::jsonb,FALSE,$8,$9) + RETURNING *`, + [ + id, + makeShortId(id), + input.title, + input.content ?? '', + input.url ?? null, + JSON.stringify(input.tags ?? []), + JSON.stringify(input.metadata ?? {}), + now, + now, + ], + ); + return rowToItem(row!); + } + + async list(options: NoteListOptions = {}): Promise<{ items: KnowledgeItem[]; total: number }> { + const limit = Math.min(Math.max(options.limit ?? 50, 1), 200); + const offset = Math.max(options.offset ?? 0, 0); + const where: string[] = []; + const params: unknown[] = []; + if (!options.includeArchived) where.push('archived = FALSE'); + if (options.search) { + params.push(`%${options.search}%`); + where.push(`(title ILIKE $${params.length} OR content ILIKE $${params.length})`); + } + const whereSql = where.length ? `WHERE ${where.join(' AND ')}` : ''; + const totalRow = await this.client.get<{ count: string }>( + `SELECT count(*)::text AS count FROM knowledge_items ${whereSql}`, + params, + ); + const rows = await this.client.many>( + `SELECT * FROM knowledge_items ${whereSql} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${offset}`, + params, + ); + return { items: rows.map(rowToItem), total: Number(totalRow?.count ?? 0) }; + } + + async get(idOrShort: string): Promise { + const row = await this.client.get>( + `SELECT * FROM knowledge_items WHERE id = $1 OR short_id = $1 LIMIT 1`, + [idOrShort], + ); + return row ? rowToItem(row) : null; + } + + async update(idOrShort: string, patch: Partial & { archived?: boolean }): Promise { + const existing = await this.get(idOrShort); + if (!existing) return null; + const sets: string[] = []; + const params: unknown[] = []; + const push = (col: string, val: unknown, cast = '') => { + params.push(val); + sets.push(`${col} = $${params.length}${cast}`); + }; + if (patch.title !== undefined) push('title', patch.title); + if (patch.content !== undefined) push('content', patch.content); + if (patch.url !== undefined) push('url', patch.url); + if (patch.tags !== undefined) push('tags', JSON.stringify(patch.tags), '::jsonb'); + if (patch.metadata !== undefined) push('metadata', JSON.stringify(patch.metadata), '::jsonb'); + if (patch.archived !== undefined) push('archived', patch.archived); + push('updated_at', new Date().toISOString()); + params.push(existing.id); + const row = await this.client.get>( + `UPDATE knowledge_items SET ${sets.join(', ')} WHERE id = $${params.length} RETURNING *`, + params, + ); + return row ? rowToItem(row) : null; + } + + async delete(idOrShort: string): Promise { + const existing = await this.get(idOrShort); + if (!existing) return false; + await this.client.execute(`DELETE FROM knowledge_items WHERE id = $1`, [existing.id]); + return true; + } +} + +// --------------------------------------------------------------------------- +// OpenAPI document — source of truth for the generated SDK. +// --------------------------------------------------------------------------- + +export function knowledgeOpenApi(version: string): Record { + const noteSchema = { + type: 'object', + properties: { + id: { type: 'string' }, + short_id: { type: 'string', nullable: true }, + title: { type: 'string' }, + content: { type: 'string' }, + url: { type: 'string', nullable: true }, + tags: { type: 'array', items: { type: 'string' } }, + metadata: { type: 'object', additionalProperties: true }, + archived: { type: 'boolean' }, + created_at: { type: 'string' }, + updated_at: { type: 'string' }, + }, + required: ['id', 'title', 'content', 'tags', 'archived', 'created_at', 'updated_at'], + }; + const noteInput = { + type: 'object', + properties: { + title: { type: 'string' }, + content: { type: 'string' }, + url: { type: 'string', nullable: true }, + tags: { type: 'array', items: { type: 'string' } }, + metadata: { type: 'object', additionalProperties: true }, + }, + required: ['title'], + }; + const notePatch = { + type: 'object', + properties: { + title: { type: 'string' }, + content: { type: 'string' }, + url: { type: 'string', nullable: true }, + tags: { type: 'array', items: { type: 'string' } }, + metadata: { type: 'object', additionalProperties: true }, + archived: { type: 'boolean' }, + }, + }; + return { + openapi: '3.0.3', + info: { title: 'Knowledge', version, description: '@hasna/knowledge self-hosted HTTP API' }, + components: { + securitySchemes: { apiKey: { type: 'apiKey', in: 'header', name: 'x-api-key' } }, + schemas: { + Note: noteSchema, + NoteInput: noteInput, + NotePatch: notePatch, + NoteList: { + type: 'object', + properties: { + items: { type: 'array', items: { $ref: '#/components/schemas/Note' } }, + total: { type: 'integer' }, + }, + required: ['items', 'total'], + }, + }, + }, + security: [{ apiKey: [] }], + paths: { + '/v1/notes': { + get: { + operationId: 'listNotes', + summary: 'List knowledge items', + parameters: [ + { name: 'limit', in: 'query', schema: { type: 'integer' } }, + { name: 'offset', in: 'query', schema: { type: 'integer' } }, + { name: 'search', in: 'query', schema: { type: 'string' } }, + ], + responses: { + '200': { content: { 'application/json': { schema: { $ref: '#/components/schemas/NoteList' } } } }, + }, + }, + post: { + operationId: 'createNote', + summary: 'Create a knowledge item', + requestBody: { + required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/NoteInput' } } }, + }, + responses: { + '201': { content: { 'application/json': { schema: { $ref: '#/components/schemas/Note' } } } }, + }, + }, + }, + '/v1/notes/{id}': { + get: { + operationId: 'getNote', + summary: 'Fetch a knowledge item', + parameters: [{ name: 'id', in: 'path', required: true, schema: { type: 'string' } }], + responses: { + '200': { content: { 'application/json': { schema: { $ref: '#/components/schemas/Note' } } } }, + }, + }, + patch: { + operationId: 'updateNote', + summary: 'Update a knowledge item', + parameters: [{ name: 'id', in: 'path', required: true, schema: { type: 'string' } }], + requestBody: { + required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/NotePatch' } } }, + }, + responses: { + '200': { content: { 'application/json': { schema: { $ref: '#/components/schemas/Note' } } } }, + }, + }, + delete: { + operationId: 'deleteNote', + summary: 'Delete a knowledge item', + parameters: [{ name: 'id', in: 'path', required: true, schema: { type: 'string' } }], + responses: { '204': {} }, + }, + }, + '/v1/registry': { + get: { + operationId: 'getRegistry', + summary: 'Knowledge registry contract', + responses: { + '200': { content: { 'application/json': { schema: { type: 'object', additionalProperties: true } } } }, + }, + }, + }, + }, + }; +} + +// --------------------------------------------------------------------------- +// HTTP handler +// --------------------------------------------------------------------------- + +class HttpError extends Error { + constructor(public status: number, message: string) { + super(message); + } +} + +function json(body: unknown, status = 200): Response { + return new Response(JSON.stringify(body), { + status, + headers: { 'content-type': 'application/json' }, + }); +} + +export interface ServeDeps { + client: PoolQueryClient; + verifier: ApiKeyVerifier; + store: ApiKeyStore; + version: string; +} + +export function createServeHandler(deps: ServeDeps): (req: Request) => Promise { + const repo = new NoteRepo(deps.client); + const mode = 'cloud'; + + const authOrThrow = async ( + req: Request, + requiredScopes: string[], + ): Promise => { + const url = new URL(req.url); + const decision = await deps.verifier.authenticate(req.headers, { + method: req.method, + path: url.pathname, + requiredScopes, + }); + if (decision.ok === false) { + throw new HttpError(decision.status, decision.message); + } + void deps.store.touchLastUsed(decision.principal.kid).catch(() => {}); + return decision.principal; + }; + + return async (req: Request): Promise => { + const url = new URL(req.url); + const path = url.pathname.replace(/\/+$/, '') || '/'; + const method = req.method.toUpperCase(); + + try { + // ---- Public probes ---- + if (path === '/health' && method === 'GET') { + return json({ status: 'ok', version: deps.version, mode }); + } + if (path === '/version' && method === 'GET') { + return json({ status: 'ok', version: deps.version, mode }); + } + if (path === '/ready' && method === 'GET') { + try { + await deps.client.query('SELECT 1'); + return json({ status: 'ready', version: deps.version, mode }); + } catch { + return json({ status: 'unavailable', version: deps.version, mode }, 503); + } + } + if (path === '/openapi.json' && method === 'GET') { + return json(knowledgeOpenApi(deps.version)); + } + + // ---- Registry ---- + if (path === '/v1/registry' && method === 'GET') { + await authOrThrow(req, ['knowledge:read']); + return json( + knowledgeRegistryContract({ + mode: 'hosted', + sourceSchemes: ['open-files', 's3', 'web', 'file'], + storageType: 's3', + artifactUriPrefix: process.env.HASNA_KNOWLEDGE_S3_PREFIX ?? null, + }), + ); + } + + // ---- Notes CRUD ---- + if (path === '/v1/notes') { + if (method === 'GET') { + await authOrThrow(req, ['knowledge:read']); + const result = await repo.list({ + limit: url.searchParams.has('limit') ? Number(url.searchParams.get('limit')) : undefined, + offset: url.searchParams.has('offset') ? Number(url.searchParams.get('offset')) : undefined, + search: url.searchParams.get('search') ?? undefined, + includeArchived: url.searchParams.get('includeArchived') === 'true', + }); + return json(result); + } + if (method === 'POST') { + await authOrThrow(req, ['knowledge:write']); + const body = (await req.json().catch(() => ({}))) as NoteInput; + const item = await repo.create(body); + return json(item, 201); + } + return json({ error: 'method_not_allowed' }, 405); + } + + const noteMatch = path.match(/^\/v1\/notes\/([^/]+)$/); + if (noteMatch) { + const id = decodeURIComponent(noteMatch[1]!); + if (method === 'GET') { + await authOrThrow(req, ['knowledge:read']); + const item = await repo.get(id); + return item ? json(item) : json({ error: 'not_found' }, 404); + } + if (method === 'PATCH') { + await authOrThrow(req, ['knowledge:write']); + const body = (await req.json().catch(() => ({}))) as Partial; + const item = await repo.update(id, body); + return item ? json(item) : json({ error: 'not_found' }, 404); + } + if (method === 'DELETE') { + await authOrThrow(req, ['knowledge:write']); + const ok = await repo.delete(id); + return ok ? new Response(null, { status: 204 }) : json({ error: 'not_found' }, 404); + } + return json({ error: 'method_not_allowed' }, 405); + } + + return json({ error: 'not_found', path }, 404); + } catch (error) { + if (error instanceof HttpError) { + const reason = error.status === 401 || error.status === 403 ? 'unauthorized' : 'error'; + return json({ error: reason, message: error.message }, error.status); + } + const message = error instanceof Error ? error.message : 'internal error'; + return json({ error: 'internal', message }, 500); + } + }; +} + +export interface StartServeOptions { + port?: number; + hostname?: string; + env?: NodeJS.ProcessEnv; +} + +export interface RunningServe { + port: number; + hostname: string; + stop: () => Promise; +} + +/** + * Start the knowledge HTTP service on Bun. Opens a PURE-REMOTE cloud pool and a + * contracts API-key verifier backed by the api_keys table (revocation). + */ +export async function startKnowledgeServe(options: StartServeOptions = {}): Promise { + const env = options.env ?? process.env; + const port = options.port ?? Number(env.PORT ?? env.HASNA_KNOWLEDGE_SERVE_PORT ?? 8080); + const hostname = options.hostname ?? env.HOST ?? '0.0.0.0'; + const version = resolveVersion(); + + normalizeCloudDatabaseUrl(env); + const client = createKnowledgeCloudClient(); + const store = new ApiKeyStore(client); + // DDL (the api_keys table) is owned by the migration task (run as the DB + // owner role); the service connects with a DML-only app role per least + // privilege, so it must NOT attempt CREATE TABLE here. The api_keys schema is + // a deploy prerequisite (bun scripts/apply-cloud-migrations.mjs). + const verifier = verifyApiKey({ + app: KNOWLEDGE_SERVE_APP, + signingSecret: resolveSigningSecret(env), + isRevoked: store.isRevoked, + audit: (e) => { + if (e.outcome === 'deny') { + // Never log tokens/keys — kid + reason only. + console.warn(`[knowledge-serve] auth deny kid=${e.kid ?? '-'} reason=${e.reason} ${e.method} ${e.path}`); + } + }, + }); + + const handler = createServeHandler({ client, verifier, store, version }); + + // Bun.serve is provided by the Bun runtime the Dockerfile uses. + const BunGlobal = (globalThis as unknown as { Bun?: { serve: (o: unknown) => { port: number; stop: () => void } } }) + .Bun; + if (!BunGlobal?.serve) { + throw new Error('knowledge-serve requires the Bun runtime (Bun.serve unavailable).'); + } + const server = BunGlobal.serve({ port, hostname, fetch: handler }); + console.log(`[knowledge-serve] listening on http://${hostname}:${server.port} (mode=cloud, version=${version})`); + + return { + port: server.port, + hostname, + stop: async () => { + server.stop(); + await client.close(); + }, + }; +} diff --git a/tsconfig.build.json b/tsconfig.build.json index 7647c84..30aa799 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -7,6 +7,6 @@ "outDir": "./dist", "rootDir": "./src" }, - "include": ["src/index.ts", "src/storage.ts"], + "include": ["src/index.ts", "src/storage.ts", "src/serve.ts"], "exclude": ["node_modules", "dist", "bin", "tests"] } diff --git a/tsconfig.json b/tsconfig.json index f3a1088..935a321 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "target": "ES2022", "module": "ESNext", "moduleResolution": "bundler", - "lib": ["ES2022"], + "lib": ["ES2022", "DOM"], "types": ["bun"], "outDir": "./dist", "rootDir": ".", From b3aacc065c6658e887c88317dc4e12101edee942 Mon Sep 17 00:00:00 2001 From: Andrei Hasna Date: Mon, 6 Jul 2026 16:42:28 +0300 Subject: [PATCH 2/5] feat(db): knowledge_items catalog migration + api_keys ledger in runner Appends the cloud knowledge_items table to pg-migrations and folds the @hasna/contracts api_keys migrations into the cloud migration runner (prefers an owner-scoped DSN; restores kit sslmode=require semantics under pg >= 8.22). --- scripts/apply-cloud-migrations.mjs | 27 +++++++++++++++++++++++++++ src/db/pg-migrations.ts | 19 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/scripts/apply-cloud-migrations.mjs b/scripts/apply-cloud-migrations.mjs index 1659344..2e7f957 100644 --- a/scripts/apply-cloud-migrations.mjs +++ b/scripts/apply-cloud-migrations.mjs @@ -21,17 +21,44 @@ import { defineMigration, createKnowledgeCloudClient, } from '../src/storage.ts'; +import { apiKeyMigrations } from '@hasna/contracts/auth'; const dryRun = process.argv.includes('--dry-run'); const asJson = process.argv.includes('--json'); +// Migrations run DDL and therefore need the DB OWNER role. Prefer an +// owner-scoped DSN when one is injected (HASNA_KNOWLEDGE_DATABASE_URL_OWNER), +// falling back to the standard app DSN for local/dev runs. The resolved value +// is written to HASNA_KNOWLEDGE_DATABASE_URL so the cloud client picks it up. +// Also restore kit-intended sslmode=require semantics under node-postgres +// >= 8.22 (see src/serve.ts::normalizeCloudDatabaseUrl). Never logs the URL. +{ + const key = 'HASNA_KNOWLEDGE_DATABASE_URL'; + let url = process.env.HASNA_KNOWLEDGE_DATABASE_URL_OWNER ?? process.env[key]; + if (url) { + const lower = url.toLowerCase(); + if ( + (lower.includes('sslmode=require') || lower.includes('sslmode=prefer')) && + !lower.includes('uselibpqcompat') + ) { + url = url.includes('?') ? `${url}&uselibpqcompat=true` : `${url}?uselibpqcompat=true`; + } + process.env[key] = url; + } +} + // The extension migration must run before the table DDL that relies on // gen_random_uuid()/pgcrypto. Kept first and stable. +// +// The api-keys ledger (from @hasna/contracts/auth) backs the serve API-key +// auth middleware. Its ids are namespaced ("api_keys_*") so they never clash +// with the knowledge_pg_* schema migrations, and they run last (additive). const migrations = [ defineMigration('knowledge_pg_000_extensions', 'CREATE EXTENSION IF NOT EXISTS pgcrypto'), ...PG_MIGRATIONS.map((sql, index) => defineMigration(`knowledge_pg_${String(index + 1).padStart(3, '0')}`, sql), ), + ...apiKeyMigrations().map((m) => defineMigration(m.id, m.sql)), ]; const client = createKnowledgeCloudClient(); diff --git a/src/db/pg-migrations.ts b/src/db/pg-migrations.ts index 5eb51a0..7f854ab 100644 --- a/src/db/pg-migrations.ts +++ b/src/db/pg-migrations.ts @@ -337,4 +337,23 @@ export const PG_MIGRATIONS: string[] = [ `CREATE INDEX IF NOT EXISTS idx_sync_imports_source ON knowledge_sync_imports(source_machine_id, applied_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_target ON knowledge_sync_imports(target_machine_id, applied_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)`, + + // Knowledge catalog items (the CLI add/list/get catalog). In local mode this + // catalog lives in the JSON store (db.json); in cloud mode (PURE REMOTE, + // Amendment A1) it is durable here. Kept faithful to the KnowledgeItem shape. + `CREATE TABLE IF NOT EXISTS knowledge_items ( + id TEXT PRIMARY KEY, + short_id TEXT, + title TEXT NOT NULL, + content TEXT NOT NULL DEFAULT '', + url TEXT, + tags JSONB NOT NULL DEFAULT '[]'::jsonb, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + archived BOOLEAN NOT NULL DEFAULT FALSE, + created_at TEXT NOT NULL DEFAULT NOW()::text, + updated_at TEXT NOT NULL DEFAULT NOW()::text + )`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_short_id ON knowledge_items(short_id)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_archived ON knowledge_items(archived)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_created ON knowledge_items(created_at)`, ]; From 68733625f40eb394dc1a2d80d9f02ce1b68ce979 Mon Sep 17 00:00:00 2001 From: Andrei Hasna Date: Mon, 6 Jul 2026 16:42:28 +0300 Subject: [PATCH 3/5] build: knowledge-serve bin, ARM64/bun Dockerfile, compose, service contract --- Dockerfile | 46 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 31 +++++++++++++++++++++++++----- hasna.contract.json | 26 +++++++++++++++++++++---- package.json | 14 +++++++++++--- 4 files changed, 105 insertions(+), 12 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..219c8fe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1 +# ============================================================================= +# @hasna/knowledge — knowledge-serve (self-hosted HTTP API) image. +# ARM64 / Bun. PURE REMOTE per Amendment A1: the service reads/writes the shared +# cloud Postgres directly and stores artifacts in S3. No local state. +# ============================================================================= +FROM --platform=linux/arm64 oven/bun:1-alpine AS build +WORKDIR /app + +# Install dependencies first (better layer caching). The repo does not commit a +# lockfile (*.lock is gitignored), so resolve from package.json. +COPY package.json ./ +RUN bun install + +# Build the CLI, MCP, serve bins + dist (also regenerates the OpenAPI SDK). +COPY . . +RUN bun run build + +# ---- runtime ----------------------------------------------------------------- +FROM --platform=linux/arm64 oven/bun:1-alpine AS runtime +WORKDIR /app +ENV NODE_ENV=production \ + PORT=8080 \ + HASNA_KNOWLEDGE_STORAGE_MODE=cloud + +# App code, deps, and the migration runner (owner-scoped migrations run as a +# one-shot task; the service itself runs as the app role). +COPY --from=build /app/node_modules ./node_modules +COPY --from=build /app/bin ./bin +COPY --from=build /app/dist ./dist +COPY --from=build /app/src ./src +COPY --from=build /app/scripts ./scripts +COPY --from=build /app/package.json ./package.json + +# Drop privileges (the bun base image ships a non-root `bun` user). +USER bun + +EXPOSE 8080 + +# Liveness: the public /health probe. +HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \ + CMD wget -qO- "http://127.0.0.1:${PORT}/health" || exit 1 + +# Default command: start the HTTP service. The migration task overrides the +# command with: bun scripts/apply-cloud-migrations.mjs +CMD ["bun", "bin/knowledge-serve.js"] diff --git a/docker-compose.yml b/docker-compose.yml index ef63f0f..b8c55dc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,16 @@ # @hasna/knowledge — local development stack. # # Provides a throwaway Postgres for exercising cloud mode (PURE REMOTE per -# Amendment A1) against a local database instead of the shared RDS. The -# knowledge CLI/MCP itself runs on the host; point it at this Postgres with: +# Amendment A1) against a local database instead of the shared RDS, plus the +# knowledge-serve HTTP API built from the Dockerfile. # -# export HASNA_KNOWLEDGE_STORAGE_MODE=cloud -# export HASNA_KNOWLEDGE_DATABASE_URL=postgres://knowledge:knowledge@localhost:5432/knowledge -# knowledge db init # or run the storage-kit migrations +# # 1. bring up postgres and apply the schema +# docker compose up -d postgres +# HASNA_KNOWLEDGE_STORAGE_MODE=cloud \ +# HASNA_KNOWLEDGE_DATABASE_URL=postgres://knowledge:knowledge@localhost:5432/knowledge \ +# bun scripts/apply-cloud-migrations.mjs +# # 2. build + start the service +# docker compose up --build serve # # Never commit real credentials; the values below are local-only throwaways. services: @@ -27,5 +31,22 @@ services: timeout: 5s retries: 10 + serve: + build: + context: . + dockerfile: Dockerfile + container_name: hasna-knowledge-serve + depends_on: + postgres: + condition: service_healthy + environment: + PORT: "8080" + HASNA_KNOWLEDGE_STORAGE_MODE: cloud + HASNA_KNOWLEDGE_DATABASE_URL: postgres://knowledge:knowledge@postgres:5432/knowledge?sslmode=disable + # Local-only throwaway signing secret. Use a real secret in production. + HASNA_KNOWLEDGE_API_SIGNING_KEY: local-dev-signing-secret-change-me + ports: + - "8080:8080" + volumes: knowledge-pgdata: diff --git a/hasna.contract.json b/hasna.contract.json index e93f10d..d99bdd4 100644 --- a/hasna.contract.json +++ b/hasna.contract.json @@ -1,16 +1,34 @@ { "schema": "hasna.service_contract.v1", "name": "knowledge", - "class": "cli-with-store", + "class": "service", "contractVersion": "v1", - "kitVersion": "0.4.0", - "description": "Agent-friendly knowledge store CLI + MCP. Local mode uses SQLite at ~/.hasna/knowledge/knowledge.db; cloud mode (HASNA_KNOWLEDGE_STORAGE_MODE=cloud) is PURE REMOTE per Amendment A1 with all reads/writes hitting the shared cloud Postgres and artifacts in S3.", - "bins": ["knowledge", "knowledge-mcp"], + "kitVersion": "0.4.1", + "description": "Agent-friendly knowledge store. CLI + MCP + HTTP API (knowledge-serve) + generated SDK. Local mode uses SQLite at ~/.hasna/knowledge/knowledge.db; cloud mode (HASNA_KNOWLEDGE_STORAGE_MODE=cloud) is PURE REMOTE per Amendment A1: the serve process reads/writes the shared cloud Postgres directly and stores artifacts in S3, with API-key auth via @hasna/contracts.", + "bins": ["knowledge", "knowledge-mcp", "knowledge-serve"], "storage": { "mode": "local", "envPrefix": "HASNA_KNOWLEDGE_", "aliasEnvPrefix": "KNOWLEDGE_", "databaseUrlSecretRef": "hasna/oss/knowledge/database-url", "sqlitePath": "~/.hasna/knowledge/knowledge.db" + }, + "metadata": { + "service": { + "port": 8080, + "healthPath": "/health", + "readyPath": "/ready", + "versionPath": "/version", + "openapiPath": "/openapi.json", + "apiVersion": "v1", + "auth": "api-key", + "signingSecretSecretRef": "hasna/oss/knowledge/api-key-signing-secret", + "migrationCommand": ["bun", "scripts/apply-cloud-migrations.mjs"], + "ownerDatabaseUrlSecretRef": "hasna/oss/knowledge/database-url-owner" + }, + "client": { + "apiUrlEnv": "KNOWLEDGE_API_URL", + "apiKeyEnv": "KNOWLEDGE_API_KEY" + } } } diff --git a/package.json b/package.json index cc35d2a..46ecec1 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,18 @@ "./storage": { "import": "./dist/storage.js", "types": "./dist/storage.d.ts" + }, + "./serve": { + "import": "./dist/serve.js", + "types": "./dist/serve.d.ts" } }, "main": "./dist/index.js", "types": "./dist/index.d.ts", "bin": { "knowledge": "bin/knowledge.js", - "knowledge-mcp": "bin/knowledge-mcp.js" + "knowledge-mcp": "bin/knowledge-mcp.js", + "knowledge-serve": "bin/knowledge-serve.js" }, "files": [ "bin", @@ -33,8 +38,11 @@ "smoke:machines-adapter": "bun scripts/smoke-machines-adapter.mjs", "smoke:machine-sync-release": "bun scripts/smoke-machine-sync-release.mjs", "smoke:open-files-installed-boundary": "bun scripts/smoke-open-files-installed-boundary.mjs", + "generate:sdk": "bun scripts/generate-sdk.mjs", + "migrate:cloud": "bun scripts/apply-cloud-migrations.mjs", + "serve": "bun src/serve-entry.ts", "verify:generated": "bun run build && bun scripts/verify-generated-artifacts.mjs", - "build": "rm -rf dist && bun build --target=bun --outfile=bin/knowledge.js --minify --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/cli.ts && bun build --target=bun --outfile=bin/knowledge-mcp.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @modelcontextprotocol/sdk --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/mcp.js && bun build ./src/index.ts ./src/storage.ts --outdir ./dist --target bun --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek && bun scripts/strip-generated-trailing-whitespace.mjs && bunx tsc -p tsconfig.build.json", + "build": "bun run generate:sdk && rm -rf dist && bun build --target=bun --outfile=bin/knowledge.js --minify --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/cli.ts && bun build --target=bun --outfile=bin/knowledge-mcp.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @modelcontextprotocol/sdk --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/mcp.js && bun build --target=bun --outfile=bin/knowledge-serve.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/serve-entry.ts && bun build ./src/index.ts ./src/storage.ts ./src/serve.ts --outdir ./dist --target bun --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek && bun scripts/strip-generated-trailing-whitespace.mjs && bunx tsc -p tsconfig.build.json", "prepublishOnly": "bun run build" }, "keywords": [ @@ -69,7 +77,7 @@ "@ai-sdk/openai": "^3.0.68", "@aws-sdk/client-s3": "^3.1063.0", "@aws-sdk/credential-providers": "^3.1063.0", - "@hasna/contracts": "^0.2.2", + "@hasna/contracts": "0.4.1", "@hasna/events": "^0.1.3", "@modelcontextprotocol/sdk": "^1.29.0", "@types/json-schema": "^7.0.15", From 8c8d913a42155d68a4431483067fe0acf8ae4aff Mon Sep 17 00:00:00 2001 From: Andrei Hasna Date: Mon, 6 Jul 2026 16:42:28 +0300 Subject: [PATCH 4/5] chore(build): regenerate bins + dist for knowledge-serve + SDK --- bin/knowledge-mcp.js | 31 +- bin/knowledge-serve.js | 714 ++++++++++ bin/knowledge.js | 421 +++--- dist/generated/knowledge-api-client.d.ts | 70 + dist/index.d.ts | 2 + dist/index.js | 1545 +++++++++++++++------- dist/serve.d.ts | 62 + dist/serve.js | 1352 +++++++++++++++++++ dist/storage.js | 17 +- 9 files changed, 3501 insertions(+), 713 deletions(-) create mode 100755 bin/knowledge-serve.js create mode 100644 dist/generated/knowledge-api-client.d.ts create mode 100644 dist/serve.d.ts create mode 100644 dist/serve.js diff --git a/bin/knowledge-mcp.js b/bin/knowledge-mcp.js index 5459efa..5c107e5 100755 --- a/bin/knowledge-mcp.js +++ b/bin/knowledge-mcp.js @@ -15008,13 +15008,18 @@ var package_default = { "./storage": { import: "./dist/storage.js", types: "./dist/storage.d.ts" + }, + "./serve": { + import: "./dist/serve.js", + types: "./dist/serve.d.ts" } }, main: "./dist/index.js", types: "./dist/index.d.ts", bin: { knowledge: "bin/knowledge.js", - "knowledge-mcp": "bin/knowledge-mcp.js" + "knowledge-mcp": "bin/knowledge-mcp.js", + "knowledge-serve": "bin/knowledge-serve.js" }, files: [ "bin", @@ -15030,8 +15035,11 @@ var package_default = { "smoke:machines-adapter": "bun scripts/smoke-machines-adapter.mjs", "smoke:machine-sync-release": "bun scripts/smoke-machine-sync-release.mjs", "smoke:open-files-installed-boundary": "bun scripts/smoke-open-files-installed-boundary.mjs", + "generate:sdk": "bun scripts/generate-sdk.mjs", + "migrate:cloud": "bun scripts/apply-cloud-migrations.mjs", + serve: "bun src/serve-entry.ts", "verify:generated": "bun run build && bun scripts/verify-generated-artifacts.mjs", - build: "rm -rf dist && bun build --target=bun --outfile=bin/knowledge.js --minify --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/cli.ts && bun build --target=bun --outfile=bin/knowledge-mcp.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @modelcontextprotocol/sdk --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/mcp.js && bun build ./src/index.ts ./src/storage.ts --outdir ./dist --target bun --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek && bun scripts/strip-generated-trailing-whitespace.mjs && bunx tsc -p tsconfig.build.json", + build: "bun run generate:sdk && rm -rf dist && bun build --target=bun --outfile=bin/knowledge.js --minify --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/cli.ts && bun build --target=bun --outfile=bin/knowledge-mcp.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @modelcontextprotocol/sdk --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/mcp.js && bun build --target=bun --outfile=bin/knowledge-serve.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/serve-entry.ts && bun build ./src/index.ts ./src/storage.ts ./src/serve.ts --outdir ./dist --target bun --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek && bun scripts/strip-generated-trailing-whitespace.mjs && bunx tsc -p tsconfig.build.json", prepublishOnly: "bun run build" }, keywords: [ @@ -15066,7 +15074,7 @@ var package_default = { "@ai-sdk/openai": "^3.0.68", "@aws-sdk/client-s3": "^3.1063.0", "@aws-sdk/credential-providers": "^3.1063.0", - "@hasna/contracts": "^0.2.2", + "@hasna/contracts": "0.4.1", "@hasna/events": "^0.1.3", "@modelcontextprotocol/sdk": "^1.29.0", "@types/json-schema": "^7.0.15", @@ -28631,7 +28639,22 @@ var PG_MIGRATIONS = [ `CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_updated ON knowledge_sync_table_clocks(updated_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_source ON knowledge_sync_imports(source_machine_id, applied_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_target ON knowledge_sync_imports(target_machine_id, applied_at)`, - `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)` + `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)`, + `CREATE TABLE IF NOT EXISTS knowledge_items ( + id TEXT PRIMARY KEY, + short_id TEXT, + title TEXT NOT NULL, + content TEXT NOT NULL DEFAULT '', + url TEXT, + tags JSONB NOT NULL DEFAULT '[]'::jsonb, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + archived BOOLEAN NOT NULL DEFAULT FALSE, + created_at TEXT NOT NULL DEFAULT NOW()::text, + updated_at TEXT NOT NULL DEFAULT NOW()::text + )`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_short_id ON knowledge_items(short_id)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_archived ON knowledge_items(archived)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_created ON knowledge_items(created_at)` ]; // src/generated/storage-kit/tls.ts import { readFileSync as readFileSync13 } from "fs"; diff --git a/bin/knowledge-serve.js b/bin/knowledge-serve.js new file mode 100755 index 0000000..62f102e --- /dev/null +++ b/bin/knowledge-serve.js @@ -0,0 +1,714 @@ +#!/usr/bin/env bun +// @bun + +// src/serve.ts +import { readFileSync as readFileSync2 } from "fs"; +import { verifyApiKey, ApiKeyStore } from "@hasna/contracts/auth"; + +// src/generated/storage-kit/mode.ts +var DEPRECATED_STORAGE_MODE_ALIASES = [ + "remote", + "hybrid", + "self_hosted" +]; +function normalizeStorageMode(value) { + const normalized = value.trim().toLowerCase().replace(/-/g, "_"); + if (normalized === "local") + return { mode: "local", deprecatedAlias: null }; + if (normalized === "cloud") + return { mode: "cloud", deprecatedAlias: null }; + if (DEPRECATED_STORAGE_MODE_ALIASES.includes(normalized)) { + return { mode: "cloud", deprecatedAlias: normalized }; + } + throw new Error(`Unknown storage mode: ${value}. Use local or cloud.`); +} +function envToken(name) { + return name.toUpperCase().replace(/-/g, "_"); +} +function storageEnvKeys(name) { + const token = envToken(name); + return { + modeKeys: [`HASNA_${token}_STORAGE_MODE`, `${token}_STORAGE_MODE`], + databaseUrlKeys: [`HASNA_${token}_DATABASE_URL`, `${token}_DATABASE_URL`] + }; +} +function firstEnv(env, keys) { + for (const key of keys) { + const value = env[key]?.trim(); + if (value) + return { key, value }; + } + return null; +} +function resolveStorageMode(name, env = process.env) { + const { modeKeys, databaseUrlKeys } = storageEnvKeys(name); + const dbHit = firstEnv(env, databaseUrlKeys); + const databaseUrlPresent = Boolean(dbHit); + const databaseUrlSource = dbHit ? dbHit.key : null; + const modeHit = firstEnv(env, modeKeys); + if (!modeHit) { + return { + mode: "local", + source: "default", + deprecatedAlias: null, + databaseUrlPresent, + databaseUrlSource, + warning: null + }; + } + const { mode, deprecatedAlias } = normalizeStorageMode(modeHit.value); + const warnings = []; + if (deprecatedAlias) { + warnings.push(`Deprecated storage mode '${deprecatedAlias}' from ${modeHit.key} is treated as 'cloud'. Set ${modeKeys[0]}=cloud instead.`); + } + if (mode === "cloud" && !databaseUrlPresent) { + warnings.push(`cloud mode needs ${databaseUrlKeys[0]} (PURE REMOTE: reads and writes go to cloud Postgres).`); + } + if (modeHit.key !== modeKeys[0]) { + warnings.push(`Using alias env ${modeHit.key}; the canonical key is ${modeKeys[0]}.`); + } + return { + mode, + source: modeHit.key, + deprecatedAlias, + databaseUrlPresent, + databaseUrlSource, + warning: warnings.length > 0 ? warnings.join(" ") : null + }; +} +function resolveDatabaseUrl(name, env = process.env) { + const { databaseUrlKeys } = storageEnvKeys(name); + const hit = firstEnv(env, databaseUrlKeys); + return hit ? hit.value : null; +} +// src/generated/storage-kit/tls.ts +import { readFileSync } from "fs"; +function sslModeFromConnectionString(connectionString) { + const queryStart = connectionString.indexOf("?"); + const params = new URLSearchParams(queryStart === -1 ? "" : connectionString.slice(queryStart + 1)); + const sslmode = params.get("sslmode")?.trim().toLowerCase(); + if (sslmode) { + switch (sslmode) { + case "disable": + case "prefer": + case "require": + case "verify-ca": + case "verify-full": + return sslmode; + case "allow": + return "prefer"; + default: + throw new Error(`Unknown sslmode '${sslmode}' in connection string.`); + } + } + const ssl = params.get("ssl")?.trim().toLowerCase(); + if (ssl && ["1", "true", "yes", "on", "require"].includes(ssl)) + return "require"; + return "disable"; +} +function loadCaBundle(options) { + const env = options.env ?? process.env; + if (options.ca && options.ca.trim()) + return options.ca; + const path = options.caCertPath ?? env.PGSSLROOTCERT ?? env.NODE_EXTRA_CA_CERTS; + if (path && path.trim()) + return readFileSync(path.trim(), "utf8"); + return null; +} +function resolveTlsConfig(connectionString, options = {}) { + const mode = sslModeFromConnectionString(connectionString); + if (mode === "disable") { + return; + } + const ca = loadCaBundle(options); + if (mode === "prefer" || mode === "require") { + return ca ? { rejectUnauthorized: false, ca } : { rejectUnauthorized: false }; + } + if (!ca) { + throw new Error(`sslmode=${mode} requires a CA bundle. Set PGSSLROOTCERT (or pass caCertPath/ca) to the ` + `Amazon RDS global bundle: https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem`); + } + return { rejectUnauthorized: true, ca }; +} +// src/generated/storage-kit/query.ts +function wrapExecutor(executor) { + return { + async query(sql, params) { + const result = await executor.query(sql, params); + return { rows: result.rows, rowCount: result.rowCount ?? result.rows.length }; + }, + async many(sql, params) { + const result = await executor.query(sql, params); + return result.rows; + }, + async get(sql, params) { + const result = await executor.query(sql, params); + return result.rows[0] ?? null; + }, + async one(sql, params) { + const result = await executor.query(sql, params); + if (result.rows.length !== 1) { + throw new Error(`Expected exactly one row, got ${result.rows.length}.`); + } + return result.rows[0]; + }, + async execute(sql, params) { + await executor.query(sql, params); + } + }; +} +function createQueryClient(pool) { + const base = wrapExecutor(pool); + return { + ...base, + pool, + async transaction(fn) { + const client = await pool.connect(); + try { + await client.query("BEGIN"); + const result = await fn(wrapExecutor(client)); + await client.query("COMMIT"); + return result; + } catch (error) { + try { + await client.query("ROLLBACK"); + } catch {} + throw error; + } finally { + client.release(); + } + }, + async close() { + await pool.end(); + } + }; +} +// src/generated/storage-kit/pool.ts +import pg from "pg"; +function createPgPool(options) { + const ssl = resolveTlsConfig(options.connectionString, { + ...options.ca !== undefined ? { ca: options.ca } : {}, + ...options.caCertPath !== undefined ? { caCertPath: options.caCertPath } : {}, + ...options.env !== undefined ? { env: options.env } : {} + }); + const config = { connectionString: options.connectionString }; + if (ssl !== undefined) + config.ssl = ssl; + if (options.max !== undefined) + config.max = options.max; + if (options.idleTimeoutMillis !== undefined) + config.idleTimeoutMillis = options.idleTimeoutMillis; + if (options.connectionTimeoutMillis !== undefined) + config.connectionTimeoutMillis = options.connectionTimeoutMillis; + if (options.applicationName !== undefined) + config.application_name = options.applicationName; + return new pg.Pool(config); +} +function createCloudPoolFromEnv(appName, options = {}) { + const env = options.env ?? process.env; + const resolution = resolveStorageMode(appName, env); + if (resolution.mode !== "cloud") { + throw new Error(`createCloudPoolFromEnv requires ${appName} storage mode 'cloud', got '${resolution.mode}'. ` + `Set HASNA_${appName.toUpperCase().replace(/-/g, "_")}_STORAGE_MODE=cloud.`); + } + const connectionString = resolveDatabaseUrl(appName, env); + if (!connectionString) { + throw new Error(`cloud mode for ${appName} needs a database URL. Set ` + `HASNA_${appName.toUpperCase().replace(/-/g, "_")}_DATABASE_URL.`); + } + const pool = createPgPool({ + connectionString, + ...options.ca !== undefined ? { ca: options.ca } : {}, + ...options.caCertPath !== undefined ? { caCertPath: options.caCertPath } : {}, + env, + ...options.max !== undefined ? { max: options.max } : {}, + ...options.idleTimeoutMillis !== undefined ? { idleTimeoutMillis: options.idleTimeoutMillis } : {}, + ...options.connectionTimeoutMillis !== undefined ? { connectionTimeoutMillis: options.connectionTimeoutMillis } : {}, + ...options.applicationName !== undefined ? { applicationName: options.applicationName } : {} + }); + return { + client: createQueryClient(pool), + connectionSource: resolution.databaseUrlSource ?? "unknown" + }; +} +// src/db/remote-storage.ts +var KNOWLEDGE_APP_NAME = "knowledge"; +function createKnowledgeCloudClient() { + return createCloudPoolFromEnv(KNOWLEDGE_APP_NAME, { applicationName: "@hasna/knowledge" }).client; +} + +// src/remote-client.ts +var REMOTE_KNOWLEDGE_CONTRACT_VERSION = 1; +function knowledgeRegistryContract(input) { + return { + contract_version: REMOTE_KNOWLEDGE_CONTRACT_VERSION, + service: "open-knowledge", + mode: input.mode, + capabilities: [ + "registry", + "search", + "ask", + "build", + "sync", + "status", + "logs", + "artifacts", + "open-files-source-refs", + "s3-generated-artifacts" + ], + endpoints: { + registry: "/api/v1/knowledge/registry", + search: "/api/v1/knowledge/search", + ask: "/api/v1/knowledge/ask", + build: "/api/v1/knowledge/build", + sync: "/api/v1/knowledge/sync", + run_status: "/api/v1/knowledge/runs/{run_id}", + run_logs: "/api/v1/knowledge/runs/{run_id}/logs", + run_artifacts: "/api/v1/knowledge/runs/{run_id}/artifacts" + }, + source_contract: { + owner: "open-files", + preferred_ref: "open-files", + allowed_schemes: input.sourceSchemes, + raw_source_bytes_stored_in_open_knowledge: false + }, + artifact_contract: { + storage_type: input.storageType, + uri_prefix: input.artifactUriPrefix, + generated_only: true + } + }; +} + +// src/workspace.ts +import { dirname, join, resolve } from "path"; +var HASNA_KNOWLEDGE_APP_PATH = join(".hasna", "knowledge"); +var LEGACY_HASNA_KNOWLEDGE_APP_PATH = join(".hasna", "apps", "knowledge"); + +// src/store.ts +function makeId() { + return `k_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`; +} +function makeShortId(id) { + return id.replace(/^k_/, "").slice(0, 12); +} + +// src/serve.ts +var KNOWLEDGE_SERVE_APP = "knowledge"; +function normalizeCloudDatabaseUrl(env = process.env) { + const key = "HASNA_KNOWLEDGE_DATABASE_URL"; + const url = env[key] ?? env.KNOWLEDGE_DATABASE_URL; + if (!url) + return url; + const lower = url.toLowerCase(); + const needsCompat = (lower.includes("sslmode=require") || lower.includes("sslmode=prefer")) && !lower.includes("uselibpqcompat"); + if (!needsCompat) + return url; + const updated = url.includes("?") ? `${url}&uselibpqcompat=true` : `${url}?uselibpqcompat=true`; + env[key] = updated; + return updated; +} +function resolveVersion() { + if (process.env.HASNA_KNOWLEDGE_VERSION) + return process.env.HASNA_KNOWLEDGE_VERSION; + try { + const url = new URL("../package.json", import.meta.url); + const pkg = JSON.parse(readFileSync2(url, "utf8")); + return pkg.version ?? "0.0.0"; + } catch { + return process.env.npm_package_version ?? "0.0.0"; + } +} +function resolveSigningSecret(env = process.env) { + const secret = env.HASNA_KNOWLEDGE_API_SIGNING_KEY ?? env.API_KEY_SIGNING_SECRET ?? env.HASNA_API_SIGNING_KEY; + if (!secret) { + throw new Error("knowledge-serve requires an API signing secret: set HASNA_KNOWLEDGE_API_SIGNING_KEY " + "(or API_KEY_SIGNING_SECRET / HASNA_API_SIGNING_KEY)."); + } + return secret; +} +function rowToItem(row) { + const parseJson = (value, fallback) => { + if (value == null) + return fallback; + if (typeof value === "string") { + try { + return JSON.parse(value); + } catch { + return fallback; + } + } + return value; + }; + return { + id: String(row.id), + short_id: row.short_id ?? null, + title: String(row.title ?? ""), + content: String(row.content ?? ""), + url: row.url ?? null, + tags: parseJson(row.tags, []), + metadata: parseJson(row.metadata, {}), + archived: Boolean(row.archived), + created_at: String(row.created_at), + updated_at: String(row.updated_at) + }; +} + +class NoteRepo { + client; + constructor(client) { + this.client = client; + } + async create(input) { + if (!input.title || typeof input.title !== "string") { + throw new HttpError(400, "title is required"); + } + const id = makeId(); + const now = new Date().toISOString(); + const row = await this.client.get(`INSERT INTO knowledge_items (id, short_id, title, content, url, tags, metadata, archived, created_at, updated_at) + VALUES ($1,$2,$3,$4,$5,$6::jsonb,$7::jsonb,FALSE,$8,$9) + RETURNING *`, [ + id, + makeShortId(id), + input.title, + input.content ?? "", + input.url ?? null, + JSON.stringify(input.tags ?? []), + JSON.stringify(input.metadata ?? {}), + now, + now + ]); + return rowToItem(row); + } + async list(options = {}) { + const limit = Math.min(Math.max(options.limit ?? 50, 1), 200); + const offset = Math.max(options.offset ?? 0, 0); + const where = []; + const params = []; + if (!options.includeArchived) + where.push("archived = FALSE"); + if (options.search) { + params.push(`%${options.search}%`); + where.push(`(title ILIKE $${params.length} OR content ILIKE $${params.length})`); + } + const whereSql = where.length ? `WHERE ${where.join(" AND ")}` : ""; + const totalRow = await this.client.get(`SELECT count(*)::text AS count FROM knowledge_items ${whereSql}`, params); + const rows = await this.client.many(`SELECT * FROM knowledge_items ${whereSql} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${offset}`, params); + return { items: rows.map(rowToItem), total: Number(totalRow?.count ?? 0) }; + } + async get(idOrShort) { + const row = await this.client.get(`SELECT * FROM knowledge_items WHERE id = $1 OR short_id = $1 LIMIT 1`, [idOrShort]); + return row ? rowToItem(row) : null; + } + async update(idOrShort, patch) { + const existing = await this.get(idOrShort); + if (!existing) + return null; + const sets = []; + const params = []; + const push = (col, val, cast = "") => { + params.push(val); + sets.push(`${col} = $${params.length}${cast}`); + }; + if (patch.title !== undefined) + push("title", patch.title); + if (patch.content !== undefined) + push("content", patch.content); + if (patch.url !== undefined) + push("url", patch.url); + if (patch.tags !== undefined) + push("tags", JSON.stringify(patch.tags), "::jsonb"); + if (patch.metadata !== undefined) + push("metadata", JSON.stringify(patch.metadata), "::jsonb"); + if (patch.archived !== undefined) + push("archived", patch.archived); + push("updated_at", new Date().toISOString()); + params.push(existing.id); + const row = await this.client.get(`UPDATE knowledge_items SET ${sets.join(", ")} WHERE id = $${params.length} RETURNING *`, params); + return row ? rowToItem(row) : null; + } + async delete(idOrShort) { + const existing = await this.get(idOrShort); + if (!existing) + return false; + await this.client.execute(`DELETE FROM knowledge_items WHERE id = $1`, [existing.id]); + return true; + } +} +function knowledgeOpenApi(version) { + const noteSchema = { + type: "object", + properties: { + id: { type: "string" }, + short_id: { type: "string", nullable: true }, + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true }, + archived: { type: "boolean" }, + created_at: { type: "string" }, + updated_at: { type: "string" } + }, + required: ["id", "title", "content", "tags", "archived", "created_at", "updated_at"] + }; + const noteInput = { + type: "object", + properties: { + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true } + }, + required: ["title"] + }; + const notePatch = { + type: "object", + properties: { + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true }, + archived: { type: "boolean" } + } + }; + return { + openapi: "3.0.3", + info: { title: "Knowledge", version, description: "@hasna/knowledge self-hosted HTTP API" }, + components: { + securitySchemes: { apiKey: { type: "apiKey", in: "header", name: "x-api-key" } }, + schemas: { + Note: noteSchema, + NoteInput: noteInput, + NotePatch: notePatch, + NoteList: { + type: "object", + properties: { + items: { type: "array", items: { $ref: "#/components/schemas/Note" } }, + total: { type: "integer" } + }, + required: ["items", "total"] + } + } + }, + security: [{ apiKey: [] }], + paths: { + "/v1/notes": { + get: { + operationId: "listNotes", + summary: "List knowledge items", + parameters: [ + { name: "limit", in: "query", schema: { type: "integer" } }, + { name: "offset", in: "query", schema: { type: "integer" } }, + { name: "search", in: "query", schema: { type: "string" } } + ], + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/NoteList" } } } } + } + }, + post: { + operationId: "createNote", + summary: "Create a knowledge item", + requestBody: { + required: true, + content: { "application/json": { schema: { $ref: "#/components/schemas/NoteInput" } } } + }, + responses: { + "201": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + } + }, + "/v1/notes/{id}": { + get: { + operationId: "getNote", + summary: "Fetch a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + }, + patch: { + operationId: "updateNote", + summary: "Update a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + requestBody: { + required: true, + content: { "application/json": { schema: { $ref: "#/components/schemas/NotePatch" } } } + }, + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + }, + delete: { + operationId: "deleteNote", + summary: "Delete a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + responses: { "204": {} } + } + }, + "/v1/registry": { + get: { + operationId: "getRegistry", + summary: "Knowledge registry contract", + responses: { + "200": { content: { "application/json": { schema: { type: "object", additionalProperties: true } } } } + } + } + } + } + }; +} + +class HttpError extends Error { + status; + constructor(status, message) { + super(message); + this.status = status; + } +} +function json(body, status = 200) { + return new Response(JSON.stringify(body), { + status, + headers: { "content-type": "application/json" } + }); +} +function createServeHandler(deps) { + const repo = new NoteRepo(deps.client); + const mode2 = "cloud"; + const authOrThrow = async (req, requiredScopes) => { + const url = new URL(req.url); + const decision = await deps.verifier.authenticate(req.headers, { + method: req.method, + path: url.pathname, + requiredScopes + }); + if (decision.ok === false) { + throw new HttpError(decision.status, decision.message); + } + deps.store.touchLastUsed(decision.principal.kid).catch(() => {}); + return decision.principal; + }; + return async (req) => { + const url = new URL(req.url); + const path = url.pathname.replace(/\/+$/, "") || "/"; + const method = req.method.toUpperCase(); + try { + if (path === "/health" && method === "GET") { + return json({ status: "ok", version: deps.version, mode: mode2 }); + } + if (path === "/version" && method === "GET") { + return json({ status: "ok", version: deps.version, mode: mode2 }); + } + if (path === "/ready" && method === "GET") { + try { + await deps.client.query("SELECT 1"); + return json({ status: "ready", version: deps.version, mode: mode2 }); + } catch { + return json({ status: "unavailable", version: deps.version, mode: mode2 }, 503); + } + } + if (path === "/openapi.json" && method === "GET") { + return json(knowledgeOpenApi(deps.version)); + } + if (path === "/v1/registry" && method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + return json(knowledgeRegistryContract({ + mode: "hosted", + sourceSchemes: ["open-files", "s3", "web", "file"], + storageType: "s3", + artifactUriPrefix: process.env.HASNA_KNOWLEDGE_S3_PREFIX ?? null + })); + } + if (path === "/v1/notes") { + if (method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + const result = await repo.list({ + limit: url.searchParams.has("limit") ? Number(url.searchParams.get("limit")) : undefined, + offset: url.searchParams.has("offset") ? Number(url.searchParams.get("offset")) : undefined, + search: url.searchParams.get("search") ?? undefined, + includeArchived: url.searchParams.get("includeArchived") === "true" + }); + return json(result); + } + if (method === "POST") { + await authOrThrow(req, ["knowledge:write"]); + const body = await req.json().catch(() => ({})); + const item = await repo.create(body); + return json(item, 201); + } + return json({ error: "method_not_allowed" }, 405); + } + const noteMatch = path.match(/^\/v1\/notes\/([^/]+)$/); + if (noteMatch) { + const id = decodeURIComponent(noteMatch[1]); + if (method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + const item = await repo.get(id); + return item ? json(item) : json({ error: "not_found" }, 404); + } + if (method === "PATCH") { + await authOrThrow(req, ["knowledge:write"]); + const body = await req.json().catch(() => ({})); + const item = await repo.update(id, body); + return item ? json(item) : json({ error: "not_found" }, 404); + } + if (method === "DELETE") { + await authOrThrow(req, ["knowledge:write"]); + const ok = await repo.delete(id); + return ok ? new Response(null, { status: 204 }) : json({ error: "not_found" }, 404); + } + return json({ error: "method_not_allowed" }, 405); + } + return json({ error: "not_found", path }, 404); + } catch (error) { + if (error instanceof HttpError) { + const reason = error.status === 401 || error.status === 403 ? "unauthorized" : "error"; + return json({ error: reason, message: error.message }, error.status); + } + const message = error instanceof Error ? error.message : "internal error"; + return json({ error: "internal", message }, 500); + } + }; +} +async function startKnowledgeServe(options = {}) { + const env = options.env ?? process.env; + const port = options.port ?? Number(env.PORT ?? env.HASNA_KNOWLEDGE_SERVE_PORT ?? 8080); + const hostname = options.hostname ?? env.HOST ?? "0.0.0.0"; + const version = resolveVersion(); + normalizeCloudDatabaseUrl(env); + const client = createKnowledgeCloudClient(); + const store = new ApiKeyStore(client); + const verifier = verifyApiKey({ + app: KNOWLEDGE_SERVE_APP, + signingSecret: resolveSigningSecret(env), + isRevoked: store.isRevoked, + audit: (e) => { + if (e.outcome === "deny") { + console.warn(`[knowledge-serve] auth deny kid=${e.kid ?? "-"} reason=${e.reason} ${e.method} ${e.path}`); + } + } + }); + const handler = createServeHandler({ client, verifier, store, version }); + const BunGlobal = globalThis.Bun; + if (!BunGlobal?.serve) { + throw new Error("knowledge-serve requires the Bun runtime (Bun.serve unavailable)."); + } + const server = BunGlobal.serve({ port, hostname, fetch: handler }); + console.log(`[knowledge-serve] listening on http://${hostname}:${server.port} (mode=cloud, version=${version})`); + return { + port: server.port, + hostname, + stop: async () => { + server.stop(); + await client.close(); + } + }; +} + +// src/serve-entry.ts +var running = await startKnowledgeServe(); +var shutdown = async (signal) => { + console.log(`[knowledge-serve] received ${signal}, shutting down`); + await running.stop(); + process.exit(0); +}; +process.on("SIGTERM", () => void shutdown("SIGTERM")); +process.on("SIGINT", () => void shutdown("SIGINT")); diff --git a/bin/knowledge.js b/bin/knowledge.js index 1149748..e26a040 100755 --- a/bin/knowledge.js +++ b/bin/knowledge.js @@ -1,97 +1,97 @@ #!/usr/bin/env bun // @bun -var OL=Object.create;var{getPrototypeOf:LL,defineProperty:ro,getOwnPropertyNames:bL}=Object;var UL=Object.prototype.hasOwnProperty;function mL(e){return this[e]}var DL,RL,hL=(e,r,t)=>{var i=e!=null&&typeof e==="object";if(i){var n=r?DL??=new WeakMap:RL??=new WeakMap,_=n.get(e);if(_)return _}t=e!=null?OL(LL(e)):{};let u=r||!e||!e.__esModule?ro(t,"default",{value:e,enumerable:!0}):t;for(let c of bL(e))if(!UL.call(u,c))ro(u,c,{get:mL.bind(e,c),enumerable:!0});if(i)n.set(e,u);return u};var Hr=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var wL=(e)=>e;function AL(e,r){this[e]=wL.bind(null,r)}var Qe=(e,r)=>{for(var t in r)ro(e,t,{get:r[t],enumerable:!0,configurable:!0,set:AL.bind(r,t)})};var h=(e,r)=>()=>(e&&(r=e(e=0)),r);var B=import.meta.require;function $(e,r,t){function i(c,d){if(!c._zod)Object.defineProperty(c,"_zod",{value:{def:d,constr:u,traits:new Set},enumerable:!1});if(c._zod.traits.has(e))return;c._zod.traits.add(e),r(c,d);let o=u.prototype,a=Object.keys(o);for(let g=0;g{if(t?.Parent&&c instanceof t.Parent)return!0;return c?._zod?.traits?.has(e)}}),Object.defineProperty(u,"name",{value:e}),u}function ie(e){if(e)Object.assign(nt,e);return nt}var dk,ru,tu,rr,it,nt;var _t=h(()=>{ru=Object.freeze({status:"aborted"});tu=Symbol("zod_brand");rr=class rr extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};it=class it extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}};(dk=globalThis).__zod_globalConfig??(dk.__zod_globalConfig={});nt=globalThis.__zod_globalConfig});var b={};Qe(b,{unwrapMessage:()=>Vn,uint8ArrayToHex:()=>_R,uint8ArrayToBase64url:()=>nR,uint8ArrayToBase64:()=>lk,stringifyPrimitive:()=>O,slugify:()=>Qo,shallowClone:()=>so,safeExtend:()=>ZD,required:()=>eR,randomString:()=>qD,propertyKeyTypes:()=>sn,promiseAllObject:()=>CD,primitiveTypes:()=>po,prefixIssues:()=>Oe,pick:()=>HD,partial:()=>pD,parsedType:()=>L,optionalKeys:()=>eg,omit:()=>VD,objectClone:()=>JD,numKeys:()=>GD,nullish:()=>Xr,normalizeParams:()=>m,mergeDefs:()=>fr,merge:()=>sD,jsonStringifyReplacer:()=>st,joinValues:()=>I,issue:()=>en,isPlainObject:()=>xr,isObject:()=>ut,hexToUint8Array:()=>iR,getSizableOrigin:()=>pn,getParsedType:()=>YD,getLengthableOrigin:()=>ei,getEnumValues:()=>Qn,getElementAtPath:()=>MD,floatSafeRemainder:()=>Vo,finalizeIssue:()=>ke,extend:()=>QD,explicitlyAborted:()=>ng,escapeRegex:()=>je,esc:()=>nu,defineLazy:()=>z,createTransparentProxy:()=>BD,cloneDef:()=>zD,clone:()=>fe,cleanRegex:()=>Zn,cleanEnum:()=>rR,captureStackTrace:()=>iu,cached:()=>pt,base64urlToUint8Array:()=>tR,base64ToUint8Array:()=>gk,assignProp:()=>yr,assertNotEqual:()=>PD,assertNever:()=>KD,assertIs:()=>FD,assertEqual:()=>jD,assert:()=>WD,allowsEval:()=>Zo,aborted:()=>jr,NUMBER_FORMAT_RANGES:()=>rg,Class:()=>Ek,BIGINT_FORMAT_RANGES:()=>tg});function jD(e){return e}function PD(e){return e}function FD(e){}function KD(e){throw Error("Unexpected value in exhaustive check")}function WD(e){}function Qn(e){let r=Object.values(e).filter((i)=>typeof i==="number");return Object.entries(e).filter(([i,n])=>r.indexOf(+i)===-1).map(([i,n])=>n)}function I(e,r="|"){return e.map((t)=>O(t)).join(r)}function st(e,r){if(typeof r==="bigint")return r.toString();return r}function pt(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw Error("cached value already set")}}}function Xr(e){return e===null||e===void 0}function Zn(e){let r=e.startsWith("^")?1:0,t=e.endsWith("$")?e.length-1:e.length;return e.slice(r,t)}function Vo(e,r){let t=e/r,i=Math.round(t),n=Number.EPSILON*Math.max(Math.abs(t),1);if(Math.abs(t-i)t?.[i],e)}function CD(e){let r=Object.keys(e),t=r.map((i)=>e[i]);return Promise.all(t).then((i)=>{let n={};for(let _=0;_r};if(r?.message!==void 0){if(r?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");r.error=r.message}if(delete r.message,typeof r.error==="string")return{...r,error:()=>r.error};return r}function BD(e){let r;return new Proxy({},{get(t,i,n){return r??(r=e()),Reflect.get(r,i,n)},set(t,i,n,_){return r??(r=e()),Reflect.set(r,i,n,_)},has(t,i){return r??(r=e()),Reflect.has(r,i)},deleteProperty(t,i){return r??(r=e()),Reflect.deleteProperty(r,i)},ownKeys(t){return r??(r=e()),Reflect.ownKeys(r)},getOwnPropertyDescriptor(t,i){return r??(r=e()),Reflect.getOwnPropertyDescriptor(r,i)},defineProperty(t,i,n){return r??(r=e()),Reflect.defineProperty(r,i,n)}})}function O(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function eg(e){return Object.keys(e).filter((r)=>{return e[r]._zod.optin==="optional"&&e[r]._zod.optout==="optional"})}function HD(e,r){let t=e._zod.def,i=t.checks;if(i&&i.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let _=fr(e._zod.def,{get shape(){let u={};for(let c in r){if(!(c in t.shape))throw Error(`Unrecognized key: "${c}"`);if(!r[c])continue;u[c]=t.shape[c]}return yr(this,"shape",u),u},checks:[]});return fe(e,_)}function VD(e,r){let t=e._zod.def,i=t.checks;if(i&&i.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let _=fr(e._zod.def,{get shape(){let u={...e._zod.def.shape};for(let c in r){if(!(c in t.shape))throw Error(`Unrecognized key: "${c}"`);if(!r[c])continue;delete u[c]}return yr(this,"shape",u),u},checks:[]});return fe(e,_)}function QD(e,r){if(!xr(r))throw Error("Invalid input to extend: expected a plain object");let t=e._zod.def.checks;if(t&&t.length>0){let _=e._zod.def.shape;for(let u in r)if(Object.getOwnPropertyDescriptor(_,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let n=fr(e._zod.def,{get shape(){let _={...e._zod.def.shape,...r};return yr(this,"shape",_),_}});return fe(e,n)}function ZD(e,r){if(!xr(r))throw Error("Invalid input to safeExtend: expected a plain object");let t=fr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...r};return yr(this,"shape",i),i}});return fe(e,t)}function sD(e,r){if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let t=fr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...r._zod.def.shape};return yr(this,"shape",i),i},get catchall(){return r._zod.def.catchall},checks:r._zod.def.checks??[]});return fe(e,t)}function pD(e,r,t){let n=r._zod.def.checks;if(n&&n.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=fr(r._zod.def,{get shape(){let c=r._zod.def.shape,d={...c};if(t)for(let o in t){if(!(o in c))throw Error(`Unrecognized key: "${o}"`);if(!t[o])continue;d[o]=e?new e({type:"optional",innerType:c[o]}):c[o]}else for(let o in c)d[o]=e?new e({type:"optional",innerType:c[o]}):c[o];return yr(this,"shape",d),d},checks:[]});return fe(r,u)}function eR(e,r,t){let i=fr(r._zod.def,{get shape(){let n=r._zod.def.shape,_={...n};if(t)for(let u in t){if(!(u in _))throw Error(`Unrecognized key: "${u}"`);if(!t[u])continue;_[u]=new e({type:"nonoptional",innerType:n[u]})}else for(let u in n)_[u]=new e({type:"nonoptional",innerType:n[u]});return yr(this,"shape",_),_}});return fe(r,i)}function jr(e,r=0){if(e.aborted===!0)return!0;for(let t=r;t{var i;return(i=t).path??(i.path=[]),t.path.unshift(e),t})}function Vn(e){return typeof e==="string"?e:e?.message}function ke(e,r,t){let i=e.message?e.message:Vn(e.inst?._zod.def?.error?.(e))??Vn(r?.error?.(e))??Vn(t.customError?.(e))??Vn(t.localeError?.(e))??"Invalid input",{inst:n,continue:_,input:u,...c}=e;if(c.path??(c.path=[]),c.message=i,r?.reportInput)c.input=u;return c}function pn(e){if(e instanceof Set)return"set";if(e instanceof Map)return"map";if(e instanceof File)return"file";return"unknown"}function ei(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function L(e){let r=typeof e;switch(r){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&"constructor"in t&&t.constructor)return t.constructor.name}}return r}function en(...e){let[r,t,i]=e;if(typeof r==="string")return{message:r,code:"custom",input:t,inst:i};return{...r}}function rR(e){return Object.entries(e).filter(([r,t])=>{return Number.isNaN(Number.parseInt(r,10))}).map((r)=>r[1])}function gk(e){let r=atob(e),t=new Uint8Array(r.length);for(let i=0;ir.toString(16).padStart(2,"0")).join("")}class Ek{constructor(...e){}}var ok,iu,Zo,YD=(e)=>{let r=typeof e;switch(r){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(e))return"array";if(e===null)return"null";if(e.then&&typeof e.then==="function"&&e.catch&&typeof e.catch==="function")return"promise";if(typeof Map<"u"&&e instanceof Map)return"map";if(typeof Set<"u"&&e instanceof Set)return"set";if(typeof Date<"u"&&e instanceof Date)return"date";if(typeof File<"u"&&e instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${r}`)}},sn,po,rg,tg;var y=h(()=>{_t();ok=Symbol("evaluating");iu="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};Zo=pt(()=>{if(nt.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});sn=new Set(["string","number","symbol"]),po=new Set(["string","number","bigint","boolean","symbol","undefined"]);rg={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},tg={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]}});function rn(e,r=(t)=>t.message){let t={},i=[];for(let n of e.issues)if(n.path.length>0)t[n.path[0]]=t[n.path[0]]||[],t[n.path[0]].push(r(n));else i.push(r(n));return{formErrors:i,fieldErrors:t}}function tn(e,r=(t)=>t.message){let t={_errors:[]},i=(n,_=[])=>{for(let u of n.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map((c)=>i({issues:c},[..._,...u.path]));else if(u.code==="invalid_key")i({issues:u.issues},[..._,...u.path]);else if(u.code==="invalid_element")i({issues:u.issues},[..._,...u.path]);else{let c=[..._,...u.path];if(c.length===0)t._errors.push(r(u));else{let d=t,o=0;while(ot.message){let t={errors:[]},i=(n,_=[])=>{var u,c;for(let d of n.issues)if(d.code==="invalid_union"&&d.errors.length)d.errors.map((o)=>i({issues:o},[..._,...d.path]));else if(d.code==="invalid_key")i({issues:d.issues},[..._,...d.path]);else if(d.code==="invalid_element")i({issues:d.issues},[..._,...d.path]);else{let o=[..._,...d.path];if(o.length===0){t.errors.push(r(d));continue}let a=t,g=0;while(gtypeof i==="object"?i.key:i);for(let i of t)if(typeof i==="number")r.push(`[${i}]`);else if(typeof i==="symbol")r.push(`[${JSON.stringify(String(i))}]`);else if(/[^\w$]/.test(i))r.push(`[${JSON.stringify(i)}]`);else{if(r.length)r.push(".");r.push(i)}return r.join("")}function uu(e){let r=[],t=[...e.issues].sort((i,n)=>(i.path??[]).length-(n.path??[]).length);for(let i of t)if(r.push(`\u2716 ${i.message}`),i.path?.length)r.push(` \u2192 at ${Tk(i.path)}`);return r.join(` -`)}var ak=(e,r)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:r,enumerable:!1}),e.message=JSON.stringify(r,st,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},ri,Le;var ig=h(()=>{_t();y();ri=$("$ZodError",ak),Le=$("$ZodError",ak,{Parent:Error})});var nn=(e)=>(r,t,i,n)=>{let _=i?{...i,async:!1}:{async:!1},u=r._zod.run({value:t,issues:[]},_);if(u instanceof Promise)throw new rr;if(u.issues.length){let c=new(n?.Err??e)(u.issues.map((d)=>ke(d,_,ie())));throw iu(c,n?.callee),c}return u.value},cu,_n=(e)=>async(r,t,i,n)=>{let _=i?{...i,async:!0}:{async:!0},u=r._zod.run({value:t,issues:[]},_);if(u instanceof Promise)u=await u;if(u.issues.length){let c=new(n?.Err??e)(u.issues.map((d)=>ke(d,_,ie())));throw iu(c,n?.callee),c}return u.value},du,un=(e)=>(r,t,i)=>{let n=i?{...i,async:!1}:{async:!1},_=r._zod.run({value:t,issues:[]},n);if(_ instanceof Promise)throw new rr;return _.issues.length?{success:!1,error:new(e??ri)(_.issues.map((u)=>ke(u,n,ie())))}:{success:!0,data:_.value}},_g,cn=(e)=>async(r,t,i)=>{let n=i?{...i,async:!0}:{async:!0},_=r._zod.run({value:t,issues:[]},n);if(_ instanceof Promise)_=await _;return _.issues.length?{success:!1,error:new e(_.issues.map((u)=>ke(u,n,ie())))}:{success:!0,data:_.value}},ug,ou=(e)=>(r,t,i)=>{let n=i?{...i,direction:"backward"}:{direction:"backward"};return nn(e)(r,t,n)},cR,gu=(e)=>(r,t,i)=>{return nn(e)(r,t,i)},dR,lu=(e)=>async(r,t,i)=>{let n=i?{...i,direction:"backward"}:{direction:"backward"};return _n(e)(r,t,n)},oR,Eu=(e)=>async(r,t,i)=>{return _n(e)(r,t,i)},gR,au=(e)=>(r,t,i)=>{let n=i?{...i,direction:"backward"}:{direction:"backward"};return un(e)(r,t,n)},lR,Tu=(e)=>(r,t,i)=>{return un(e)(r,t,i)},ER,fu=(e)=>async(r,t,i)=>{let n=i?{...i,direction:"backward"}:{direction:"backward"};return cn(e)(r,t,n)},aR,$u=(e)=>async(r,t,i)=>{return cn(e)(r,t,i)},TR;var cg=h(()=>{_t();ig();y();cu=nn(Le),du=_n(Le),_g=un(Le),ug=cn(Le),cR=ou(Le),dR=gu(Le),oR=lu(Le),gR=Eu(Le),lR=au(Le),ER=Tu(Le),aR=fu(Le),TR=$u(Le)});var be={};Qe(be,{xid:()=>lg,uuid7:()=>NR,uuid6:()=>vR,uuid4:()=>$R,uuid:()=>ct,uppercase:()=>Pg,unicodeEmail:()=>fk,undefined:()=>xg,ulid:()=>gg,time:()=>Dg,string:()=>hg,sha512_hex:()=>WR,sha512_base64url:()=>zR,sha512_base64:()=>JR,sha384_hex:()=>PR,sha384_base64url:()=>KR,sha384_base64:()=>FR,sha256_hex:()=>yR,sha256_base64url:()=>jR,sha256_base64:()=>xR,sha1_hex:()=>wR,sha1_base64url:()=>XR,sha1_base64:()=>AR,rfc5322Email:()=>IR,number:()=>ti,null:()=>yg,nanoid:()=>ag,md5_hex:()=>DR,md5_base64url:()=>hR,md5_base64:()=>RR,mac:()=>Ig,lowercase:()=>jg,ksuid:()=>Eg,ipv6:()=>kg,ipv4:()=>Ng,integer:()=>Ag,idnEmail:()=>SR,httpProtocol:()=>bg,html5Email:()=>kR,hostname:()=>bR,hex:()=>mR,guid:()=>fg,extendedDuration:()=>fR,emoji:()=>vg,email:()=>$g,e164:()=>Ug,duration:()=>Tg,domain:()=>UR,datetime:()=>Rg,date:()=>mg,cuid2:()=>og,cuid:()=>dg,cidrv6:()=>Og,cidrv4:()=>Sg,browserEmail:()=>OR,boolean:()=>Xg,bigint:()=>wg,base64url:()=>vu,base64:()=>Lg});function vg(){return new RegExp(LR,"u")}function vk(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function Dg(e){return new RegExp(`^${vk(e)}$`)}function Rg(e){let r=vk({precision:e.precision}),t=["Z"];if(e.local)t.push("");if(e.offset)t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let i=`${r}(?:${t.join("|")})`;return new RegExp(`^${$k}T(?:${i})$`)}function ni(e,r){return new RegExp(`^[A-Za-z0-9+/]{${e}}${r}$`)}function ii(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var dg,og,gg,lg,Eg,ag,Tg,fR,fg,ct=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},$R,vR,NR,$g,kR,IR,fk,SR,OR,LR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ng,kg,Ig=(e)=>{let r=je(e??":");return new RegExp(`^(?:[0-9A-F]{2}${r}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${r}){5}[0-9a-f]{2}$`)},Sg,Og,Lg,vu,bR,UR,bg,Ug,$k="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",mg,hg=(e)=>{let r=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${r}$`)},wg,Ag,ti,Xg,yg,xg,jg,Pg,mR,DR,RR,hR,wR,AR,XR,yR,xR,jR,PR,FR,KR,WR,JR,zR;var Nu=h(()=>{y();dg=/^[cC][0-9a-z]{6,}$/,og=/^[0-9a-z]+$/,gg=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,lg=/^[0-9a-vA-V]{20}$/,Eg=/^[A-Za-z0-9]{27}$/,ag=/^[a-zA-Z0-9_-]{21}$/,Tg=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,fR=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,fg=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,$R=ct(4),vR=ct(6),NR=ct(7),$g=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,kR=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,IR=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,fk=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,SR=fk,OR=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;Ng=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,kg=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Sg=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Og=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Lg=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,vu=/^[A-Za-z0-9_-]*$/,bR=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,UR=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,bg=/^https?$/,Ug=/^\+[1-9]\d{6,14}$/,mg=new RegExp(`^${$k}$`);wg=/^-?\d+n?$/,Ag=/^-?\d+$/,ti=/^-?\d+(?:\.\d+)?$/,Xg=/^(?:true|false)$/i,yg=/^null$/i,xg=/^undefined$/i,jg=/^[^A-Z]*$/,Pg=/^[^a-z]*$/,mR=/^[0-9a-fA-F]*$/;DR=/^[0-9a-fA-F]{32}$/,RR=ni(22,"=="),hR=ii(22),wR=/^[0-9a-fA-F]{40}$/,AR=ni(27,"="),XR=ii(27),yR=/^[0-9a-fA-F]{64}$/,xR=ni(43,"="),jR=ii(43),PR=/^[0-9a-fA-F]{96}$/,FR=ni(64,""),KR=ii(64),WR=/^[0-9a-fA-F]{128}$/,JR=ni(86,"=="),zR=ii(86)});function Nk(e,r,t){if(e.issues.length)r.issues.push(...Oe(t,e.issues))}var Z,kk,ku,Iu,Fg,Kg,Wg,Jg,zg,Mg,Cg,qg,Gg,dn,Yg,Bg,Hg,Vg,Qg,Zg,sg,pg,el;var Su=h(()=>{_t();Nu();y();Z=$("$ZodCheck",(e,r)=>{var t;e._zod??(e._zod={}),e._zod.def=r,(t=e._zod).onattach??(t.onattach=[])}),kk={number:"number",bigint:"bigint",object:"date"},ku=$("$ZodCheckLessThan",(e,r)=>{Z.init(e,r);let t=kk[typeof r.value];e._zod.onattach.push((i)=>{let n=i._zod.bag,_=(r.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(r.value<_)if(r.inclusive)n.maximum=r.value;else n.exclusiveMaximum=r.value}),e._zod.check=(i)=>{if(r.inclusive?i.value<=r.value:i.value{Z.init(e,r);let t=kk[typeof r.value];e._zod.onattach.push((i)=>{let n=i._zod.bag,_=(r.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(r.value>_)if(r.inclusive)n.minimum=r.value;else n.exclusiveMinimum=r.value}),e._zod.check=(i)=>{if(r.inclusive?i.value>=r.value:i.value>r.value)return;i.issues.push({origin:t,code:"too_small",minimum:typeof r.value==="object"?r.value.getTime():r.value,input:i.value,inclusive:r.inclusive,inst:e,continue:!r.abort})}}),Fg=$("$ZodCheckMultipleOf",(e,r)=>{Z.init(e,r),e._zod.onattach.push((t)=>{var i;(i=t._zod.bag).multipleOf??(i.multipleOf=r.value)}),e._zod.check=(t)=>{if(typeof t.value!==typeof r.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof t.value==="bigint"?t.value%r.value===BigInt(0):Vo(t.value,r.value)===0)return;t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:r.value,input:t.value,inst:e,continue:!r.abort})}}),Kg=$("$ZodCheckNumberFormat",(e,r)=>{Z.init(e,r),r.format=r.format||"float64";let t=r.format?.includes("int"),i=t?"int":"number",[n,_]=rg[r.format];e._zod.onattach.push((u)=>{let c=u._zod.bag;if(c.format=r.format,c.minimum=n,c.maximum=_,t)c.pattern=Ag}),e._zod.check=(u)=>{let c=u.value;if(t){if(!Number.isInteger(c)){u.issues.push({expected:i,format:r.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){if(c>0)u.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!r.abort});else u.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!r.abort});return}}if(c_)u.issues.push({origin:"number",input:c,code:"too_big",maximum:_,inclusive:!0,inst:e,continue:!r.abort})}}),Wg=$("$ZodCheckBigIntFormat",(e,r)=>{Z.init(e,r);let[t,i]=tg[r.format];e._zod.onattach.push((n)=>{let _=n._zod.bag;_.format=r.format,_.minimum=t,_.maximum=i}),e._zod.check=(n)=>{let _=n.value;if(_i)n.issues.push({origin:"bigint",input:_,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!r.abort})}}),Jg=$("$ZodCheckMaxSize",(e,r)=>{var t;Z.init(e,r),(t=e._zod.def).when??(t.when=(i)=>{let n=i.value;return!Xr(n)&&n.size!==void 0}),e._zod.onattach.push((i)=>{let n=i._zod.bag.maximum??Number.POSITIVE_INFINITY;if(r.maximum{let n=i.value;if(n.size<=r.maximum)return;i.issues.push({origin:pn(n),code:"too_big",maximum:r.maximum,inclusive:!0,input:n,inst:e,continue:!r.abort})}}),zg=$("$ZodCheckMinSize",(e,r)=>{var t;Z.init(e,r),(t=e._zod.def).when??(t.when=(i)=>{let n=i.value;return!Xr(n)&&n.size!==void 0}),e._zod.onattach.push((i)=>{let n=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(r.minimum>n)i._zod.bag.minimum=r.minimum}),e._zod.check=(i)=>{let n=i.value;if(n.size>=r.minimum)return;i.issues.push({origin:pn(n),code:"too_small",minimum:r.minimum,inclusive:!0,input:n,inst:e,continue:!r.abort})}}),Mg=$("$ZodCheckSizeEquals",(e,r)=>{var t;Z.init(e,r),(t=e._zod.def).when??(t.when=(i)=>{let n=i.value;return!Xr(n)&&n.size!==void 0}),e._zod.onattach.push((i)=>{let n=i._zod.bag;n.minimum=r.size,n.maximum=r.size,n.size=r.size}),e._zod.check=(i)=>{let n=i.value,_=n.size;if(_===r.size)return;let u=_>r.size;i.issues.push({origin:pn(n),...u?{code:"too_big",maximum:r.size}:{code:"too_small",minimum:r.size},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!r.abort})}}),Cg=$("$ZodCheckMaxLength",(e,r)=>{var t;Z.init(e,r),(t=e._zod.def).when??(t.when=(i)=>{let n=i.value;return!Xr(n)&&n.length!==void 0}),e._zod.onattach.push((i)=>{let n=i._zod.bag.maximum??Number.POSITIVE_INFINITY;if(r.maximum{let n=i.value;if(n.length<=r.maximum)return;let u=ei(n);i.issues.push({origin:u,code:"too_big",maximum:r.maximum,inclusive:!0,input:n,inst:e,continue:!r.abort})}}),qg=$("$ZodCheckMinLength",(e,r)=>{var t;Z.init(e,r),(t=e._zod.def).when??(t.when=(i)=>{let n=i.value;return!Xr(n)&&n.length!==void 0}),e._zod.onattach.push((i)=>{let n=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(r.minimum>n)i._zod.bag.minimum=r.minimum}),e._zod.check=(i)=>{let n=i.value;if(n.length>=r.minimum)return;let u=ei(n);i.issues.push({origin:u,code:"too_small",minimum:r.minimum,inclusive:!0,input:n,inst:e,continue:!r.abort})}}),Gg=$("$ZodCheckLengthEquals",(e,r)=>{var t;Z.init(e,r),(t=e._zod.def).when??(t.when=(i)=>{let n=i.value;return!Xr(n)&&n.length!==void 0}),e._zod.onattach.push((i)=>{let n=i._zod.bag;n.minimum=r.length,n.maximum=r.length,n.length=r.length}),e._zod.check=(i)=>{let n=i.value,_=n.length;if(_===r.length)return;let u=ei(n),c=_>r.length;i.issues.push({origin:u,...c?{code:"too_big",maximum:r.length}:{code:"too_small",minimum:r.length},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!r.abort})}}),dn=$("$ZodCheckStringFormat",(e,r)=>{var t,i;if(Z.init(e,r),e._zod.onattach.push((n)=>{let _=n._zod.bag;if(_.format=r.format,r.pattern)_.patterns??(_.patterns=new Set),_.patterns.add(r.pattern)}),r.pattern)(t=e._zod).check??(t.check=(n)=>{if(r.pattern.lastIndex=0,r.pattern.test(n.value))return;n.issues.push({origin:"string",code:"invalid_format",format:r.format,input:n.value,...r.pattern?{pattern:r.pattern.toString()}:{},inst:e,continue:!r.abort})});else(i=e._zod).check??(i.check=()=>{})}),Yg=$("$ZodCheckRegex",(e,r)=>{dn.init(e,r),e._zod.check=(t)=>{if(r.pattern.lastIndex=0,r.pattern.test(t.value))return;t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:r.pattern.toString(),inst:e,continue:!r.abort})}}),Bg=$("$ZodCheckLowerCase",(e,r)=>{r.pattern??(r.pattern=jg),dn.init(e,r)}),Hg=$("$ZodCheckUpperCase",(e,r)=>{r.pattern??(r.pattern=Pg),dn.init(e,r)}),Vg=$("$ZodCheckIncludes",(e,r)=>{Z.init(e,r);let t=je(r.includes),i=new RegExp(typeof r.position==="number"?`^.{${r.position}}${t}`:t);r.pattern=i,e._zod.onattach.push((n)=>{let _=n._zod.bag;_.patterns??(_.patterns=new Set),_.patterns.add(i)}),e._zod.check=(n)=>{if(n.value.includes(r.includes,r.position))return;n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:r.includes,input:n.value,inst:e,continue:!r.abort})}}),Qg=$("$ZodCheckStartsWith",(e,r)=>{Z.init(e,r);let t=new RegExp(`^${je(r.prefix)}.*`);r.pattern??(r.pattern=t),e._zod.onattach.push((i)=>{let n=i._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(t)}),e._zod.check=(i)=>{if(i.value.startsWith(r.prefix))return;i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:r.prefix,input:i.value,inst:e,continue:!r.abort})}}),Zg=$("$ZodCheckEndsWith",(e,r)=>{Z.init(e,r);let t=new RegExp(`.*${je(r.suffix)}$`);r.pattern??(r.pattern=t),e._zod.onattach.push((i)=>{let n=i._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(t)}),e._zod.check=(i)=>{if(i.value.endsWith(r.suffix))return;i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:r.suffix,input:i.value,inst:e,continue:!r.abort})}});sg=$("$ZodCheckProperty",(e,r)=>{Z.init(e,r),e._zod.check=(t)=>{let i=r.schema._zod.run({value:t.value[r.property],issues:[]},{});if(i instanceof Promise)return i.then((n)=>Nk(n,t,r.property));Nk(i,t,r.property);return}}),pg=$("$ZodCheckMimeType",(e,r)=>{Z.init(e,r);let t=new Set(r.mime);e._zod.onattach.push((i)=>{i._zod.bag.mime=r.mime}),e._zod.check=(i)=>{if(t.has(i.value.type))return;i.issues.push({code:"invalid_value",values:r.mime,input:i.value.type,inst:e,continue:!r.abort})}}),el=$("$ZodCheckOverwrite",(e,r)=>{Z.init(e,r),e._zod.check=(t)=>{t.value=r.tx(t.value)}})});class Ou{constructor(e=[]){if(this.content=[],this.indent=0,this)this.args=e}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let t=e.split(` -`).filter((_)=>_),i=Math.min(...t.map((_)=>_.length-_.trimStart().length)),n=t.map((_)=>_.slice(i)).map((_)=>" ".repeat(this.indent*2)+_);for(let _ of n)this.content.push(_)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map((n)=>` ${n}`)];return new e(...r,i.join(` -`))}}var rl;var tl=h(()=>{rl={major:4,minor:4,patch:3}});function bl(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function jk(e){if(!vu.test(e))return!1;let r=e.replace(/[-_]/g,(i)=>i==="-"?"+":"/"),t=r.padEnd(Math.ceil(r.length/4)*4,"=");return bl(t)}function Pk(e,r=null){try{let t=e.split(".");if(t.length!==3)return!1;let[i]=t;if(!i)return!1;let n=JSON.parse(atob(i));if("typ"in n&&n?.typ!=="JWT")return!1;if(!n.alg)return!1;if(r&&(!("alg"in n)||n.alg!==r))return!1;return!0}catch{return!1}}function Sk(e,r,t){if(e.issues.length)r.issues.push(...Oe(t,e.issues));r.value[t]=e.value}function mu(e,r,t,i,n,_){let u=t in i;if(e.issues.length){if(n&&_&&!u)return;r.issues.push(...Oe(t,e.issues))}if(!u&&!n){if(!e.issues.length)r.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[t]});return}if(e.value===void 0){if(u)r.value[t]=void 0}else r.value[t]=e.value}function Fk(e){let r=Object.keys(e.shape);for(let i of r)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${i}": expected a Zod schema`);let t=eg(e.shape);return{...e,keys:r,keySet:new Set(r),numKeys:r.length,optionalKeys:new Set(t)}}function Kk(e,r,t,i,n,_){let u=[],c=n.keySet,d=n.catchall._zod,o=d.def.type,a=d.optin==="optional",g=d.optout==="optional";for(let E in r){if(E==="__proto__")continue;if(c.has(E))continue;if(o==="never"){u.push(E);continue}let l=d.run({value:r[E],issues:[]},i);if(l instanceof Promise)e.push(l.then((T)=>mu(T,t,E,r,a,g)));else mu(l,t,E,r,a,g)}if(u.length)t.issues.push({code:"unrecognized_keys",keys:u,input:r,inst:_});if(!e.length)return t;return Promise.all(e).then(()=>{return t})}function Ok(e,r,t,i){for(let _ of e)if(_.issues.length===0)return r.value=_.value,r;let n=e.filter((_)=>!jr(_));if(n.length===1)return r.value=n[0].value,n[0];return r.issues.push({code:"invalid_union",input:r.value,inst:t,errors:e.map((_)=>_.issues.map((u)=>ke(u,i,ie())))}),r}function Lk(e,r,t,i){let n=e.filter((_)=>_.issues.length===0);if(n.length===1)return r.value=n[0].value,r;if(n.length===0)r.issues.push({code:"invalid_union",input:r.value,inst:t,errors:e.map((_)=>_.issues.map((u)=>ke(u,i,ie())))});else r.issues.push({code:"invalid_union",input:r.value,inst:t,errors:[],inclusive:!1});return r}function nl(e,r){if(e===r)return{valid:!0,data:e};if(e instanceof Date&&r instanceof Date&&+e===+r)return{valid:!0,data:e};if(xr(e)&&xr(r)){let t=Object.keys(r),i=Object.keys(e).filter((_)=>t.indexOf(_)!==-1),n={...e,...r};for(let _ of i){let u=nl(e[_],r[_]);if(!u.valid)return{valid:!1,mergeErrorPath:[_,...u.mergeErrorPath]};n[_]=u.data}return{valid:!0,data:n}}if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return{valid:!1,mergeErrorPath:[]};let t=[];for(let i=0;ic.l&&c.r).map(([c])=>c);if(_.length&&n)e.issues.push({...n,keys:_});if(jr(e))return e;let u=nl(r.value,t.value);if(!u.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(u.mergeErrorPath)}`);return e.value=u.data,e}function Uk(e,r){for(let t=e.length-1;t>=0;t--)if(e[t]._zod[r]!=="optional")return t+1;return 0}function mk(e,r,t){if(e.issues.length)r.issues.push(...Oe(t,e.issues));r.value[t]=e.value}function Dk(e,r,t,i,n){for(let _=0;_=n){r.value.length=_;break}r.issues.push(...Oe(_,u.issues))}r.value[_]=u.value}for(let _=r.value.length-1;_>=i.length;_--)if(t[_]._zod.optout==="optional"&&r.value[_]===void 0)r.value.length=_;else break;return r}function Rk(e,r,t,i,n,_,u){if(e.issues.length)if(sn.has(typeof i))t.issues.push(...Oe(i,e.issues));else t.issues.push({code:"invalid_key",origin:"map",input:n,inst:_,issues:e.issues.map((c)=>ke(c,u,ie()))});if(r.issues.length)if(sn.has(typeof i))t.issues.push(...Oe(i,r.issues));else t.issues.push({origin:"map",code:"invalid_element",input:n,inst:_,key:i,issues:r.issues.map((c)=>ke(c,u,ie()))});t.value.set(e.value,r.value)}function hk(e,r){if(e.issues.length)r.issues.push(...e.issues);r.value.add(e.value)}function wk(e,r){if(r===void 0&&(e.issues.length||e.fallback))return{issues:[],value:void 0};return e}function Ak(e,r){if(e.value===void 0)e.value=r.defaultValue;return e}function Xk(e,r){if(!e.issues.length&&e.value===void 0)e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:r});return e}function Lu(e,r,t){if(e.issues.length)return e.aborted=!0,e;return r._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},t)}function bu(e,r,t){if(e.issues.length)return e.aborted=!0,e;if((t.direction||"forward")==="forward"){let n=r.transform(e.value,e);if(n instanceof Promise)return n.then((_)=>Uu(e,_,r.out,t));return Uu(e,n,r.out,t)}else{let n=r.reverseTransform(e.value,e);if(n instanceof Promise)return n.then((_)=>Uu(e,_,r.in,t));return Uu(e,n,r.in,t)}}function Uu(e,r,t,i){if(e.issues.length)return e.aborted=!0,e;return t._zod.run({value:r,issues:e.issues},i)}function yk(e){return e.value=Object.freeze(e.value),e}function xk(e,r,t,i){if(!e){let n={code:"custom",input:t,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};if(i._zod.def.params)n.params=i._zod.def.params;r.issues.push(en(n))}}var F,dt,Q,il,_l,ul,cl,dl,ol,gl,ll,El,al,Tl,fl,$l,vl,Nl,kl,Il,Sl,Ol,Ll,Ul,ml,Dl,Rl,hl,Du,wl,_i,Ru,Al,Xl,yl,xl,jl,Pl,Fl,Kl,Wl,Jl,Wk,zl,ui,Ml,Cl,ql,hu,Gl,Yl,Bl,Hl,Vl,Ql,Zl,wu,sl,pl,eE,rE,tE,nE,iE,_E,Au,ci,uE,cE,dE,oE,gE,lE,EE;var aE=h(()=>{Su();_t();cg();Nu();y();tl();y();F=$("$ZodType",(e,r)=>{var t;e??(e={}),e._zod.def=r,e._zod.bag=e._zod.bag||{},e._zod.version=rl;let i=[...e._zod.def.checks??[]];if(e._zod.traits.has("$ZodCheck"))i.unshift(e);for(let n of i)for(let _ of n._zod.onattach)_(e);if(i.length===0)(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let n=(u,c,d)=>{let o=jr(u),a;for(let g of c){if(g._zod.def.when){if(ng(u))continue;if(!g._zod.def.when(u))continue}else if(o)continue;let E=u.issues.length,l=g._zod.check(u);if(l instanceof Promise&&d?.async===!1)throw new rr;if(a||l instanceof Promise)a=(a??Promise.resolve()).then(async()=>{if(await l,u.issues.length===E)return;if(!o)o=jr(u,E)});else{if(u.issues.length===E)continue;if(!o)o=jr(u,E)}}if(a)return a.then(()=>{return u});return u},_=(u,c,d)=>{if(jr(u))return u.aborted=!0,u;let o=n(c,i,d);if(o instanceof Promise){if(d.async===!1)throw new rr;return o.then((a)=>e._zod.parse(a,d))}return e._zod.parse(o,d)};e._zod.run=(u,c)=>{if(c.skipChecks)return e._zod.parse(u,c);if(c.direction==="backward"){let o=e._zod.parse({value:u.value,issues:[]},{...c,skipChecks:!0});if(o instanceof Promise)return o.then((a)=>{return _(a,u,c)});return _(o,u,c)}let d=e._zod.parse(u,c);if(d instanceof Promise){if(c.async===!1)throw new rr;return d.then((o)=>n(o,i,c))}return n(d,i,c)}}z(e,"~standard",()=>({validate:(n)=>{try{let _=_g(e,n);return _.success?{value:_.data}:{issues:_.error?.issues}}catch(_){return ug(e,n).then((u)=>u.success?{value:u.data}:{issues:u.error?.issues})}},vendor:"zod",version:1}))}),dt=$("$ZodString",(e,r)=>{F.init(e,r),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??hg(e._zod.bag),e._zod.parse=(t,i)=>{if(r.coerce)try{t.value=String(t.value)}catch(n){}if(typeof t.value==="string")return t;return t.issues.push({expected:"string",code:"invalid_type",input:t.value,inst:e}),t}}),Q=$("$ZodStringFormat",(e,r)=>{dn.init(e,r),dt.init(e,r)}),il=$("$ZodGUID",(e,r)=>{r.pattern??(r.pattern=fg),Q.init(e,r)}),_l=$("$ZodUUID",(e,r)=>{if(r.version){let i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[r.version];if(i===void 0)throw Error(`Invalid UUID version: "${r.version}"`);r.pattern??(r.pattern=ct(i))}else r.pattern??(r.pattern=ct());Q.init(e,r)}),ul=$("$ZodEmail",(e,r)=>{r.pattern??(r.pattern=$g),Q.init(e,r)}),cl=$("$ZodURL",(e,r)=>{Q.init(e,r),e._zod.check=(t)=>{try{let i=t.value.trim();if(!r.normalize&&r.protocol?.source===bg.source){if(!/^https?:\/\//i.test(i)){t.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:t.value,inst:e,continue:!r.abort});return}}let n=new URL(i);if(r.hostname){if(r.hostname.lastIndex=0,!r.hostname.test(n.hostname))t.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:r.hostname.source,input:t.value,inst:e,continue:!r.abort})}if(r.protocol){if(r.protocol.lastIndex=0,!r.protocol.test(n.protocol.endsWith(":")?n.protocol.slice(0,-1):n.protocol))t.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:r.protocol.source,input:t.value,inst:e,continue:!r.abort})}if(r.normalize)t.value=n.href;else t.value=i;return}catch(i){t.issues.push({code:"invalid_format",format:"url",input:t.value,inst:e,continue:!r.abort})}}}),dl=$("$ZodEmoji",(e,r)=>{r.pattern??(r.pattern=vg()),Q.init(e,r)}),ol=$("$ZodNanoID",(e,r)=>{r.pattern??(r.pattern=ag),Q.init(e,r)}),gl=$("$ZodCUID",(e,r)=>{r.pattern??(r.pattern=dg),Q.init(e,r)}),ll=$("$ZodCUID2",(e,r)=>{r.pattern??(r.pattern=og),Q.init(e,r)}),El=$("$ZodULID",(e,r)=>{r.pattern??(r.pattern=gg),Q.init(e,r)}),al=$("$ZodXID",(e,r)=>{r.pattern??(r.pattern=lg),Q.init(e,r)}),Tl=$("$ZodKSUID",(e,r)=>{r.pattern??(r.pattern=Eg),Q.init(e,r)}),fl=$("$ZodISODateTime",(e,r)=>{r.pattern??(r.pattern=Rg(r)),Q.init(e,r)}),$l=$("$ZodISODate",(e,r)=>{r.pattern??(r.pattern=mg),Q.init(e,r)}),vl=$("$ZodISOTime",(e,r)=>{r.pattern??(r.pattern=Dg(r)),Q.init(e,r)}),Nl=$("$ZodISODuration",(e,r)=>{r.pattern??(r.pattern=Tg),Q.init(e,r)}),kl=$("$ZodIPv4",(e,r)=>{r.pattern??(r.pattern=Ng),Q.init(e,r),e._zod.bag.format="ipv4"}),Il=$("$ZodIPv6",(e,r)=>{r.pattern??(r.pattern=kg),Q.init(e,r),e._zod.bag.format="ipv6",e._zod.check=(t)=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:e,continue:!r.abort})}}}),Sl=$("$ZodMAC",(e,r)=>{r.pattern??(r.pattern=Ig(r.delimiter)),Q.init(e,r),e._zod.bag.format="mac"}),Ol=$("$ZodCIDRv4",(e,r)=>{r.pattern??(r.pattern=Sg),Q.init(e,r)}),Ll=$("$ZodCIDRv6",(e,r)=>{r.pattern??(r.pattern=Og),Q.init(e,r),e._zod.check=(t)=>{let i=t.value.split("/");try{if(i.length!==2)throw Error();let[n,_]=i;if(!_)throw Error();let u=Number(_);if(`${u}`!==_)throw Error();if(u<0||u>128)throw Error();new URL(`http://[${n}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:e,continue:!r.abort})}}});Ul=$("$ZodBase64",(e,r)=>{r.pattern??(r.pattern=Lg),Q.init(e,r),e._zod.bag.contentEncoding="base64",e._zod.check=(t)=>{if(bl(t.value))return;t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:e,continue:!r.abort})}});ml=$("$ZodBase64URL",(e,r)=>{r.pattern??(r.pattern=vu),Q.init(e,r),e._zod.bag.contentEncoding="base64url",e._zod.check=(t)=>{if(jk(t.value))return;t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:e,continue:!r.abort})}}),Dl=$("$ZodE164",(e,r)=>{r.pattern??(r.pattern=Ug),Q.init(e,r)});Rl=$("$ZodJWT",(e,r)=>{Q.init(e,r),e._zod.check=(t)=>{if(Pk(t.value,r.alg))return;t.issues.push({code:"invalid_format",format:"jwt",input:t.value,inst:e,continue:!r.abort})}}),hl=$("$ZodCustomStringFormat",(e,r)=>{Q.init(e,r),e._zod.check=(t)=>{if(r.fn(t.value))return;t.issues.push({code:"invalid_format",format:r.format,input:t.value,inst:e,continue:!r.abort})}}),Du=$("$ZodNumber",(e,r)=>{F.init(e,r),e._zod.pattern=e._zod.bag.pattern??ti,e._zod.parse=(t,i)=>{if(r.coerce)try{t.value=Number(t.value)}catch(u){}let n=t.value;if(typeof n==="number"&&!Number.isNaN(n)&&Number.isFinite(n))return t;let _=typeof n==="number"?Number.isNaN(n)?"NaN":!Number.isFinite(n)?"Infinity":void 0:void 0;return t.issues.push({expected:"number",code:"invalid_type",input:n,inst:e,..._?{received:_}:{}}),t}}),wl=$("$ZodNumberFormat",(e,r)=>{Kg.init(e,r),Du.init(e,r)}),_i=$("$ZodBoolean",(e,r)=>{F.init(e,r),e._zod.pattern=Xg,e._zod.parse=(t,i)=>{if(r.coerce)try{t.value=Boolean(t.value)}catch(_){}let n=t.value;if(typeof n==="boolean")return t;return t.issues.push({expected:"boolean",code:"invalid_type",input:n,inst:e}),t}}),Ru=$("$ZodBigInt",(e,r)=>{F.init(e,r),e._zod.pattern=wg,e._zod.parse=(t,i)=>{if(r.coerce)try{t.value=BigInt(t.value)}catch(n){}if(typeof t.value==="bigint")return t;return t.issues.push({expected:"bigint",code:"invalid_type",input:t.value,inst:e}),t}}),Al=$("$ZodBigIntFormat",(e,r)=>{Wg.init(e,r),Ru.init(e,r)}),Xl=$("$ZodSymbol",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(typeof n==="symbol")return t;return t.issues.push({expected:"symbol",code:"invalid_type",input:n,inst:e}),t}}),yl=$("$ZodUndefined",(e,r)=>{F.init(e,r),e._zod.pattern=xg,e._zod.values=new Set([void 0]),e._zod.parse=(t,i)=>{let n=t.value;if(typeof n>"u")return t;return t.issues.push({expected:"undefined",code:"invalid_type",input:n,inst:e}),t}}),xl=$("$ZodNull",(e,r)=>{F.init(e,r),e._zod.pattern=yg,e._zod.values=new Set([null]),e._zod.parse=(t,i)=>{let n=t.value;if(n===null)return t;return t.issues.push({expected:"null",code:"invalid_type",input:n,inst:e}),t}}),jl=$("$ZodAny",(e,r)=>{F.init(e,r),e._zod.parse=(t)=>t}),Pl=$("$ZodUnknown",(e,r)=>{F.init(e,r),e._zod.parse=(t)=>t}),Fl=$("$ZodNever",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{return t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t}}),Kl=$("$ZodVoid",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(typeof n>"u")return t;return t.issues.push({expected:"void",code:"invalid_type",input:n,inst:e}),t}}),Wl=$("$ZodDate",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{if(r.coerce)try{t.value=new Date(t.value)}catch(c){}let n=t.value,_=n instanceof Date;if(_&&!Number.isNaN(n.getTime()))return t;return t.issues.push({expected:"date",code:"invalid_type",input:n,..._?{received:"Invalid Date"}:{},inst:e}),t}});Jl=$("$ZodArray",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(!Array.isArray(n))return t.issues.push({expected:"array",code:"invalid_type",input:n,inst:e}),t;t.value=Array(n.length);let _=[];for(let u=0;uSk(o,t,u)));else Sk(d,t,u)}if(_.length)return Promise.all(_).then(()=>t);return t}});Wk=$("$ZodObject",(e,r)=>{if(F.init(e,r),!Object.getOwnPropertyDescriptor(r,"shape")?.get){let c=r.shape;Object.defineProperty(r,"shape",{get:()=>{let d={...c};return Object.defineProperty(r,"shape",{value:d}),d}})}let i=pt(()=>Fk(r));z(e._zod,"propValues",()=>{let c=r.shape,d={};for(let o in c){let a=c[o]._zod;if(a.values){d[o]??(d[o]=new Set);for(let g of a.values)d[o].add(g)}}return d});let n=ut,_=r.catchall,u;e._zod.parse=(c,d)=>{u??(u=i.value);let o=c.value;if(!n(o))return c.issues.push({expected:"object",code:"invalid_type",input:o,inst:e}),c;c.value={};let a=[],g=u.shape;for(let E of u.keys){let l=g[E],T=l._zod.optin==="optional",f=l._zod.optout==="optional",v=l._zod.run({value:o[E],issues:[]},d);if(v instanceof Promise)a.push(v.then((N)=>mu(N,c,E,o,T,f)));else mu(v,c,E,o,T,f)}if(!_)return a.length?Promise.all(a).then(()=>c):c;return Kk(a,o,c,d,i.value,e)}}),zl=$("$ZodObjectJIT",(e,r)=>{Wk.init(e,r);let t=e._zod.parse,i=pt(()=>Fk(r)),n=(E)=>{let l=new Ou(["shape","payload","ctx"]),T=i.value,f=(R)=>{let S=nu(R);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};l.write("const input = payload.value;");let v=Object.create(null),N=0;for(let R of T.keys)v[R]=`key_${N++}`;l.write("const newResult = {};");for(let R of T.keys){let S=v[R],U=nu(R),X=E[R],j=X?._zod?.optin==="optional",K=X?._zod?.optout==="optional";if(l.write(`const ${S} = ${f(R)};`),j&&K)l.write(` - if (${S}.issues.length) { - if (${U} in input) { - payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ +var Im=Object.create;var{getPrototypeOf:mm,defineProperty:rg,getOwnPropertyNames:wm}=Object;var Dm=Object.prototype.hasOwnProperty;function Um(e){return this[e]}var hm,Om,Rm=(e,r,n)=>{var i=e!=null&&typeof e==="object";if(i){var t=r?hm??=new WeakMap:Om??=new WeakMap,u=t.get(e);if(u)return u}n=e!=null?Im(mm(e)):{};let _=r||!e||!e.__esModule?rg(n,"default",{value:e,enumerable:!0}):n;for(let c of wm(e))if(!Dm.call(_,c))rg(_,c,{get:Um.bind(e,c),enumerable:!0});if(i)t.set(e,_);return _};var Yr=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var Lm=(e)=>e;function Am(e,r){this[e]=Lm.bind(null,r)}var Qe=(e,r)=>{for(var n in r)rg(e,n,{get:r[n],enumerable:!0,configurable:!0,set:Am.bind(r,n)})};var R=(e,r)=>()=>(e&&(r=e(e=0)),r);var C=import.meta.require;function E(e,r,n){function i(c,d){if(!c._zod)Object.defineProperty(c,"_zod",{value:{def:d,constr:_,traits:new Set},enumerable:!1});if(c._zod.traits.has(e))return;c._zod.traits.add(e),r(c,d);let g=_.prototype,f=Object.keys(g);for(let o=0;o{if(n?.Parent&&c instanceof n.Parent)return!0;return c?._zod?.traits?.has(e)}}),Object.defineProperty(_,"name",{value:e}),_}function ie(e){if(e)Object.assign(tn,e);return tn}var dS,r_,n_,rr,un,tn;var _n=R(()=>{r_=Object.freeze({status:"aborted"});n_=Symbol("zod_brand");rr=class rr extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};un=class un extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}};(dS=globalThis).__zod_globalConfig??(dS.__zod_globalConfig={});tn=globalThis.__zod_globalConfig});var w={};Qe(w,{unwrapMessage:()=>Vt,uint8ArrayToHex:()=>uO,uint8ArrayToBase64url:()=>tO,uint8ArrayToBase64:()=>lS,stringifyPrimitive:()=>I,slugify:()=>Vg,shallowClone:()=>Zg,safeExtend:()=>Zh,required:()=>eO,randomString:()=>Gh,propertyKeyTypes:()=>st,promiseAllObject:()=>qh,primitiveTypes:()=>sg,prefixIssues:()=>Ie,pick:()=>Yh,partial:()=>ph,parsedType:()=>m,optionalKeys:()=>pg,omit:()=>Vh,objectClone:()=>zh,numKeys:()=>Hh,nullish:()=>yr,normalizeParams:()=>U,mergeDefs:()=>vr,merge:()=>sh,jsonStringifyReplacer:()=>pn,joinValues:()=>N,issue:()=>rt,isPlainObject:()=>Pr,isObject:()=>cn,hexToUint8Array:()=>iO,getSizableOrigin:()=>pt,getParsedType:()=>Bh,getLengthableOrigin:()=>ei,getEnumValues:()=>Qt,getElementAtPath:()=>Mh,floatSafeRemainder:()=>Yg,finalizeIssue:()=>Se,extend:()=>Qh,explicitlyAborted:()=>no,escapeRegex:()=>xe,esc:()=>t_,defineLazy:()=>W,createTransparentProxy:()=>Ch,cloneDef:()=>Wh,clone:()=>ve,cleanRegex:()=>Zt,cleanEnum:()=>rO,captureStackTrace:()=>i_,cached:()=>et,base64urlToUint8Array:()=>nO,base64ToUint8Array:()=>oS,assignProp:()=>jr,assertNotEqual:()=>Xh,assertNever:()=>Fh,assertIs:()=>Kh,assertEqual:()=>xh,assert:()=>Jh,allowsEval:()=>Qg,aborted:()=>xr,NUMBER_FORMAT_RANGES:()=>eo,Class:()=>aS,BIGINT_FORMAT_RANGES:()=>ro});function xh(e){return e}function Xh(e){return e}function Kh(e){}function Fh(e){throw Error("Unexpected value in exhaustive check")}function Jh(e){}function Qt(e){let r=Object.values(e).filter((i)=>typeof i==="number");return Object.entries(e).filter(([i,t])=>r.indexOf(+i)===-1).map(([i,t])=>t)}function N(e,r="|"){return e.map((n)=>I(n)).join(r)}function pn(e,r){if(typeof r==="bigint")return r.toString();return r}function et(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw Error("cached value already set")}}}function yr(e){return e===null||e===void 0}function Zt(e){let r=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(r,n)}function Yg(e,r){let n=e/r,i=Math.round(n),t=Number.EPSILON*Math.max(Math.abs(n),1);if(Math.abs(n-i)n?.[i],e)}function qh(e){let r=Object.keys(e),n=r.map((i)=>e[i]);return Promise.all(n).then((i)=>{let t={};for(let u=0;ur};if(r?.message!==void 0){if(r?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");r.error=r.message}if(delete r.message,typeof r.error==="string")return{...r,error:()=>r.error};return r}function Ch(e){let r;return new Proxy({},{get(n,i,t){return r??(r=e()),Reflect.get(r,i,t)},set(n,i,t,u){return r??(r=e()),Reflect.set(r,i,t,u)},has(n,i){return r??(r=e()),Reflect.has(r,i)},deleteProperty(n,i){return r??(r=e()),Reflect.deleteProperty(r,i)},ownKeys(n){return r??(r=e()),Reflect.ownKeys(r)},getOwnPropertyDescriptor(n,i){return r??(r=e()),Reflect.getOwnPropertyDescriptor(r,i)},defineProperty(n,i,t){return r??(r=e()),Reflect.defineProperty(r,i,t)}})}function I(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function pg(e){return Object.keys(e).filter((r)=>{return e[r]._zod.optin==="optional"&&e[r]._zod.optout==="optional"})}function Yh(e,r){let n=e._zod.def,i=n.checks;if(i&&i.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let u=vr(e._zod.def,{get shape(){let _={};for(let c in r){if(!(c in n.shape))throw Error(`Unrecognized key: "${c}"`);if(!r[c])continue;_[c]=n.shape[c]}return jr(this,"shape",_),_},checks:[]});return ve(e,u)}function Vh(e,r){let n=e._zod.def,i=n.checks;if(i&&i.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let u=vr(e._zod.def,{get shape(){let _={...e._zod.def.shape};for(let c in r){if(!(c in n.shape))throw Error(`Unrecognized key: "${c}"`);if(!r[c])continue;delete _[c]}return jr(this,"shape",_),_},checks:[]});return ve(e,u)}function Qh(e,r){if(!Pr(r))throw Error("Invalid input to extend: expected a plain object");let n=e._zod.def.checks;if(n&&n.length>0){let u=e._zod.def.shape;for(let _ in r)if(Object.getOwnPropertyDescriptor(u,_)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let t=vr(e._zod.def,{get shape(){let u={...e._zod.def.shape,...r};return jr(this,"shape",u),u}});return ve(e,t)}function Zh(e,r){if(!Pr(r))throw Error("Invalid input to safeExtend: expected a plain object");let n=vr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...r};return jr(this,"shape",i),i}});return ve(e,n)}function sh(e,r){if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let n=vr(e._zod.def,{get shape(){let i={...e._zod.def.shape,...r._zod.def.shape};return jr(this,"shape",i),i},get catchall(){return r._zod.def.catchall},checks:r._zod.def.checks??[]});return ve(e,n)}function ph(e,r,n){let t=r._zod.def.checks;if(t&&t.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let _=vr(r._zod.def,{get shape(){let c=r._zod.def.shape,d={...c};if(n)for(let g in n){if(!(g in c))throw Error(`Unrecognized key: "${g}"`);if(!n[g])continue;d[g]=e?new e({type:"optional",innerType:c[g]}):c[g]}else for(let g in c)d[g]=e?new e({type:"optional",innerType:c[g]}):c[g];return jr(this,"shape",d),d},checks:[]});return ve(r,_)}function eO(e,r,n){let i=vr(r._zod.def,{get shape(){let t=r._zod.def.shape,u={...t};if(n)for(let _ in n){if(!(_ in u))throw Error(`Unrecognized key: "${_}"`);if(!n[_])continue;u[_]=new e({type:"nonoptional",innerType:t[_]})}else for(let _ in t)u[_]=new e({type:"nonoptional",innerType:t[_]});return jr(this,"shape",u),u}});return ve(r,i)}function xr(e,r=0){if(e.aborted===!0)return!0;for(let n=r;n{var i;return(i=n).path??(i.path=[]),n.path.unshift(e),n})}function Vt(e){return typeof e==="string"?e:e?.message}function Se(e,r,n){let i=e.message?e.message:Vt(e.inst?._zod.def?.error?.(e))??Vt(r?.error?.(e))??Vt(n.customError?.(e))??Vt(n.localeError?.(e))??"Invalid input",{inst:t,continue:u,input:_,...c}=e;if(c.path??(c.path=[]),c.message=i,r?.reportInput)c.input=_;return c}function pt(e){if(e instanceof Set)return"set";if(e instanceof Map)return"map";if(e instanceof File)return"file";return"unknown"}function ei(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function m(e){let r=typeof e;switch(r){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return r}function rt(...e){let[r,n,i]=e;if(typeof r==="string")return{message:r,code:"custom",input:n,inst:i};return{...r}}function rO(e){return Object.entries(e).filter(([r,n])=>{return Number.isNaN(Number.parseInt(r,10))}).map((r)=>r[1])}function oS(e){let r=atob(e),n=new Uint8Array(r.length);for(let i=0;ir.toString(16).padStart(2,"0")).join("")}class aS{constructor(...e){}}var gS,i_,Qg,Bh=(e)=>{let r=typeof e;switch(r){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(e))return"array";if(e===null)return"null";if(e.then&&typeof e.then==="function"&&e.catch&&typeof e.catch==="function")return"promise";if(typeof Map<"u"&&e instanceof Map)return"map";if(typeof Set<"u"&&e instanceof Set)return"set";if(typeof Date<"u"&&e instanceof Date)return"date";if(typeof File<"u"&&e instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${r}`)}},st,sg,eo,ro;var j=R(()=>{_n();gS=Symbol("evaluating");i_="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};Qg=et(()=>{if(tn.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});st=new Set(["string","number","symbol"]),sg=new Set(["string","number","bigint","boolean","symbol","undefined"]);eo={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ro={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]}});function nt(e,r=(n)=>n.message){let n={},i=[];for(let t of e.issues)if(t.path.length>0)n[t.path[0]]=n[t.path[0]]||[],n[t.path[0]].push(r(t));else i.push(r(t));return{formErrors:i,fieldErrors:n}}function tt(e,r=(n)=>n.message){let n={_errors:[]},i=(t,u=[])=>{for(let _ of t.issues)if(_.code==="invalid_union"&&_.errors.length)_.errors.map((c)=>i({issues:c},[...u,..._.path]));else if(_.code==="invalid_key")i({issues:_.issues},[...u,..._.path]);else if(_.code==="invalid_element")i({issues:_.issues},[...u,..._.path]);else{let c=[...u,..._.path];if(c.length===0)n._errors.push(r(_));else{let d=n,g=0;while(gn.message){let n={errors:[]},i=(t,u=[])=>{var _,c;for(let d of t.issues)if(d.code==="invalid_union"&&d.errors.length)d.errors.map((g)=>i({issues:g},[...u,...d.path]));else if(d.code==="invalid_key")i({issues:d.issues},[...u,...d.path]);else if(d.code==="invalid_element")i({issues:d.issues},[...u,...d.path]);else{let g=[...u,...d.path];if(g.length===0){n.errors.push(r(d));continue}let f=n,o=0;while(otypeof i==="object"?i.key:i);for(let i of n)if(typeof i==="number")r.push(`[${i}]`);else if(typeof i==="symbol")r.push(`[${JSON.stringify(String(i))}]`);else if(/[^\w$]/.test(i))r.push(`[${JSON.stringify(i)}]`);else{if(r.length)r.push(".");r.push(i)}return r.join("")}function __(e){let r=[],n=[...e.issues].sort((i,t)=>(i.path??[]).length-(t.path??[]).length);for(let i of n)if(r.push(`\u2716 ${i.message}`),i.path?.length)r.push(` \u2192 at ${$S(i.path)}`);return r.join(` +`)}var fS=(e,r)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:r,enumerable:!1}),e.message=JSON.stringify(r,pn,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},ri,me;var to=R(()=>{_n();j();ri=E("$ZodError",fS),me=E("$ZodError",fS,{Parent:Error})});var it=(e)=>(r,n,i,t)=>{let u=i?{...i,async:!1}:{async:!1},_=r._zod.run({value:n,issues:[]},u);if(_ instanceof Promise)throw new rr;if(_.issues.length){let c=new(t?.Err??e)(_.issues.map((d)=>Se(d,u,ie())));throw i_(c,t?.callee),c}return _.value},c_,ut=(e)=>async(r,n,i,t)=>{let u=i?{...i,async:!0}:{async:!0},_=r._zod.run({value:n,issues:[]},u);if(_ instanceof Promise)_=await _;if(_.issues.length){let c=new(t?.Err??e)(_.issues.map((d)=>Se(d,u,ie())));throw i_(c,t?.callee),c}return _.value},d_,_t=(e)=>(r,n,i)=>{let t=i?{...i,async:!1}:{async:!1},u=r._zod.run({value:n,issues:[]},t);if(u instanceof Promise)throw new rr;return u.issues.length?{success:!1,error:new(e??ri)(u.issues.map((_)=>Se(_,t,ie())))}:{success:!0,data:u.value}},io,ct=(e)=>async(r,n,i)=>{let t=i?{...i,async:!0}:{async:!0},u=r._zod.run({value:n,issues:[]},t);if(u instanceof Promise)u=await u;return u.issues.length?{success:!1,error:new e(u.issues.map((_)=>Se(_,t,ie())))}:{success:!0,data:u.value}},uo,g_=(e)=>(r,n,i)=>{let t=i?{...i,direction:"backward"}:{direction:"backward"};return it(e)(r,n,t)},cO,o_=(e)=>(r,n,i)=>{return it(e)(r,n,i)},dO,l_=(e)=>async(r,n,i)=>{let t=i?{...i,direction:"backward"}:{direction:"backward"};return ut(e)(r,n,t)},gO,a_=(e)=>async(r,n,i)=>{return ut(e)(r,n,i)},oO,f_=(e)=>(r,n,i)=>{let t=i?{...i,direction:"backward"}:{direction:"backward"};return _t(e)(r,n,t)},lO,$_=(e)=>(r,n,i)=>{return _t(e)(r,n,i)},aO,v_=(e)=>async(r,n,i)=>{let t=i?{...i,direction:"backward"}:{direction:"backward"};return ct(e)(r,n,t)},fO,E_=(e)=>async(r,n,i)=>{return ct(e)(r,n,i)},$O;var _o=R(()=>{_n();to();j();c_=it(me),d_=ut(me),io=_t(me),uo=ct(me),cO=g_(me),dO=o_(me),gO=l_(me),oO=a_(me),lO=f_(me),aO=$_(me),fO=v_(me),$O=E_(me)});var we={};Qe(we,{xid:()=>lo,uuid7:()=>TO,uuid6:()=>kO,uuid4:()=>EO,uuid:()=>dn,uppercase:()=>Xo,unicodeEmail:()=>vS,undefined:()=>Po,ulid:()=>oo,time:()=>ho,string:()=>Ro,sha512_hex:()=>JO,sha512_base64url:()=>WO,sha512_base64:()=>zO,sha384_hex:()=>XO,sha384_base64url:()=>FO,sha384_base64:()=>KO,sha256_hex:()=>jO,sha256_base64url:()=>xO,sha256_base64:()=>PO,sha1_hex:()=>LO,sha1_base64url:()=>yO,sha1_base64:()=>AO,rfc5322Email:()=>NO,number:()=>ni,null:()=>jo,nanoid:()=>fo,md5_hex:()=>hO,md5_base64url:()=>RO,md5_base64:()=>OO,mac:()=>No,lowercase:()=>xo,ksuid:()=>ao,ipv6:()=>So,ipv4:()=>To,integer:()=>Ao,idnEmail:()=>bO,httpProtocol:()=>wo,html5Email:()=>SO,hostname:()=>wO,hex:()=>UO,guid:()=>vo,extendedDuration:()=>vO,emoji:()=>ko,email:()=>Eo,e164:()=>Do,duration:()=>$o,domain:()=>DO,datetime:()=>Oo,date:()=>Uo,cuid2:()=>go,cuid:()=>co,cidrv6:()=>Io,cidrv4:()=>bo,browserEmail:()=>IO,boolean:()=>yo,bigint:()=>Lo,base64url:()=>k_,base64:()=>mo});function ko(){return new RegExp(mO,"u")}function kS(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function ho(e){return new RegExp(`^${kS(e)}$`)}function Oo(e){let r=kS({precision:e.precision}),n=["Z"];if(e.local)n.push("");if(e.offset)n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let i=`${r}(?:${n.join("|")})`;return new RegExp(`^${ES}T(?:${i})$`)}function ti(e,r){return new RegExp(`^[A-Za-z0-9+/]{${e}}${r}$`)}function ii(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var co,go,oo,lo,ao,fo,$o,vO,vo,dn=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},EO,kO,TO,Eo,SO,NO,vS,bO,IO,mO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",To,So,No=(e)=>{let r=xe(e??":");return new RegExp(`^(?:[0-9A-F]{2}${r}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${r}){5}[0-9a-f]{2}$`)},bo,Io,mo,k_,wO,DO,wo,Do,ES="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Uo,Ro=(e)=>{let r=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${r}$`)},Lo,Ao,ni,yo,jo,Po,xo,Xo,UO,hO,OO,RO,LO,AO,yO,jO,PO,xO,XO,KO,FO,JO,zO,WO;var T_=R(()=>{j();co=/^[cC][0-9a-z]{6,}$/,go=/^[0-9a-z]+$/,oo=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,lo=/^[0-9a-vA-V]{20}$/,ao=/^[A-Za-z0-9]{27}$/,fo=/^[a-zA-Z0-9_-]{21}$/,$o=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,vO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,vo=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,EO=dn(4),kO=dn(6),TO=dn(7),Eo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,SO=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,NO=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,vS=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,bO=vS,IO=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;To=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,So=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,bo=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Io=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,mo=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,k_=/^[A-Za-z0-9_-]*$/,wO=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,DO=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,wo=/^https?$/,Do=/^\+[1-9]\d{6,14}$/,Uo=new RegExp(`^${ES}$`);Lo=/^-?\d+n?$/,Ao=/^-?\d+$/,ni=/^-?\d+(?:\.\d+)?$/,yo=/^(?:true|false)$/i,jo=/^null$/i,Po=/^undefined$/i,xo=/^[^A-Z]*$/,Xo=/^[^a-z]*$/,UO=/^[0-9a-fA-F]*$/;hO=/^[0-9a-fA-F]{32}$/,OO=ti(22,"=="),RO=ii(22),LO=/^[0-9a-fA-F]{40}$/,AO=ti(27,"="),yO=ii(27),jO=/^[0-9a-fA-F]{64}$/,PO=ti(43,"="),xO=ii(43),XO=/^[0-9a-fA-F]{96}$/,KO=ti(64,""),FO=ii(64),JO=/^[0-9a-fA-F]{128}$/,zO=ti(86,"=="),WO=ii(86)});function TS(e,r,n){if(e.issues.length)r.issues.push(...Ie(n,e.issues))}var Z,SS,S_,N_,Ko,Fo,Jo,zo,Wo,Mo,qo,Go,Ho,dt,Bo,Co,Yo,Vo,Qo,Zo,so,po,el;var b_=R(()=>{_n();T_();j();Z=E("$ZodCheck",(e,r)=>{var n;e._zod??(e._zod={}),e._zod.def=r,(n=e._zod).onattach??(n.onattach=[])}),SS={number:"number",bigint:"bigint",object:"date"},S_=E("$ZodCheckLessThan",(e,r)=>{Z.init(e,r);let n=SS[typeof r.value];e._zod.onattach.push((i)=>{let t=i._zod.bag,u=(r.inclusive?t.maximum:t.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(r.value{if(r.inclusive?i.value<=r.value:i.value{Z.init(e,r);let n=SS[typeof r.value];e._zod.onattach.push((i)=>{let t=i._zod.bag,u=(r.inclusive?t.minimum:t.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(r.value>u)if(r.inclusive)t.minimum=r.value;else t.exclusiveMinimum=r.value}),e._zod.check=(i)=>{if(r.inclusive?i.value>=r.value:i.value>r.value)return;i.issues.push({origin:n,code:"too_small",minimum:typeof r.value==="object"?r.value.getTime():r.value,input:i.value,inclusive:r.inclusive,inst:e,continue:!r.abort})}}),Ko=E("$ZodCheckMultipleOf",(e,r)=>{Z.init(e,r),e._zod.onattach.push((n)=>{var i;(i=n._zod.bag).multipleOf??(i.multipleOf=r.value)}),e._zod.check=(n)=>{if(typeof n.value!==typeof r.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof n.value==="bigint"?n.value%r.value===BigInt(0):Yg(n.value,r.value)===0)return;n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:r.value,input:n.value,inst:e,continue:!r.abort})}}),Fo=E("$ZodCheckNumberFormat",(e,r)=>{Z.init(e,r),r.format=r.format||"float64";let n=r.format?.includes("int"),i=n?"int":"number",[t,u]=eo[r.format];e._zod.onattach.push((_)=>{let c=_._zod.bag;if(c.format=r.format,c.minimum=t,c.maximum=u,n)c.pattern=Ao}),e._zod.check=(_)=>{let c=_.value;if(n){if(!Number.isInteger(c)){_.issues.push({expected:i,format:r.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){if(c>0)_.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!r.abort});else _.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!r.abort});return}}if(cu)_.issues.push({origin:"number",input:c,code:"too_big",maximum:u,inclusive:!0,inst:e,continue:!r.abort})}}),Jo=E("$ZodCheckBigIntFormat",(e,r)=>{Z.init(e,r);let[n,i]=ro[r.format];e._zod.onattach.push((t)=>{let u=t._zod.bag;u.format=r.format,u.minimum=n,u.maximum=i}),e._zod.check=(t)=>{let u=t.value;if(ui)t.issues.push({origin:"bigint",input:u,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!r.abort})}}),zo=E("$ZodCheckMaxSize",(e,r)=>{var n;Z.init(e,r),(n=e._zod.def).when??(n.when=(i)=>{let t=i.value;return!yr(t)&&t.size!==void 0}),e._zod.onattach.push((i)=>{let t=i._zod.bag.maximum??Number.POSITIVE_INFINITY;if(r.maximum{let t=i.value;if(t.size<=r.maximum)return;i.issues.push({origin:pt(t),code:"too_big",maximum:r.maximum,inclusive:!0,input:t,inst:e,continue:!r.abort})}}),Wo=E("$ZodCheckMinSize",(e,r)=>{var n;Z.init(e,r),(n=e._zod.def).when??(n.when=(i)=>{let t=i.value;return!yr(t)&&t.size!==void 0}),e._zod.onattach.push((i)=>{let t=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(r.minimum>t)i._zod.bag.minimum=r.minimum}),e._zod.check=(i)=>{let t=i.value;if(t.size>=r.minimum)return;i.issues.push({origin:pt(t),code:"too_small",minimum:r.minimum,inclusive:!0,input:t,inst:e,continue:!r.abort})}}),Mo=E("$ZodCheckSizeEquals",(e,r)=>{var n;Z.init(e,r),(n=e._zod.def).when??(n.when=(i)=>{let t=i.value;return!yr(t)&&t.size!==void 0}),e._zod.onattach.push((i)=>{let t=i._zod.bag;t.minimum=r.size,t.maximum=r.size,t.size=r.size}),e._zod.check=(i)=>{let t=i.value,u=t.size;if(u===r.size)return;let _=u>r.size;i.issues.push({origin:pt(t),..._?{code:"too_big",maximum:r.size}:{code:"too_small",minimum:r.size},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!r.abort})}}),qo=E("$ZodCheckMaxLength",(e,r)=>{var n;Z.init(e,r),(n=e._zod.def).when??(n.when=(i)=>{let t=i.value;return!yr(t)&&t.length!==void 0}),e._zod.onattach.push((i)=>{let t=i._zod.bag.maximum??Number.POSITIVE_INFINITY;if(r.maximum{let t=i.value;if(t.length<=r.maximum)return;let _=ei(t);i.issues.push({origin:_,code:"too_big",maximum:r.maximum,inclusive:!0,input:t,inst:e,continue:!r.abort})}}),Go=E("$ZodCheckMinLength",(e,r)=>{var n;Z.init(e,r),(n=e._zod.def).when??(n.when=(i)=>{let t=i.value;return!yr(t)&&t.length!==void 0}),e._zod.onattach.push((i)=>{let t=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(r.minimum>t)i._zod.bag.minimum=r.minimum}),e._zod.check=(i)=>{let t=i.value;if(t.length>=r.minimum)return;let _=ei(t);i.issues.push({origin:_,code:"too_small",minimum:r.minimum,inclusive:!0,input:t,inst:e,continue:!r.abort})}}),Ho=E("$ZodCheckLengthEquals",(e,r)=>{var n;Z.init(e,r),(n=e._zod.def).when??(n.when=(i)=>{let t=i.value;return!yr(t)&&t.length!==void 0}),e._zod.onattach.push((i)=>{let t=i._zod.bag;t.minimum=r.length,t.maximum=r.length,t.length=r.length}),e._zod.check=(i)=>{let t=i.value,u=t.length;if(u===r.length)return;let _=ei(t),c=u>r.length;i.issues.push({origin:_,...c?{code:"too_big",maximum:r.length}:{code:"too_small",minimum:r.length},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!r.abort})}}),dt=E("$ZodCheckStringFormat",(e,r)=>{var n,i;if(Z.init(e,r),e._zod.onattach.push((t)=>{let u=t._zod.bag;if(u.format=r.format,r.pattern)u.patterns??(u.patterns=new Set),u.patterns.add(r.pattern)}),r.pattern)(n=e._zod).check??(n.check=(t)=>{if(r.pattern.lastIndex=0,r.pattern.test(t.value))return;t.issues.push({origin:"string",code:"invalid_format",format:r.format,input:t.value,...r.pattern?{pattern:r.pattern.toString()}:{},inst:e,continue:!r.abort})});else(i=e._zod).check??(i.check=()=>{})}),Bo=E("$ZodCheckRegex",(e,r)=>{dt.init(e,r),e._zod.check=(n)=>{if(r.pattern.lastIndex=0,r.pattern.test(n.value))return;n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:r.pattern.toString(),inst:e,continue:!r.abort})}}),Co=E("$ZodCheckLowerCase",(e,r)=>{r.pattern??(r.pattern=xo),dt.init(e,r)}),Yo=E("$ZodCheckUpperCase",(e,r)=>{r.pattern??(r.pattern=Xo),dt.init(e,r)}),Vo=E("$ZodCheckIncludes",(e,r)=>{Z.init(e,r);let n=xe(r.includes),i=new RegExp(typeof r.position==="number"?`^.{${r.position}}${n}`:n);r.pattern=i,e._zod.onattach.push((t)=>{let u=t._zod.bag;u.patterns??(u.patterns=new Set),u.patterns.add(i)}),e._zod.check=(t)=>{if(t.value.includes(r.includes,r.position))return;t.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:r.includes,input:t.value,inst:e,continue:!r.abort})}}),Qo=E("$ZodCheckStartsWith",(e,r)=>{Z.init(e,r);let n=new RegExp(`^${xe(r.prefix)}.*`);r.pattern??(r.pattern=n),e._zod.onattach.push((i)=>{let t=i._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=(i)=>{if(i.value.startsWith(r.prefix))return;i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:r.prefix,input:i.value,inst:e,continue:!r.abort})}}),Zo=E("$ZodCheckEndsWith",(e,r)=>{Z.init(e,r);let n=new RegExp(`.*${xe(r.suffix)}$`);r.pattern??(r.pattern=n),e._zod.onattach.push((i)=>{let t=i._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=(i)=>{if(i.value.endsWith(r.suffix))return;i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:r.suffix,input:i.value,inst:e,continue:!r.abort})}});so=E("$ZodCheckProperty",(e,r)=>{Z.init(e,r),e._zod.check=(n)=>{let i=r.schema._zod.run({value:n.value[r.property],issues:[]},{});if(i instanceof Promise)return i.then((t)=>TS(t,n,r.property));TS(i,n,r.property);return}}),po=E("$ZodCheckMimeType",(e,r)=>{Z.init(e,r);let n=new Set(r.mime);e._zod.onattach.push((i)=>{i._zod.bag.mime=r.mime}),e._zod.check=(i)=>{if(n.has(i.value.type))return;i.issues.push({code:"invalid_value",values:r.mime,input:i.value.type,inst:e,continue:!r.abort})}}),el=E("$ZodCheckOverwrite",(e,r)=>{Z.init(e,r),e._zod.check=(n)=>{n.value=r.tx(n.value)}})});class I_{constructor(e=[]){if(this.content=[],this.indent=0,this)this.args=e}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`).filter((u)=>u),i=Math.min(...n.map((u)=>u.length-u.trimStart().length)),t=n.map((u)=>u.slice(i)).map((u)=>" ".repeat(this.indent*2)+u);for(let u of t)this.content.push(u)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map((t)=>` ${t}`)];return new e(...r,i.join(` +`))}}var rl;var nl=R(()=>{rl={major:4,minor:4,patch:3}});function wl(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function xS(e){if(!k_.test(e))return!1;let r=e.replace(/[-_]/g,(i)=>i==="-"?"+":"/"),n=r.padEnd(Math.ceil(r.length/4)*4,"=");return wl(n)}function XS(e,r=null){try{let n=e.split(".");if(n.length!==3)return!1;let[i]=n;if(!i)return!1;let t=JSON.parse(atob(i));if("typ"in t&&t?.typ!=="JWT")return!1;if(!t.alg)return!1;if(r&&(!("alg"in t)||t.alg!==r))return!1;return!0}catch{return!1}}function bS(e,r,n){if(e.issues.length)r.issues.push(...Ie(n,e.issues));r.value[n]=e.value}function U_(e,r,n,i,t,u){let _=n in i;if(e.issues.length){if(t&&u&&!_)return;r.issues.push(...Ie(n,e.issues))}if(!_&&!t){if(!e.issues.length)r.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]});return}if(e.value===void 0){if(_)r.value[n]=void 0}else r.value[n]=e.value}function KS(e){let r=Object.keys(e.shape);for(let i of r)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${i}": expected a Zod schema`);let n=pg(e.shape);return{...e,keys:r,keySet:new Set(r),numKeys:r.length,optionalKeys:new Set(n)}}function FS(e,r,n,i,t,u){let _=[],c=t.keySet,d=t.catchall._zod,g=d.def.type,f=d.optin==="optional",o=d.optout==="optional";for(let a in r){if(a==="__proto__")continue;if(c.has(a))continue;if(g==="never"){_.push(a);continue}let l=d.run({value:r[a],issues:[]},i);if(l instanceof Promise)e.push(l.then(($)=>U_($,n,a,r,f,o)));else U_(l,n,a,r,f,o)}if(_.length)n.issues.push({code:"unrecognized_keys",keys:_,input:r,inst:u});if(!e.length)return n;return Promise.all(e).then(()=>{return n})}function IS(e,r,n,i){for(let u of e)if(u.issues.length===0)return r.value=u.value,r;let t=e.filter((u)=>!xr(u));if(t.length===1)return r.value=t[0].value,t[0];return r.issues.push({code:"invalid_union",input:r.value,inst:n,errors:e.map((u)=>u.issues.map((_)=>Se(_,i,ie())))}),r}function mS(e,r,n,i){let t=e.filter((u)=>u.issues.length===0);if(t.length===1)return r.value=t[0].value,r;if(t.length===0)r.issues.push({code:"invalid_union",input:r.value,inst:n,errors:e.map((u)=>u.issues.map((_)=>Se(_,i,ie())))});else r.issues.push({code:"invalid_union",input:r.value,inst:n,errors:[],inclusive:!1});return r}function tl(e,r){if(e===r)return{valid:!0,data:e};if(e instanceof Date&&r instanceof Date&&+e===+r)return{valid:!0,data:e};if(Pr(e)&&Pr(r)){let n=Object.keys(r),i=Object.keys(e).filter((u)=>n.indexOf(u)!==-1),t={...e,...r};for(let u of i){let _=tl(e[u],r[u]);if(!_.valid)return{valid:!1,mergeErrorPath:[u,..._.mergeErrorPath]};t[u]=_.data}return{valid:!0,data:t}}if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let i=0;ic.l&&c.r).map(([c])=>c);if(u.length&&t)e.issues.push({...t,keys:u});if(xr(e))return e;let _=tl(r.value,n.value);if(!_.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(_.mergeErrorPath)}`);return e.value=_.data,e}function DS(e,r){for(let n=e.length-1;n>=0;n--)if(e[n]._zod[r]!=="optional")return n+1;return 0}function US(e,r,n){if(e.issues.length)r.issues.push(...Ie(n,e.issues));r.value[n]=e.value}function hS(e,r,n,i,t){for(let u=0;u=t){r.value.length=u;break}r.issues.push(...Ie(u,_.issues))}r.value[u]=_.value}for(let u=r.value.length-1;u>=i.length;u--)if(n[u]._zod.optout==="optional"&&r.value[u]===void 0)r.value.length=u;else break;return r}function OS(e,r,n,i,t,u,_){if(e.issues.length)if(st.has(typeof i))n.issues.push(...Ie(i,e.issues));else n.issues.push({code:"invalid_key",origin:"map",input:t,inst:u,issues:e.issues.map((c)=>Se(c,_,ie()))});if(r.issues.length)if(st.has(typeof i))n.issues.push(...Ie(i,r.issues));else n.issues.push({origin:"map",code:"invalid_element",input:t,inst:u,key:i,issues:r.issues.map((c)=>Se(c,_,ie()))});n.value.set(e.value,r.value)}function RS(e,r){if(e.issues.length)r.issues.push(...e.issues);r.value.add(e.value)}function LS(e,r){if(r===void 0&&(e.issues.length||e.fallback))return{issues:[],value:void 0};return e}function AS(e,r){if(e.value===void 0)e.value=r.defaultValue;return e}function yS(e,r){if(!e.issues.length&&e.value===void 0)e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:r});return e}function m_(e,r,n){if(e.issues.length)return e.aborted=!0,e;return r._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}function w_(e,r,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){let t=r.transform(e.value,e);if(t instanceof Promise)return t.then((u)=>D_(e,u,r.out,n));return D_(e,t,r.out,n)}else{let t=r.reverseTransform(e.value,e);if(t instanceof Promise)return t.then((u)=>D_(e,u,r.in,n));return D_(e,t,r.in,n)}}function D_(e,r,n,i){if(e.issues.length)return e.aborted=!0,e;return n._zod.run({value:r,issues:e.issues},i)}function jS(e){return e.value=Object.freeze(e.value),e}function PS(e,r,n,i){if(!e){let t={code:"custom",input:n,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};if(i._zod.def.params)t.params=i._zod.def.params;r.issues.push(rt(t))}}var K,gn,Q,il,ul,_l,cl,dl,gl,ol,ll,al,fl,$l,vl,El,kl,Tl,Sl,Nl,bl,Il,ml,Dl,Ul,hl,Ol,Rl,h_,Ll,ui,O_,Al,yl,jl,Pl,xl,Xl,Kl,Fl,Jl,zl,JS,Wl,_i,Ml,ql,Gl,R_,Hl,Bl,Cl,Yl,Vl,Ql,Zl,L_,sl,pl,ea,ra,na,ta,ia,ua,A_,ci,_a,ca,da,ga,oa,la,aa;var fa=R(()=>{b_();_n();_o();T_();j();nl();j();K=E("$ZodType",(e,r)=>{var n;e??(e={}),e._zod.def=r,e._zod.bag=e._zod.bag||{},e._zod.version=rl;let i=[...e._zod.def.checks??[]];if(e._zod.traits.has("$ZodCheck"))i.unshift(e);for(let t of i)for(let u of t._zod.onattach)u(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(_,c,d)=>{let g=xr(_),f;for(let o of c){if(o._zod.def.when){if(no(_))continue;if(!o._zod.def.when(_))continue}else if(g)continue;let a=_.issues.length,l=o._zod.check(_);if(l instanceof Promise&&d?.async===!1)throw new rr;if(f||l instanceof Promise)f=(f??Promise.resolve()).then(async()=>{if(await l,_.issues.length===a)return;if(!g)g=xr(_,a)});else{if(_.issues.length===a)continue;if(!g)g=xr(_,a)}}if(f)return f.then(()=>{return _});return _},u=(_,c,d)=>{if(xr(_))return _.aborted=!0,_;let g=t(c,i,d);if(g instanceof Promise){if(d.async===!1)throw new rr;return g.then((f)=>e._zod.parse(f,d))}return e._zod.parse(g,d)};e._zod.run=(_,c)=>{if(c.skipChecks)return e._zod.parse(_,c);if(c.direction==="backward"){let g=e._zod.parse({value:_.value,issues:[]},{...c,skipChecks:!0});if(g instanceof Promise)return g.then((f)=>{return u(f,_,c)});return u(g,_,c)}let d=e._zod.parse(_,c);if(d instanceof Promise){if(c.async===!1)throw new rr;return d.then((g)=>t(g,i,c))}return t(d,i,c)}}W(e,"~standard",()=>({validate:(t)=>{try{let u=io(e,t);return u.success?{value:u.data}:{issues:u.error?.issues}}catch(u){return uo(e,t).then((_)=>_.success?{value:_.data}:{issues:_.error?.issues})}},vendor:"zod",version:1}))}),gn=E("$ZodString",(e,r)=>{K.init(e,r),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ro(e._zod.bag),e._zod.parse=(n,i)=>{if(r.coerce)try{n.value=String(n.value)}catch(t){}if(typeof n.value==="string")return n;return n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Q=E("$ZodStringFormat",(e,r)=>{dt.init(e,r),gn.init(e,r)}),il=E("$ZodGUID",(e,r)=>{r.pattern??(r.pattern=vo),Q.init(e,r)}),ul=E("$ZodUUID",(e,r)=>{if(r.version){let i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[r.version];if(i===void 0)throw Error(`Invalid UUID version: "${r.version}"`);r.pattern??(r.pattern=dn(i))}else r.pattern??(r.pattern=dn());Q.init(e,r)}),_l=E("$ZodEmail",(e,r)=>{r.pattern??(r.pattern=Eo),Q.init(e,r)}),cl=E("$ZodURL",(e,r)=>{Q.init(e,r),e._zod.check=(n)=>{try{let i=n.value.trim();if(!r.normalize&&r.protocol?.source===wo.source){if(!/^https?:\/\//i.test(i)){n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!r.abort});return}}let t=new URL(i);if(r.hostname){if(r.hostname.lastIndex=0,!r.hostname.test(t.hostname))n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:r.hostname.source,input:n.value,inst:e,continue:!r.abort})}if(r.protocol){if(r.protocol.lastIndex=0,!r.protocol.test(t.protocol.endsWith(":")?t.protocol.slice(0,-1):t.protocol))n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:r.protocol.source,input:n.value,inst:e,continue:!r.abort})}if(r.normalize)n.value=t.href;else n.value=i;return}catch(i){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!r.abort})}}}),dl=E("$ZodEmoji",(e,r)=>{r.pattern??(r.pattern=ko()),Q.init(e,r)}),gl=E("$ZodNanoID",(e,r)=>{r.pattern??(r.pattern=fo),Q.init(e,r)}),ol=E("$ZodCUID",(e,r)=>{r.pattern??(r.pattern=co),Q.init(e,r)}),ll=E("$ZodCUID2",(e,r)=>{r.pattern??(r.pattern=go),Q.init(e,r)}),al=E("$ZodULID",(e,r)=>{r.pattern??(r.pattern=oo),Q.init(e,r)}),fl=E("$ZodXID",(e,r)=>{r.pattern??(r.pattern=lo),Q.init(e,r)}),$l=E("$ZodKSUID",(e,r)=>{r.pattern??(r.pattern=ao),Q.init(e,r)}),vl=E("$ZodISODateTime",(e,r)=>{r.pattern??(r.pattern=Oo(r)),Q.init(e,r)}),El=E("$ZodISODate",(e,r)=>{r.pattern??(r.pattern=Uo),Q.init(e,r)}),kl=E("$ZodISOTime",(e,r)=>{r.pattern??(r.pattern=ho(r)),Q.init(e,r)}),Tl=E("$ZodISODuration",(e,r)=>{r.pattern??(r.pattern=$o),Q.init(e,r)}),Sl=E("$ZodIPv4",(e,r)=>{r.pattern??(r.pattern=To),Q.init(e,r),e._zod.bag.format="ipv4"}),Nl=E("$ZodIPv6",(e,r)=>{r.pattern??(r.pattern=So),Q.init(e,r),e._zod.bag.format="ipv6",e._zod.check=(n)=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!r.abort})}}}),bl=E("$ZodMAC",(e,r)=>{r.pattern??(r.pattern=No(r.delimiter)),Q.init(e,r),e._zod.bag.format="mac"}),Il=E("$ZodCIDRv4",(e,r)=>{r.pattern??(r.pattern=bo),Q.init(e,r)}),ml=E("$ZodCIDRv6",(e,r)=>{r.pattern??(r.pattern=Io),Q.init(e,r),e._zod.check=(n)=>{let i=n.value.split("/");try{if(i.length!==2)throw Error();let[t,u]=i;if(!u)throw Error();let _=Number(u);if(`${_}`!==u)throw Error();if(_<0||_>128)throw Error();new URL(`http://[${t}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!r.abort})}}});Dl=E("$ZodBase64",(e,r)=>{r.pattern??(r.pattern=mo),Q.init(e,r),e._zod.bag.contentEncoding="base64",e._zod.check=(n)=>{if(wl(n.value))return;n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!r.abort})}});Ul=E("$ZodBase64URL",(e,r)=>{r.pattern??(r.pattern=k_),Q.init(e,r),e._zod.bag.contentEncoding="base64url",e._zod.check=(n)=>{if(xS(n.value))return;n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!r.abort})}}),hl=E("$ZodE164",(e,r)=>{r.pattern??(r.pattern=Do),Q.init(e,r)});Ol=E("$ZodJWT",(e,r)=>{Q.init(e,r),e._zod.check=(n)=>{if(XS(n.value,r.alg))return;n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!r.abort})}}),Rl=E("$ZodCustomStringFormat",(e,r)=>{Q.init(e,r),e._zod.check=(n)=>{if(r.fn(n.value))return;n.issues.push({code:"invalid_format",format:r.format,input:n.value,inst:e,continue:!r.abort})}}),h_=E("$ZodNumber",(e,r)=>{K.init(e,r),e._zod.pattern=e._zod.bag.pattern??ni,e._zod.parse=(n,i)=>{if(r.coerce)try{n.value=Number(n.value)}catch(_){}let t=n.value;if(typeof t==="number"&&!Number.isNaN(t)&&Number.isFinite(t))return n;let u=typeof t==="number"?Number.isNaN(t)?"NaN":!Number.isFinite(t)?"Infinity":void 0:void 0;return n.issues.push({expected:"number",code:"invalid_type",input:t,inst:e,...u?{received:u}:{}}),n}}),Ll=E("$ZodNumberFormat",(e,r)=>{Fo.init(e,r),h_.init(e,r)}),ui=E("$ZodBoolean",(e,r)=>{K.init(e,r),e._zod.pattern=yo,e._zod.parse=(n,i)=>{if(r.coerce)try{n.value=Boolean(n.value)}catch(u){}let t=n.value;if(typeof t==="boolean")return n;return n.issues.push({expected:"boolean",code:"invalid_type",input:t,inst:e}),n}}),O_=E("$ZodBigInt",(e,r)=>{K.init(e,r),e._zod.pattern=Lo,e._zod.parse=(n,i)=>{if(r.coerce)try{n.value=BigInt(n.value)}catch(t){}if(typeof n.value==="bigint")return n;return n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),Al=E("$ZodBigIntFormat",(e,r)=>{Jo.init(e,r),O_.init(e,r)}),yl=E("$ZodSymbol",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(typeof t==="symbol")return n;return n.issues.push({expected:"symbol",code:"invalid_type",input:t,inst:e}),n}}),jl=E("$ZodUndefined",(e,r)=>{K.init(e,r),e._zod.pattern=Po,e._zod.values=new Set([void 0]),e._zod.parse=(n,i)=>{let t=n.value;if(typeof t>"u")return n;return n.issues.push({expected:"undefined",code:"invalid_type",input:t,inst:e}),n}}),Pl=E("$ZodNull",(e,r)=>{K.init(e,r),e._zod.pattern=jo,e._zod.values=new Set([null]),e._zod.parse=(n,i)=>{let t=n.value;if(t===null)return n;return n.issues.push({expected:"null",code:"invalid_type",input:t,inst:e}),n}}),xl=E("$ZodAny",(e,r)=>{K.init(e,r),e._zod.parse=(n)=>n}),Xl=E("$ZodUnknown",(e,r)=>{K.init(e,r),e._zod.parse=(n)=>n}),Kl=E("$ZodNever",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{return n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n}}),Fl=E("$ZodVoid",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(typeof t>"u")return n;return n.issues.push({expected:"void",code:"invalid_type",input:t,inst:e}),n}}),Jl=E("$ZodDate",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{if(r.coerce)try{n.value=new Date(n.value)}catch(c){}let t=n.value,u=t instanceof Date;if(u&&!Number.isNaN(t.getTime()))return n;return n.issues.push({expected:"date",code:"invalid_type",input:t,...u?{received:"Invalid Date"}:{},inst:e}),n}});zl=E("$ZodArray",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(!Array.isArray(t))return n.issues.push({expected:"array",code:"invalid_type",input:t,inst:e}),n;n.value=Array(t.length);let u=[];for(let _=0;_bS(g,n,_)));else bS(d,n,_)}if(u.length)return Promise.all(u).then(()=>n);return n}});JS=E("$ZodObject",(e,r)=>{if(K.init(e,r),!Object.getOwnPropertyDescriptor(r,"shape")?.get){let c=r.shape;Object.defineProperty(r,"shape",{get:()=>{let d={...c};return Object.defineProperty(r,"shape",{value:d}),d}})}let i=et(()=>KS(r));W(e._zod,"propValues",()=>{let c=r.shape,d={};for(let g in c){let f=c[g]._zod;if(f.values){d[g]??(d[g]=new Set);for(let o of f.values)d[g].add(o)}}return d});let t=cn,u=r.catchall,_;e._zod.parse=(c,d)=>{_??(_=i.value);let g=c.value;if(!t(g))return c.issues.push({expected:"object",code:"invalid_type",input:g,inst:e}),c;c.value={};let f=[],o=_.shape;for(let a of _.keys){let l=o[a],$=l._zod.optin==="optional",v=l._zod.optout==="optional",k=l._zod.run({value:g[a],issues:[]},d);if(k instanceof Promise)f.push(k.then((T)=>U_(T,c,a,g,$,v)));else U_(k,c,a,g,$,v)}if(!u)return f.length?Promise.all(f).then(()=>c):c;return FS(f,g,c,d,i.value,e)}}),Wl=E("$ZodObjectJIT",(e,r)=>{JS.init(e,r);let n=e._zod.parse,i=et(()=>KS(r)),t=(a)=>{let l=new I_(["shape","payload","ctx"]),$=i.value,v=(O)=>{let b=t_(O);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};l.write("const input = payload.value;");let k=Object.create(null),T=0;for(let O of $.keys)k[O]=`key_${T++}`;l.write("const newResult = {};");for(let O of $.keys){let b=k[O],D=t_(O),y=a[O],x=y?._zod?.optin==="optional",F=y?._zod?.optout==="optional";if(l.write(`const ${b} = ${v(O)};`),x&&F)l.write(` + if (${b}.issues.length) { + if (${D} in input) { + payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ ...iss, - path: iss.path ? [${U}, ...iss.path] : [${U}] + path: iss.path ? [${D}, ...iss.path] : [${D}] }))); } } - if (${S}.value === undefined) { - if (${U} in input) { - newResult[${U}] = undefined; + if (${b}.value === undefined) { + if (${D} in input) { + newResult[${D}] = undefined; } } else { - newResult[${U}] = ${S}.value; + newResult[${D}] = ${b}.value; } - `);else if(!j)l.write(` - const ${S}_present = ${U} in input; - if (${S}.issues.length) { - payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ + `);else if(!x)l.write(` + const ${b}_present = ${D} in input; + if (${b}.issues.length) { + payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ ...iss, - path: iss.path ? [${U}, ...iss.path] : [${U}] + path: iss.path ? [${D}, ...iss.path] : [${D}] }))); } - if (!${S}_present && !${S}.issues.length) { + if (!${b}_present && !${b}.issues.length) { payload.issues.push({ code: "invalid_type", expected: "nonoptional", input: undefined, - path: [${U}] + path: [${D}] }); } - if (${S}_present) { - if (${S}.value === undefined) { - newResult[${U}] = undefined; + if (${b}_present) { + if (${b}.value === undefined) { + newResult[${D}] = undefined; } else { - newResult[${U}] = ${S}.value; + newResult[${D}] = ${b}.value; } } `);else l.write(` - if (${S}.issues.length) { - payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ + if (${b}.issues.length) { + payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ ...iss, - path: iss.path ? [${U}, ...iss.path] : [${U}] + path: iss.path ? [${D}, ...iss.path] : [${D}] }))); } - if (${S}.value === undefined) { - if (${U} in input) { - newResult[${U}] = undefined; + if (${b}.value === undefined) { + if (${D} in input) { + newResult[${D}] = undefined; } } else { - newResult[${U}] = ${S}.value; + newResult[${D}] = ${b}.value; } - `)}l.write("payload.value = newResult;"),l.write("return payload;");let k=l.compile();return(R,S)=>k(E,R,S)},_,u=ut,c=!nt.jitless,o=c&&Zo.value,a=r.catchall,g;e._zod.parse=(E,l)=>{g??(g=i.value);let T=E.value;if(!u(T))return E.issues.push({expected:"object",code:"invalid_type",input:T,inst:e}),E;if(c&&o&&l?.async===!1&&l.jitless!==!0){if(!_)_=n(r.shape);if(E=_(E,l),!a)return E;return Kk([],T,E,l,g,e)}return t(E,l)}});ui=$("$ZodUnion",(e,r)=>{F.init(e,r),z(e._zod,"optin",()=>r.options.some((i)=>i._zod.optin==="optional")?"optional":void 0),z(e._zod,"optout",()=>r.options.some((i)=>i._zod.optout==="optional")?"optional":void 0),z(e._zod,"values",()=>{if(r.options.every((i)=>i._zod.values))return new Set(r.options.flatMap((i)=>Array.from(i._zod.values)));return}),z(e._zod,"pattern",()=>{if(r.options.every((i)=>i._zod.pattern)){let i=r.options.map((n)=>n._zod.pattern);return new RegExp(`^(${i.map((n)=>Zn(n.source)).join("|")})$`)}return});let t=r.options.length===1?r.options[0]._zod.run:null;e._zod.parse=(i,n)=>{if(t)return t(i,n);let _=!1,u=[];for(let c of r.options){let d=c._zod.run({value:i.value,issues:[]},n);if(d instanceof Promise)u.push(d),_=!0;else{if(d.issues.length===0)return d;u.push(d)}}if(!_)return Ok(u,i,e,n);return Promise.all(u).then((c)=>{return Ok(c,i,e,n)})}});Ml=$("$ZodXor",(e,r)=>{ui.init(e,r),r.inclusive=!1;let t=r.options.length===1?r.options[0]._zod.run:null;e._zod.parse=(i,n)=>{if(t)return t(i,n);let _=!1,u=[];for(let c of r.options){let d=c._zod.run({value:i.value,issues:[]},n);if(d instanceof Promise)u.push(d),_=!0;else u.push(d)}if(!_)return Lk(u,i,e,n);return Promise.all(u).then((c)=>{return Lk(c,i,e,n)})}}),Cl=$("$ZodDiscriminatedUnion",(e,r)=>{r.inclusive=!1,ui.init(e,r);let t=e._zod.parse;z(e._zod,"propValues",()=>{let n={};for(let _ of r.options){let u=_._zod.propValues;if(!u||Object.keys(u).length===0)throw Error(`Invalid discriminated union option at index "${r.options.indexOf(_)}"`);for(let[c,d]of Object.entries(u)){if(!n[c])n[c]=new Set;for(let o of d)n[c].add(o)}}return n});let i=pt(()=>{let n=r.options,_=new Map;for(let u of n){let c=u._zod.propValues?.[r.discriminator];if(!c||c.size===0)throw Error(`Invalid discriminated union option at index "${r.options.indexOf(u)}"`);for(let d of c){if(_.has(d))throw Error(`Duplicate discriminator value "${String(d)}"`);_.set(d,u)}}return _});e._zod.parse=(n,_)=>{let u=n.value;if(!ut(u))return n.issues.push({code:"invalid_type",expected:"object",input:u,inst:e}),n;let c=i.value.get(u?.[r.discriminator]);if(c)return c._zod.run(n,_);if(r.unionFallback||_.direction==="backward")return t(n,_);return n.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:r.discriminator,options:Array.from(i.value.keys()),input:u,path:[r.discriminator],inst:e}),n}}),ql=$("$ZodIntersection",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value,_=r.left._zod.run({value:n,issues:[]},i),u=r.right._zod.run({value:n,issues:[]},i);if(_ instanceof Promise||u instanceof Promise)return Promise.all([_,u]).then(([d,o])=>{return bk(t,d,o)});return bk(t,_,u)}});hu=$("$ZodTuple",(e,r)=>{F.init(e,r);let t=r.items;e._zod.parse=(i,n)=>{let _=i.value;if(!Array.isArray(_))return i.issues.push({input:_,inst:e,expected:"tuple",code:"invalid_type"}),i;i.value=[];let u=[],c=Uk(t,"optin"),d=Uk(t,"optout");if(!r.rest){if(_.lengtht.length)i.issues.push({code:"too_big",maximum:t.length,inclusive:!0,input:_,inst:e,origin:"array"})}let o=Array(t.length);for(let a=0;a{o[a]=E}));else o[a]=g}if(r.rest){let a=t.length-1,g=_.slice(t.length);for(let E of g){a++;let l=r.rest._zod.run({value:E,issues:[]},n);if(l instanceof Promise)u.push(l.then((T)=>mk(T,i,a)));else mk(l,i,a)}}if(u.length)return Promise.all(u).then(()=>Dk(o,i,t,_,d));return Dk(o,i,t,_,d)}});Gl=$("$ZodRecord",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(!xr(n))return t.issues.push({expected:"record",code:"invalid_type",input:n,inst:e}),t;let _=[],u=r.keyType._zod.values;if(u){t.value={};let c=new Set;for(let o of u)if(typeof o==="string"||typeof o==="number"||typeof o==="symbol"){c.add(typeof o==="number"?o.toString():o);let a=r.keyType._zod.run({value:o,issues:[]},i);if(a instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(a.issues.length){t.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map((l)=>ke(l,i,ie())),input:o,path:[o],inst:e});continue}let g=a.value,E=r.valueType._zod.run({value:n[o],issues:[]},i);if(E instanceof Promise)_.push(E.then((l)=>{if(l.issues.length)t.issues.push(...Oe(o,l.issues));t.value[g]=l.value}));else{if(E.issues.length)t.issues.push(...Oe(o,E.issues));t.value[g]=E.value}}let d;for(let o in n)if(!c.has(o))d=d??[],d.push(o);if(d&&d.length>0)t.issues.push({code:"unrecognized_keys",input:n,inst:e,keys:d})}else{t.value={};for(let c of Reflect.ownKeys(n)){if(c==="__proto__")continue;if(!Object.prototype.propertyIsEnumerable.call(n,c))continue;let d=r.keyType._zod.run({value:c,issues:[]},i);if(d instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof c==="string"&&ti.test(c)&&d.issues.length){let g=r.keyType._zod.run({value:Number(c),issues:[]},i);if(g instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(g.issues.length===0)d=g}if(d.issues.length){if(r.mode==="loose")t.value[c]=n[c];else t.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map((g)=>ke(g,i,ie())),input:c,path:[c],inst:e});continue}let a=r.valueType._zod.run({value:n[c],issues:[]},i);if(a instanceof Promise)_.push(a.then((g)=>{if(g.issues.length)t.issues.push(...Oe(c,g.issues));t.value[d.value]=g.value}));else{if(a.issues.length)t.issues.push(...Oe(c,a.issues));t.value[d.value]=a.value}}}if(_.length)return Promise.all(_).then(()=>t);return t}}),Yl=$("$ZodMap",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(!(n instanceof Map))return t.issues.push({expected:"map",code:"invalid_type",input:n,inst:e}),t;let _=[];t.value=new Map;for(let[u,c]of n){let d=r.keyType._zod.run({value:u,issues:[]},i),o=r.valueType._zod.run({value:c,issues:[]},i);if(d instanceof Promise||o instanceof Promise)_.push(Promise.all([d,o]).then(([a,g])=>{Rk(a,g,t,u,n,e,i)}));else Rk(d,o,t,u,n,e,i)}if(_.length)return Promise.all(_).then(()=>t);return t}});Bl=$("$ZodSet",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(!(n instanceof Set))return t.issues.push({input:n,inst:e,expected:"set",code:"invalid_type"}),t;let _=[];t.value=new Set;for(let u of n){let c=r.valueType._zod.run({value:u,issues:[]},i);if(c instanceof Promise)_.push(c.then((d)=>hk(d,t)));else hk(c,t)}if(_.length)return Promise.all(_).then(()=>t);return t}});Hl=$("$ZodEnum",(e,r)=>{F.init(e,r);let t=Qn(r.entries),i=new Set(t);e._zod.values=i,e._zod.pattern=new RegExp(`^(${t.filter((n)=>sn.has(typeof n)).map((n)=>typeof n==="string"?je(n):n.toString()).join("|")})$`),e._zod.parse=(n,_)=>{let u=n.value;if(i.has(u))return n;return n.issues.push({code:"invalid_value",values:t,input:u,inst:e}),n}}),Vl=$("$ZodLiteral",(e,r)=>{if(F.init(e,r),r.values.length===0)throw Error("Cannot create literal schema with no valid values");let t=new Set(r.values);e._zod.values=t,e._zod.pattern=new RegExp(`^(${r.values.map((i)=>typeof i==="string"?je(i):i?je(i.toString()):String(i)).join("|")})$`),e._zod.parse=(i,n)=>{let _=i.value;if(t.has(_))return i;return i.issues.push({code:"invalid_value",values:r.values,input:_,inst:e}),i}}),Ql=$("$ZodFile",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{let n=t.value;if(n instanceof File)return t;return t.issues.push({expected:"file",code:"invalid_type",input:n,inst:e}),t}}),Zl=$("$ZodTransform",(e,r)=>{F.init(e,r),e._zod.optin="optional",e._zod.parse=(t,i)=>{if(i.direction==="backward")throw new it(e.constructor.name);let n=r.transform(t.value,t);if(i.async)return(n instanceof Promise?n:Promise.resolve(n)).then((u)=>{return t.value=u,t.fallback=!0,t});if(n instanceof Promise)throw new rr;return t.value=n,t.fallback=!0,t}});wu=$("$ZodOptional",(e,r)=>{F.init(e,r),e._zod.optin="optional",e._zod.optout="optional",z(e._zod,"values",()=>{return r.innerType._zod.values?new Set([...r.innerType._zod.values,void 0]):void 0}),z(e._zod,"pattern",()=>{let t=r.innerType._zod.pattern;return t?new RegExp(`^(${Zn(t.source)})?$`):void 0}),e._zod.parse=(t,i)=>{if(r.innerType._zod.optin==="optional"){let n=t.value,_=r.innerType._zod.run(t,i);if(_ instanceof Promise)return _.then((u)=>wk(u,n));return wk(_,n)}if(t.value===void 0)return t;return r.innerType._zod.run(t,i)}}),sl=$("$ZodExactOptional",(e,r)=>{wu.init(e,r),z(e._zod,"values",()=>r.innerType._zod.values),z(e._zod,"pattern",()=>r.innerType._zod.pattern),e._zod.parse=(t,i)=>{return r.innerType._zod.run(t,i)}}),pl=$("$ZodNullable",(e,r)=>{F.init(e,r),z(e._zod,"optin",()=>r.innerType._zod.optin),z(e._zod,"optout",()=>r.innerType._zod.optout),z(e._zod,"pattern",()=>{let t=r.innerType._zod.pattern;return t?new RegExp(`^(${Zn(t.source)}|null)$`):void 0}),z(e._zod,"values",()=>{return r.innerType._zod.values?new Set([...r.innerType._zod.values,null]):void 0}),e._zod.parse=(t,i)=>{if(t.value===null)return t;return r.innerType._zod.run(t,i)}}),eE=$("$ZodDefault",(e,r)=>{F.init(e,r),e._zod.optin="optional",z(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(t,i)=>{if(i.direction==="backward")return r.innerType._zod.run(t,i);if(t.value===void 0)return t.value=r.defaultValue,t;let n=r.innerType._zod.run(t,i);if(n instanceof Promise)return n.then((_)=>Ak(_,r));return Ak(n,r)}});rE=$("$ZodPrefault",(e,r)=>{F.init(e,r),e._zod.optin="optional",z(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(t,i)=>{if(i.direction==="backward")return r.innerType._zod.run(t,i);if(t.value===void 0)t.value=r.defaultValue;return r.innerType._zod.run(t,i)}}),tE=$("$ZodNonOptional",(e,r)=>{F.init(e,r),z(e._zod,"values",()=>{let t=r.innerType._zod.values;return t?new Set([...t].filter((i)=>i!==void 0)):void 0}),e._zod.parse=(t,i)=>{let n=r.innerType._zod.run(t,i);if(n instanceof Promise)return n.then((_)=>Xk(_,e));return Xk(n,e)}});nE=$("$ZodSuccess",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{if(i.direction==="backward")throw new it("ZodSuccess");let n=r.innerType._zod.run(t,i);if(n instanceof Promise)return n.then((_)=>{return t.value=_.issues.length===0,t});return t.value=n.issues.length===0,t}}),iE=$("$ZodCatch",(e,r)=>{F.init(e,r),e._zod.optin="optional",z(e._zod,"optout",()=>r.innerType._zod.optout),z(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(t,i)=>{if(i.direction==="backward")return r.innerType._zod.run(t,i);let n=r.innerType._zod.run(t,i);if(n instanceof Promise)return n.then((_)=>{if(t.value=_.value,_.issues.length)t.value=r.catchValue({...t,error:{issues:_.issues.map((u)=>ke(u,i,ie()))},input:t.value}),t.issues=[],t.fallback=!0;return t});if(t.value=n.value,n.issues.length)t.value=r.catchValue({...t,error:{issues:n.issues.map((_)=>ke(_,i,ie()))},input:t.value}),t.issues=[],t.fallback=!0;return t}}),_E=$("$ZodNaN",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{if(typeof t.value!=="number"||!Number.isNaN(t.value))return t.issues.push({input:t.value,inst:e,expected:"nan",code:"invalid_type"}),t;return t}}),Au=$("$ZodPipe",(e,r)=>{F.init(e,r),z(e._zod,"values",()=>r.in._zod.values),z(e._zod,"optin",()=>r.in._zod.optin),z(e._zod,"optout",()=>r.out._zod.optout),z(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(t,i)=>{if(i.direction==="backward"){let _=r.out._zod.run(t,i);if(_ instanceof Promise)return _.then((u)=>Lu(u,r.in,i));return Lu(_,r.in,i)}let n=r.in._zod.run(t,i);if(n instanceof Promise)return n.then((_)=>Lu(_,r.out,i));return Lu(n,r.out,i)}});ci=$("$ZodCodec",(e,r)=>{F.init(e,r),z(e._zod,"values",()=>r.in._zod.values),z(e._zod,"optin",()=>r.in._zod.optin),z(e._zod,"optout",()=>r.out._zod.optout),z(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(t,i)=>{if((i.direction||"forward")==="forward"){let _=r.in._zod.run(t,i);if(_ instanceof Promise)return _.then((u)=>bu(u,r,i));return bu(_,r,i)}else{let _=r.out._zod.run(t,i);if(_ instanceof Promise)return _.then((u)=>bu(u,r,i));return bu(_,r,i)}}});uE=$("$ZodPreprocess",(e,r)=>{Au.init(e,r)}),cE=$("$ZodReadonly",(e,r)=>{F.init(e,r),z(e._zod,"propValues",()=>r.innerType._zod.propValues),z(e._zod,"values",()=>r.innerType._zod.values),z(e._zod,"optin",()=>r.innerType?._zod?.optin),z(e._zod,"optout",()=>r.innerType?._zod?.optout),e._zod.parse=(t,i)=>{if(i.direction==="backward")return r.innerType._zod.run(t,i);let n=r.innerType._zod.run(t,i);if(n instanceof Promise)return n.then(yk);return yk(n)}});dE=$("$ZodTemplateLiteral",(e,r)=>{F.init(e,r);let t=[];for(let i of r.parts)if(typeof i==="object"&&i!==null){if(!i._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...i._zod.traits].shift()}`);let n=i._zod.pattern instanceof RegExp?i._zod.pattern.source:i._zod.pattern;if(!n)throw Error(`Invalid template literal part: ${i._zod.traits}`);let _=n.startsWith("^")?1:0,u=n.endsWith("$")?n.length-1:n.length;t.push(n.slice(_,u))}else if(i===null||po.has(typeof i))t.push(je(`${i}`));else throw Error(`Invalid template literal part: ${i}`);e._zod.pattern=new RegExp(`^${t.join("")}$`),e._zod.parse=(i,n)=>{if(typeof i.value!=="string")return i.issues.push({input:i.value,inst:e,expected:"string",code:"invalid_type"}),i;if(e._zod.pattern.lastIndex=0,!e._zod.pattern.test(i.value))return i.issues.push({input:i.value,inst:e,code:"invalid_format",format:r.format??"template_literal",pattern:e._zod.pattern.source}),i;return i}}),oE=$("$ZodFunction",(e,r)=>{return F.init(e,r),e._def=r,e._zod.def=r,e.implement=(t)=>{if(typeof t!=="function")throw Error("implement() must be called with a function");return function(...i){let n=e._def.input?cu(e._def.input,i):i,_=Reflect.apply(t,this,n);if(e._def.output)return cu(e._def.output,_);return _}},e.implementAsync=(t)=>{if(typeof t!=="function")throw Error("implementAsync() must be called with a function");return async function(...i){let n=e._def.input?await du(e._def.input,i):i,_=await Reflect.apply(t,this,n);if(e._def.output)return await du(e._def.output,_);return _}},e._zod.parse=(t,i)=>{if(typeof t.value!=="function")return t.issues.push({code:"invalid_type",expected:"function",input:t.value,inst:e}),t;if(e._def.output&&e._def.output._zod.def.type==="promise")t.value=e.implementAsync(t.value);else t.value=e.implement(t.value);return t},e.input=(...t)=>{let i=e.constructor;if(Array.isArray(t[0]))return new i({type:"function",input:new hu({type:"tuple",items:t[0],rest:t[1]}),output:e._def.output});return new i({type:"function",input:t[0],output:e._def.output})},e.output=(t)=>{return new e.constructor({type:"function",input:e._def.input,output:t})},e}),gE=$("$ZodPromise",(e,r)=>{F.init(e,r),e._zod.parse=(t,i)=>{return Promise.resolve(t.value).then((n)=>r.innerType._zod.run({value:n,issues:[]},i))}}),lE=$("$ZodLazy",(e,r)=>{F.init(e,r),z(e._zod,"innerType",()=>{let t=r;if(!t._cachedInner)t._cachedInner=r.getter();return t._cachedInner}),z(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),z(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),z(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),z(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(t,i)=>{return e._zod.innerType._zod.run(t,i)}}),EE=$("$ZodCustom",(e,r)=>{Z.init(e,r),F.init(e,r),e._zod.parse=(t,i)=>{return t},e._zod.check=(t)=>{let i=t.value,n=r.fn(i);if(n instanceof Promise)return n.then((_)=>xk(_,t,i,e));xk(n,t,i,e);return}})});function TE(){return{localeError:qR()}}var qR=()=>{let e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function r(n){return e[n]??null}let t={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${n.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${c}`;return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${_}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${c}`}case"invalid_value":if(n.values.length===1)return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${O(n.values[0])}`;return`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${n.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${_} ${n.maximum.toString()} ${u.unit??"\u0639\u0646\u0635\u0631"}`;return`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${n.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${_} ${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${n.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${_} ${n.minimum.toString()} ${u.unit}`;return`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${n.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${_} ${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${n.prefix}"`;if(_.format==="ends_with")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${_.suffix}"`;if(_.format==="includes")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${_.includes}"`;if(_.format==="regex")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_.pattern}`;return`${t[_.format]??n.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${n.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${n.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${n.keys.length>1?"\u0629":""}: ${I(n.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${n.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${n.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};var Jk=h(()=>{y()});function fE(){return{localeError:GR()}}var GR=()=>{let e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function r(n){return e[n]??null}let t={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${n.expected}, daxil olan ${c}`;return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${_}, daxil olan ${c}`}case"invalid_value":if(n.values.length===1)return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${O(n.values[0])}`;return`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${n.origin??"d\u0259y\u0259r"} ${_}${n.maximum.toString()} ${u.unit??"element"}`;return`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${n.origin??"d\u0259y\u0259r"} ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${n.origin} ${_}${n.minimum.toString()} ${u.unit}`;return`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${n.origin} ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Yanl\u0131\u015F m\u0259tn: "${_.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`;if(_.format==="ends_with")return`Yanl\u0131\u015F m\u0259tn: "${_.suffix}" il\u0259 bitm\u0259lidir`;if(_.format==="includes")return`Yanl\u0131\u015F m\u0259tn: "${_.includes}" daxil olmal\u0131d\u0131r`;if(_.format==="regex")return`Yanl\u0131\u015F m\u0259tn: ${_.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`;return`Yanl\u0131\u015F ${t[_.format]??n.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${n.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${n.keys.length>1?"lar":""}: ${I(n.keys,", ")}`;case"invalid_key":return`${n.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${n.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};var zk=h(()=>{y()});function Mk(e,r,t,i){let n=Math.abs(e),_=n%10,u=n%100;if(u>=11&&u<=19)return i;if(_===1)return r;if(_>=2&&_<=4)return t;return i}function $E(){return{localeError:YR()}}var YR=()=>{let e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function r(n){return e[n]??null}let t={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"},i={nan:"NaN",number:"\u043B\u0456\u043A",array:"\u043C\u0430\u0441\u0456\u045E"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${n.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${c}`;return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${_}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${c}`}case"invalid_value":if(n.values.length===1)return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${O(n.values[0])}`;return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u){let c=Number(n.maximum),d=Mk(c,u.unit.one,u.unit.few,u.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${n.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${u.verb} ${_}${n.maximum.toString()} ${d}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${n.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u){let c=Number(n.minimum),d=Mk(c,u.unit.one,u.unit.few,u.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${n.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${u.verb} ${_}${n.minimum.toString()} ${d}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${n.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${_.prefix}"`;if(_.format==="ends_with")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${_.suffix}"`;if(_.format==="includes")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${_.includes}"`;if(_.format==="regex")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_.pattern}`;return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${t[_.format]??n.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${n.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${n.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${I(n.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${n.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${n.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};var Ck=h(()=>{y()});function vE(){return{localeError:BR()}}var BR=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function r(n){return e[n]??null}let t={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${n.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${c}`;return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${_}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${c}`}case"invalid_value":if(n.values.length===1)return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${O(n.values[0])}`;return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${n.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${_}${n.maximum.toString()} ${u.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`;return`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${n.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${n.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${_}${n.minimum.toString()} ${u.unit}`;return`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${n.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${_.prefix}"`;if(_.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${_.suffix}"`;if(_.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${_.includes}"`;if(_.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${_.pattern}`;let u="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";if(_.format==="emoji")u="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E";if(_.format==="datetime")u="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E";if(_.format==="date")u="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430";if(_.format==="time")u="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E";if(_.format==="duration")u="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430";return`${u} ${t[_.format]??n.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${n.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${n.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${n.keys.length>1?"\u043E\u0432\u0435":""}: ${I(n.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${n.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${n.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};var qk=h(()=>{y()});function NE(){return{localeError:HR()}}var HR=()=>{let e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function r(n){return e[n]??null}let t={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Tipus inv\xE0lid: s'esperava instanceof ${n.expected}, s'ha rebut ${c}`;return`Tipus inv\xE0lid: s'esperava ${_}, s'ha rebut ${c}`}case"invalid_value":if(n.values.length===1)return`Valor inv\xE0lid: s'esperava ${O(n.values[0])}`;return`Opci\xF3 inv\xE0lida: s'esperava una de ${I(n.values," o ")}`;case"too_big":{let _=n.inclusive?"com a m\xE0xim":"menys de",u=r(n.origin);if(u)return`Massa gran: s'esperava que ${n.origin??"el valor"} contingu\xE9s ${_} ${n.maximum.toString()} ${u.unit??"elements"}`;return`Massa gran: s'esperava que ${n.origin??"el valor"} fos ${_} ${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?"com a m\xEDnim":"m\xE9s de",u=r(n.origin);if(u)return`Massa petit: s'esperava que ${n.origin} contingu\xE9s ${_} ${n.minimum.toString()} ${u.unit}`;return`Massa petit: s'esperava que ${n.origin} fos ${_} ${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Format inv\xE0lid: ha de comen\xE7ar amb "${_.prefix}"`;if(_.format==="ends_with")return`Format inv\xE0lid: ha d'acabar amb "${_.suffix}"`;if(_.format==="includes")return`Format inv\xE0lid: ha d'incloure "${_.includes}"`;if(_.format==="regex")return`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${_.pattern}`;return`Format inv\xE0lid per a ${t[_.format]??n.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${n.divisor}`;case"unrecognized_keys":return`Clau${n.keys.length>1?"s":""} no reconeguda${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${n.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${n.origin}`;default:return"Entrada inv\xE0lida"}}};var Gk=h(()=>{y()});function kE(){return{localeError:VR()}}var VR=()=>{let e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function r(n){return e[n]??null}let t={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"},i={nan:"NaN",number:"\u010D\xEDslo",string:"\u0159et\u011Bzec",function:"funkce",array:"pole"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${n.expected}, obdr\u017Eeno ${c}`;return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${_}, obdr\u017Eeno ${c}`}case"invalid_value":if(n.values.length===1)return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${O(n.values[0])}`;return`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${n.origin??"hodnota"} mus\xED m\xEDt ${_}${n.maximum.toString()} ${u.unit??"prvk\u016F"}`;return`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${n.origin??"hodnota"} mus\xED b\xFDt ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${n.origin??"hodnota"} mus\xED m\xEDt ${_}${n.minimum.toString()} ${u.unit??"prvk\u016F"}`;return`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${n.origin??"hodnota"} mus\xED b\xFDt ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${_.prefix}"`;if(_.format==="ends_with")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${_.suffix}"`;if(_.format==="includes")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${_.includes}"`;if(_.format==="regex")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${_.pattern}`;return`Neplatn\xFD form\xE1t ${t[_.format]??n.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${n.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${I(n.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${n.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${n.origin}`;default:return"Neplatn\xFD vstup"}}};var Yk=h(()=>{y()});function IE(){return{localeError:QR()}}var QR=()=>{let e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function r(n){return e[n]??null}let t={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},i={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Ugyldigt input: forventede instanceof ${n.expected}, fik ${c}`;return`Ugyldigt input: forventede ${_}, fik ${c}`}case"invalid_value":if(n.values.length===1)return`Ugyldig v\xE6rdi: forventede ${O(n.values[0])}`;return`Ugyldigt valg: forventede en af f\xF8lgende ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin),c=i[n.origin]??n.origin;if(u)return`For stor: forventede ${c??"value"} ${u.verb} ${_} ${n.maximum.toString()} ${u.unit??"elementer"}`;return`For stor: forventede ${c??"value"} havde ${_} ${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin),c=i[n.origin]??n.origin;if(u)return`For lille: forventede ${c} ${u.verb} ${_} ${n.minimum.toString()} ${u.unit}`;return`For lille: forventede ${c} havde ${_} ${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Ugyldig streng: skal starte med "${_.prefix}"`;if(_.format==="ends_with")return`Ugyldig streng: skal ende med "${_.suffix}"`;if(_.format==="includes")return`Ugyldig streng: skal indeholde "${_.includes}"`;if(_.format==="regex")return`Ugyldig streng: skal matche m\xF8nsteret ${_.pattern}`;return`Ugyldig ${t[_.format]??n.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${n.divisor}`;case"unrecognized_keys":return`${n.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${I(n.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${n.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${n.origin}`;default:return"Ugyldigt input"}}};var Bk=h(()=>{y()});function SE(){return{localeError:ZR()}}var ZR=()=>{let e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function r(n){return e[n]??null}let t={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},i={nan:"NaN",number:"Zahl",array:"Array"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Ung\xFCltige Eingabe: erwartet instanceof ${n.expected}, erhalten ${c}`;return`Ung\xFCltige Eingabe: erwartet ${_}, erhalten ${c}`}case"invalid_value":if(n.values.length===1)return`Ung\xFCltige Eingabe: erwartet ${O(n.values[0])}`;return`Ung\xFCltige Option: erwartet eine von ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Zu gro\xDF: erwartet, dass ${n.origin??"Wert"} ${_}${n.maximum.toString()} ${u.unit??"Elemente"} hat`;return`Zu gro\xDF: erwartet, dass ${n.origin??"Wert"} ${_}${n.maximum.toString()} ist`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Zu klein: erwartet, dass ${n.origin} ${_}${n.minimum.toString()} ${u.unit} hat`;return`Zu klein: erwartet, dass ${n.origin} ${_}${n.minimum.toString()} ist`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Ung\xFCltiger String: muss mit "${_.prefix}" beginnen`;if(_.format==="ends_with")return`Ung\xFCltiger String: muss mit "${_.suffix}" enden`;if(_.format==="includes")return`Ung\xFCltiger String: muss "${_.includes}" enthalten`;if(_.format==="regex")return`Ung\xFCltiger String: muss dem Muster ${_.pattern} entsprechen`;return`Ung\xFCltig: ${t[_.format]??n.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${n.divisor} sein`;case"unrecognized_keys":return`${n.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${I(n.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${n.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${n.origin}`;default:return"Ung\xFCltige Eingabe"}}};var Hk=h(()=>{y()});function OE(){return{localeError:sR()}}var sR=()=>{let e={string:{unit:"\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},file:{unit:"bytes",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},array:{unit:"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},set:{unit:"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},map:{unit:"\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"}};function r(n){return e[n]??null}let t={regex:"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2",email:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1",date:"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1",time:"ISO \u03CE\u03C1\u03B1",duration:"ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1",ipv4:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4",ipv6:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6",mac:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC",cidrv4:"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4",cidrv6:"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6",base64:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64",base64url:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url",json_string:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON",e164:"\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164",jwt:"JWT",template_literal:"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(typeof n.expected==="string"&&/^[A-Z]/.test(n.expected))return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${n.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${c}`;return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${_}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${c}`}case"invalid_value":if(n.values.length===1)return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${O(n.values[0])}`;return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${n.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${_}${n.maximum.toString()} ${u.unit??"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`;return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${n.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${n.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${_}${n.minimum.toString()} ${u.unit}`;return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${n.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${_.prefix}"`;if(_.format==="ends_with")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${_.suffix}"`;if(_.format==="includes")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${_.includes}"`;if(_.format==="regex")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${_.pattern}`;return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${t[_.format]??n.format}`}case"not_multiple_of":return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${n.divisor}`;case"unrecognized_keys":return`\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${n.keys.length>1?"\u03B1":"\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${n.keys.length>1?"\u03B9\u03AC":"\u03AF"}: ${I(n.keys,", ")}`;case"invalid_key":return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${n.origin}`;case"invalid_union":return"\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2";case"invalid_element":return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${n.origin}`;default:return"\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"}}};var Vk=h(()=>{y()});function di(){return{localeError:pR()}}var pR=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function r(n){return e[n]??null}let t={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;return`Invalid input: expected ${_}, received ${c}`}case"invalid_value":if(n.values.length===1)return`Invalid input: expected ${O(n.values[0])}`;return`Invalid option: expected one of ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Too big: expected ${n.origin??"value"} to have ${_}${n.maximum.toString()} ${u.unit??"elements"}`;return`Too big: expected ${n.origin??"value"} to be ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Too small: expected ${n.origin} to have ${_}${n.minimum.toString()} ${u.unit}`;return`Too small: expected ${n.origin} to be ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Invalid string: must start with "${_.prefix}"`;if(_.format==="ends_with")return`Invalid string: must end with "${_.suffix}"`;if(_.format==="includes")return`Invalid string: must include "${_.includes}"`;if(_.format==="regex")return`Invalid string: must match pattern ${_.pattern}`;return`Invalid ${t[_.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":if(n.options&&Array.isArray(n.options)&&n.options.length>0)return`Invalid discriminator value. Expected ${n.options.map((u)=>`'${u}'`).join(" | ")}`;return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};var LE=h(()=>{y()});function bE(){return{localeError:eh()}}var eh=()=>{let e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function r(n){return e[n]??null}let t={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},i={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Nevalida enigo: atendi\u011Dis instanceof ${n.expected}, ricevi\u011Dis ${c}`;return`Nevalida enigo: atendi\u011Dis ${_}, ricevi\u011Dis ${c}`}case"invalid_value":if(n.values.length===1)return`Nevalida enigo: atendi\u011Dis ${O(n.values[0])}`;return`Nevalida opcio: atendi\u011Dis unu el ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${_}${n.maximum.toString()} ${u.unit??"elementojn"}`;return`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Tro malgranda: atendi\u011Dis ke ${n.origin} havu ${_}${n.minimum.toString()} ${u.unit}`;return`Tro malgranda: atendi\u011Dis ke ${n.origin} estu ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Nevalida karaktraro: devas komenci\u011Di per "${_.prefix}"`;if(_.format==="ends_with")return`Nevalida karaktraro: devas fini\u011Di per "${_.suffix}"`;if(_.format==="includes")return`Nevalida karaktraro: devas inkluzivi "${_.includes}"`;if(_.format==="regex")return`Nevalida karaktraro: devas kongrui kun la modelo ${_.pattern}`;return`Nevalida ${t[_.format]??n.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${n.divisor}`;case"unrecognized_keys":return`Nekonata${n.keys.length>1?"j":""} \u015Dlosilo${n.keys.length>1?"j":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${n.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${n.origin}`;default:return"Nevalida enigo"}}};var Qk=h(()=>{y()});function UE(){return{localeError:rh()}}var rh=()=>{let e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function r(n){return e[n]??null}let t={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN",string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Entrada inv\xE1lida: se esperaba instanceof ${n.expected}, recibido ${c}`;return`Entrada inv\xE1lida: se esperaba ${_}, recibido ${c}`}case"invalid_value":if(n.values.length===1)return`Entrada inv\xE1lida: se esperaba ${O(n.values[0])}`;return`Opci\xF3n inv\xE1lida: se esperaba una de ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin),c=i[n.origin]??n.origin;if(u)return`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${_}${n.maximum.toString()} ${u.unit??"elementos"}`;return`Demasiado grande: se esperaba que ${c??"valor"} fuera ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin),c=i[n.origin]??n.origin;if(u)return`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${_}${n.minimum.toString()} ${u.unit}`;return`Demasiado peque\xF1o: se esperaba que ${c} fuera ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Cadena inv\xE1lida: debe comenzar con "${_.prefix}"`;if(_.format==="ends_with")return`Cadena inv\xE1lida: debe terminar en "${_.suffix}"`;if(_.format==="includes")return`Cadena inv\xE1lida: debe incluir "${_.includes}"`;if(_.format==="regex")return`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${_.pattern}`;return`Inv\xE1lido ${t[_.format]??n.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${n.divisor}`;case"unrecognized_keys":return`Llave${n.keys.length>1?"s":""} desconocida${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${i[n.origin]??n.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${i[n.origin]??n.origin}`;default:return"Entrada inv\xE1lida"}}};var Zk=h(()=>{y()});function mE(){return{localeError:th()}}var th=()=>{let e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function r(n){return e[n]??null}let t={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"},i={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0622\u0631\u0627\u06CC\u0647"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${n.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${c} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${_} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${c} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`}case"invalid_value":if(n.values.length===1)return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${O(n.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`;return`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${I(n.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${n.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${_}${n.maximum.toString()} ${u.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`;return`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${n.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${_}${n.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${n.origin} \u0628\u0627\u06CC\u062F ${_}${n.minimum.toString()} ${u.unit} \u0628\u0627\u0634\u062F`;return`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${n.origin} \u0628\u0627\u06CC\u062F ${_}${n.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`;if(_.format==="ends_with")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`;if(_.format==="includes")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${_.includes}" \u0628\u0627\u0634\u062F`;if(_.format==="regex")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`;return`${t[_.format]??n.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${n.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${n.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${I(n.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${n.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${n.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};var sk=h(()=>{y()});function DE(){return{localeError:nh()}}var nh=()=>{let e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function r(n){return e[n]??null}let t={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Virheellinen tyyppi: odotettiin instanceof ${n.expected}, oli ${c}`;return`Virheellinen tyyppi: odotettiin ${_}, oli ${c}`}case"invalid_value":if(n.values.length===1)return`Virheellinen sy\xF6te: t\xE4ytyy olla ${O(n.values[0])}`;return`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Liian suuri: ${u.subject} t\xE4ytyy olla ${_}${n.maximum.toString()} ${u.unit}`.trim();return`Liian suuri: arvon t\xE4ytyy olla ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Liian pieni: ${u.subject} t\xE4ytyy olla ${_}${n.minimum.toString()} ${u.unit}`.trim();return`Liian pieni: arvon t\xE4ytyy olla ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${_.prefix}"`;if(_.format==="ends_with")return`Virheellinen sy\xF6te: t\xE4ytyy loppua "${_.suffix}"`;if(_.format==="includes")return`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${_.includes}"`;if(_.format==="regex")return`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${_.pattern}`;return`Virheellinen ${t[_.format]??n.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${n.divisor} monikerta`;case"unrecognized_keys":return`${n.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${I(n.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};var pk=h(()=>{y()});function RE(){return{localeError:ih()}}var ih=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function r(n){return e[n]??null}let t={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},i={string:"cha\xEEne",number:"nombre",int:"entier",boolean:"bool\xE9en",bigint:"grand entier",symbol:"symbole",undefined:"ind\xE9fini",null:"null",never:"jamais",void:"vide",date:"date",array:"tableau",object:"objet",tuple:"tuple",record:"enregistrement",map:"carte",set:"ensemble",file:"fichier",nonoptional:"non-optionnel",nan:"NaN",function:"fonction"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Entr\xE9e invalide : instanceof ${n.expected} attendu, ${c} re\xE7u`;return`Entr\xE9e invalide : ${_} attendu, ${c} re\xE7u`}case"invalid_value":if(n.values.length===1)return`Entr\xE9e invalide : ${O(n.values[0])} attendu`;return`Option invalide : une valeur parmi ${I(n.values,"|")} attendue`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Trop grand : ${i[n.origin]??"valeur"} doit ${u.verb} ${_}${n.maximum.toString()} ${u.unit??"\xE9l\xE9ment(s)"}`;return`Trop grand : ${i[n.origin]??"valeur"} doit \xEAtre ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Trop petit : ${i[n.origin]??"valeur"} doit ${u.verb} ${_}${n.minimum.toString()} ${u.unit}`;return`Trop petit : ${i[n.origin]??"valeur"} doit \xEAtre ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Cha\xEEne invalide : doit commencer par "${_.prefix}"`;if(_.format==="ends_with")return`Cha\xEEne invalide : doit se terminer par "${_.suffix}"`;if(_.format==="includes")return`Cha\xEEne invalide : doit inclure "${_.includes}"`;if(_.format==="regex")return`Cha\xEEne invalide : doit correspondre au mod\xE8le ${_.pattern}`;return`${t[_.format]??n.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${n.divisor}`;case"unrecognized_keys":return`Cl\xE9${n.keys.length>1?"s":""} non reconnue${n.keys.length>1?"s":""} : ${I(n.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${n.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${n.origin}`;default:return"Entr\xE9e invalide"}}};var eI=h(()=>{y()});function hE(){return{localeError:_h()}}var _h=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function r(n){return e[n]??null}let t={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Entr\xE9e invalide : attendu instanceof ${n.expected}, re\xE7u ${c}`;return`Entr\xE9e invalide : attendu ${_}, re\xE7u ${c}`}case"invalid_value":if(n.values.length===1)return`Entr\xE9e invalide : attendu ${O(n.values[0])}`;return`Option invalide : attendu l'une des valeurs suivantes ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"\u2264":"<",u=r(n.origin);if(u)return`Trop grand : attendu que ${n.origin??"la valeur"} ait ${_}${n.maximum.toString()} ${u.unit}`;return`Trop grand : attendu que ${n.origin??"la valeur"} soit ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?"\u2265":">",u=r(n.origin);if(u)return`Trop petit : attendu que ${n.origin} ait ${_}${n.minimum.toString()} ${u.unit}`;return`Trop petit : attendu que ${n.origin} soit ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Cha\xEEne invalide : doit commencer par "${_.prefix}"`;if(_.format==="ends_with")return`Cha\xEEne invalide : doit se terminer par "${_.suffix}"`;if(_.format==="includes")return`Cha\xEEne invalide : doit inclure "${_.includes}"`;if(_.format==="regex")return`Cha\xEEne invalide : doit correspondre au motif ${_.pattern}`;return`${t[_.format]??n.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${n.divisor}`;case"unrecognized_keys":return`Cl\xE9${n.keys.length>1?"s":""} non reconnue${n.keys.length>1?"s":""} : ${I(n.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${n.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${n.origin}`;default:return"Entr\xE9e invalide"}}};var rI=h(()=>{y()});function wE(){return{localeError:uh()}}var uh=()=>{let e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},r={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},t=(o)=>o?e[o]:void 0,i=(o)=>{let a=t(o);if(a)return a.label;return o??e.unknown.label},n=(o)=>`\u05D4${i(o)}`,_=(o)=>{return(t(o)?.gender??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},u=(o)=>{if(!o)return null;return r[o]??null},c={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}},d={nan:"NaN"};return(o)=>{switch(o.code){case"invalid_type":{let a=o.expected,g=d[a??""]??i(a),E=L(o.input),l=d[E]??e[E]?.label??E;if(/^[A-Z]/.test(o.expected))return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${o.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${l}`;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${g}, \u05D4\u05EA\u05E7\u05D1\u05DC ${l}`}case"invalid_value":{if(o.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${O(o.values[0])}`;let a=o.values.map((l)=>O(l));if(o.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${a[0]} \u05D0\u05D5 ${a[1]}`;let g=a[a.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${a.slice(0,-1).join(", ")} \u05D0\u05D5 ${g}`}case"too_big":{let a=u(o.origin),g=n(o.origin??"value");if(o.origin==="string")return`${a?.longLabel??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${g} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${o.maximum.toString()} ${a?.unit??""} ${o.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(o.origin==="number"){let T=o.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${o.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${o.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${g} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${T}`}if(o.origin==="array"||o.origin==="set"){let T=o.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",f=o.inclusive?`${o.maximum} ${a?.unit??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${o.maximum} ${a?.unit??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${g} ${T} \u05DC\u05D4\u05DB\u05D9\u05DC ${f}`.trim()}let E=o.inclusive?"<=":"<",l=_(o.origin??"value");if(a?.unit)return`${a.longLabel} \u05DE\u05D3\u05D9: ${g} ${l} ${E}${o.maximum.toString()} ${a.unit}`;return`${a?.longLabel??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${g} ${l} ${E}${o.maximum.toString()}`}case"too_small":{let a=u(o.origin),g=n(o.origin??"value");if(o.origin==="string")return`${a?.shortLabel??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${g} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${o.minimum.toString()} ${a?.unit??""} ${o.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(o.origin==="number"){let T=o.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${o.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${o.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${g} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${T}`}if(o.origin==="array"||o.origin==="set"){let T=o.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(o.minimum===1&&o.inclusive){let v=o.origin==="set"?"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3":"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3";return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${g} ${T} \u05DC\u05D4\u05DB\u05D9\u05DC ${v}`}let f=o.inclusive?`${o.minimum} ${a?.unit??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${o.minimum} ${a?.unit??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${g} ${T} \u05DC\u05D4\u05DB\u05D9\u05DC ${f}`.trim()}let E=o.inclusive?">=":">",l=_(o.origin??"value");if(a?.unit)return`${a.shortLabel} \u05DE\u05D3\u05D9: ${g} ${l} ${E}${o.minimum.toString()} ${a.unit}`;return`${a?.shortLabel??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${g} ${l} ${E}${o.minimum.toString()}`}case"invalid_format":{let a=o;if(a.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${a.prefix}"`;if(a.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${a.suffix}"`;if(a.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${a.includes}"`;if(a.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${a.pattern}`;let g=c[a.format],E=g?.label??a.format,T=(g?.gender??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${E} \u05DC\u05D0 ${T}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${o.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${o.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${o.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${I(o.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${n(o.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};var tI=h(()=>{y()});function AE(){return{localeError:ch()}}var ch=()=>{let e={string:{unit:"znakova",verb:"imati"},file:{unit:"bajtova",verb:"imati"},array:{unit:"stavki",verb:"imati"},set:{unit:"stavki",verb:"imati"}};function r(n){return e[n]??null}let t={regex:"unos",email:"email adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum i vrijeme",date:"ISO datum",time:"ISO vrijeme",duration:"ISO trajanje",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"IPv4 raspon",cidrv6:"IPv6 raspon",base64:"base64 kodirani tekst",base64url:"base64url kodirani tekst",json_string:"JSON tekst",e164:"E.164 broj",jwt:"JWT",template_literal:"unos"},i={nan:"NaN",string:"tekst",number:"broj",boolean:"boolean",array:"niz",object:"objekt",set:"skup",file:"datoteka",date:"datum",bigint:"bigint",symbol:"simbol",undefined:"undefined",null:"null",function:"funkcija",map:"mapa"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Neispravan unos: o\u010Dekuje se instanceof ${n.expected}, a primljeno je ${c}`;return`Neispravan unos: o\u010Dekuje se ${_}, a primljeno je ${c}`}case"invalid_value":if(n.values.length===1)return`Neispravna vrijednost: o\u010Dekivano ${O(n.values[0])}`;return`Neispravna opcija: o\u010Dekivano jedno od ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin),c=i[n.origin]??n.origin;if(u)return`Preveliko: o\u010Dekivano da ${c??"vrijednost"} ima ${_}${n.maximum.toString()} ${u.unit??"elemenata"}`;return`Preveliko: o\u010Dekivano da ${c??"vrijednost"} bude ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin),c=i[n.origin]??n.origin;if(u)return`Premalo: o\u010Dekivano da ${c} ima ${_}${n.minimum.toString()} ${u.unit}`;return`Premalo: o\u010Dekivano da ${c} bude ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Neispravan tekst: mora zapo\u010Dinjati s "${_.prefix}"`;if(_.format==="ends_with")return`Neispravan tekst: mora zavr\u0161avati s "${_.suffix}"`;if(_.format==="includes")return`Neispravan tekst: mora sadr\u017Eavati "${_.includes}"`;if(_.format==="regex")return`Neispravan tekst: mora odgovarati uzorku ${_.pattern}`;return`Neispravna ${t[_.format]??n.format}`}case"not_multiple_of":return`Neispravan broj: mora biti vi\u0161ekratnik od ${n.divisor}`;case"unrecognized_keys":return`Neprepoznat${n.keys.length>1?"i klju\u010Devi":" klju\u010D"}: ${I(n.keys,", ")}`;case"invalid_key":return`Neispravan klju\u010D u ${i[n.origin]??n.origin}`;case"invalid_union":return"Neispravan unos";case"invalid_element":return`Neispravna vrijednost u ${i[n.origin]??n.origin}`;default:return"Neispravan unos"}}};var nI=h(()=>{y()});function XE(){return{localeError:dh()}}var dh=()=>{let e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function r(n){return e[n]??null}let t={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"},i={nan:"NaN",number:"sz\xE1m",array:"t\xF6mb"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${n.expected}, a kapott \xE9rt\xE9k ${c}`;return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${_}, a kapott \xE9rt\xE9k ${c}`}case"invalid_value":if(n.values.length===1)return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${O(n.values[0])}`;return`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`T\xFAl nagy: ${n.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${_}${n.maximum.toString()} ${u.unit??"elem"}`;return`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${n.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${n.origin} m\xE9rete t\xFAl kicsi ${_}${n.minimum.toString()} ${u.unit}`;return`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${n.origin} t\xFAl kicsi ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\xC9rv\xE9nytelen string: "${_.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`;if(_.format==="ends_with")return`\xC9rv\xE9nytelen string: "${_.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`;if(_.format==="includes")return`\xC9rv\xE9nytelen string: "${_.includes}" \xE9rt\xE9ket kell tartalmaznia`;if(_.format==="regex")return`\xC9rv\xE9nytelen string: ${_.pattern} mint\xE1nak kell megfelelnie`;return`\xC9rv\xE9nytelen ${t[_.format]??n.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${n.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${n.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${n.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};var iI=h(()=>{y()});function _I(e,r,t){return Math.abs(e)===1?r:t}function on(e){if(!e)return"";let r=["\u0561","\u0565","\u0568","\u056B","\u0578","\u0578\u0582","\u0585"],t=e[e.length-1];return e+(r.includes(t)?"\u0576":"\u0568")}function yE(){return{localeError:oh()}}var oh=()=>{let e={string:{unit:{one:"\u0576\u0577\u0561\u0576",many:"\u0576\u0577\u0561\u0576\u0576\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},file:{unit:{one:"\u0562\u0561\u0575\u0569",many:"\u0562\u0561\u0575\u0569\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},array:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},set:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"}};function r(n){return e[n]??null}let t={regex:"\u0574\u0578\u0582\u057F\u0584",email:"\u0567\u056C. \u0570\u0561\u057D\u0581\u0565",url:"URL",emoji:"\u0567\u0574\u0578\u057B\u056B",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574",date:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E",time:"ISO \u056A\u0561\u0574",duration:"ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576",ipv4:"IPv4 \u0570\u0561\u057D\u0581\u0565",ipv6:"IPv6 \u0570\u0561\u057D\u0581\u0565",cidrv4:"IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",cidrv6:"IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",base64:"base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",base64url:"base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",json_string:"JSON \u057F\u0578\u0572",e164:"E.164 \u0570\u0561\u0574\u0561\u0580",jwt:"JWT",template_literal:"\u0574\u0578\u0582\u057F\u0584"},i={nan:"NaN",number:"\u0569\u056B\u057E",array:"\u0566\u0561\u0576\u0563\u057E\u0561\u056E"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${n.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${c}`;return`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${_}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${c}`}case"invalid_value":if(n.values.length===1)return`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${O(n.values[1])}`;return`\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u){let c=Number(n.maximum),d=_I(c,u.unit.one,u.unit.many);return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${on(n.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${_}${n.maximum.toString()} ${d}`}return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${on(n.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u){let c=Number(n.minimum),d=_I(c,u.unit.one,u.unit.many);return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${on(n.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${_}${n.minimum.toString()} ${d}`}return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${on(n.origin)} \u056C\u056B\u0576\u056B ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${_.prefix}"-\u0578\u057E`;if(_.format==="ends_with")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${_.suffix}"-\u0578\u057E`;if(_.format==="includes")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${_.includes}"`;if(_.format==="regex")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${_.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`;return`\u054D\u056D\u0561\u056C ${t[_.format]??n.format}`}case"not_multiple_of":return`\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${n.divisor}-\u056B`;case"unrecognized_keys":return`\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${n.keys.length>1?"\u0576\u0565\u0580":""}. ${I(n.keys,", ")}`;case"invalid_key":return`\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${on(n.origin)}-\u0578\u0582\u0574`;case"invalid_union":return"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574";case"invalid_element":return`\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${on(n.origin)}-\u0578\u0582\u0574`;default:return"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"}}};var uI=h(()=>{y()});function xE(){return{localeError:gh()}}var gh=()=>{let e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function r(n){return e[n]??null}let t={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Input tidak valid: diharapkan instanceof ${n.expected}, diterima ${c}`;return`Input tidak valid: diharapkan ${_}, diterima ${c}`}case"invalid_value":if(n.values.length===1)return`Input tidak valid: diharapkan ${O(n.values[0])}`;return`Pilihan tidak valid: diharapkan salah satu dari ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Terlalu besar: diharapkan ${n.origin??"value"} memiliki ${_}${n.maximum.toString()} ${u.unit??"elemen"}`;return`Terlalu besar: diharapkan ${n.origin??"value"} menjadi ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Terlalu kecil: diharapkan ${n.origin} memiliki ${_}${n.minimum.toString()} ${u.unit}`;return`Terlalu kecil: diharapkan ${n.origin} menjadi ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`String tidak valid: harus dimulai dengan "${_.prefix}"`;if(_.format==="ends_with")return`String tidak valid: harus berakhir dengan "${_.suffix}"`;if(_.format==="includes")return`String tidak valid: harus menyertakan "${_.includes}"`;if(_.format==="regex")return`String tidak valid: harus sesuai pola ${_.pattern}`;return`${t[_.format]??n.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${n.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${n.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${n.origin}`;default:return"Input tidak valid"}}};var cI=h(()=>{y()});function jE(){return{localeError:lh()}}var lh=()=>{let e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function r(n){return e[n]??null}let t={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"},i={nan:"NaN",number:"n\xFAmer",array:"fylki"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Rangt gildi: \xDE\xFA sl\xF3st inn ${c} \xFEar sem \xE1 a\xF0 vera instanceof ${n.expected}`;return`Rangt gildi: \xDE\xFA sl\xF3st inn ${c} \xFEar sem \xE1 a\xF0 vera ${_}`}case"invalid_value":if(n.values.length===1)return`Rangt gildi: gert r\xE1\xF0 fyrir ${O(n.values[0])}`;return`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${n.origin??"gildi"} hafi ${_}${n.maximum.toString()} ${u.unit??"hluti"}`;return`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${n.origin??"gildi"} s\xE9 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${n.origin} hafi ${_}${n.minimum.toString()} ${u.unit}`;return`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${n.origin} s\xE9 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${_.prefix}"`;if(_.format==="ends_with")return`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${_.suffix}"`;if(_.format==="includes")return`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${_.includes}"`;if(_.format==="regex")return`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${_.pattern}`;return`Rangt ${t[_.format]??n.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${n.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${n.keys.length>1?"ir lyklar":"ur lykill"}: ${I(n.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${n.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${n.origin}`;default:return"Rangt gildi"}}};var dI=h(()=>{y()});function PE(){return{localeError:Eh()}}var Eh=()=>{let e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function r(n){return e[n]??null}let t={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"numero",array:"vettore"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Input non valido: atteso instanceof ${n.expected}, ricevuto ${c}`;return`Input non valido: atteso ${_}, ricevuto ${c}`}case"invalid_value":if(n.values.length===1)return`Input non valido: atteso ${O(n.values[0])}`;return`Opzione non valida: atteso uno tra ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Troppo grande: ${n.origin??"valore"} deve avere ${_}${n.maximum.toString()} ${u.unit??"elementi"}`;return`Troppo grande: ${n.origin??"valore"} deve essere ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Troppo piccolo: ${n.origin} deve avere ${_}${n.minimum.toString()} ${u.unit}`;return`Troppo piccolo: ${n.origin} deve essere ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Stringa non valida: deve iniziare con "${_.prefix}"`;if(_.format==="ends_with")return`Stringa non valida: deve terminare con "${_.suffix}"`;if(_.format==="includes")return`Stringa non valida: deve includere "${_.includes}"`;if(_.format==="regex")return`Stringa non valida: deve corrispondere al pattern ${_.pattern}`;return`Input non valido: ${t[_.format]??n.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${n.divisor}`;case"unrecognized_keys":return`Chiav${n.keys.length>1?"i":"e"} non riconosciut${n.keys.length>1?"e":"a"}: ${I(n.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${n.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${n.origin}`;default:return"Input non valido"}}};var oI=h(()=>{y()});function FE(){return{localeError:ah()}}var ah=()=>{let e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function r(n){return e[n]??null}let t={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"},i={nan:"NaN",number:"\u6570\u5024",array:"\u914D\u5217"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u7121\u52B9\u306A\u5165\u529B: instanceof ${n.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${c}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;return`\u7121\u52B9\u306A\u5165\u529B: ${_}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${c}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`}case"invalid_value":if(n.values.length===1)return`\u7121\u52B9\u306A\u5165\u529B: ${O(n.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`;return`\u7121\u52B9\u306A\u9078\u629E: ${I(n.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let _=n.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",u=r(n.origin);if(u)return`\u5927\u304D\u3059\u304E\u308B\u5024: ${n.origin??"\u5024"}\u306F${n.maximum.toString()}${u.unit??"\u8981\u7D20"}${_}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;return`\u5927\u304D\u3059\u304E\u308B\u5024: ${n.origin??"\u5024"}\u306F${n.maximum.toString()}${_}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let _=n.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",u=r(n.origin);if(u)return`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${n.origin}\u306F${n.minimum.toString()}${u.unit}${_}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;return`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${n.origin}\u306F${n.minimum.toString()}${_}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;if(_.format==="ends_with")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;if(_.format==="includes")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;if(_.format==="regex")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;return`\u7121\u52B9\u306A${t[_.format]??n.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${n.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${n.keys.length>1?"\u7FA4":""}: ${I(n.keys,"\u3001")}`;case"invalid_key":return`${n.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${n.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};var gI=h(()=>{y()});function KE(){return{localeError:Th()}}var Th=()=>{let e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function r(n){return e[n]??null}let t={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",json_string:"JSON \u10D5\u10D4\u10DA\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"},i={nan:"NaN",number:"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8",string:"\u10D5\u10D4\u10DA\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0",array:"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${n.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${c}`;return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${_}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${c}`}case"invalid_value":if(n.values.length===1)return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${O(n.values[0])}`;return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${I(n.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${n.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${u.verb} ${_}${n.maximum.toString()} ${u.unit}`;return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${n.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${n.origin} ${u.verb} ${_}${n.minimum.toString()} ${u.unit}`;return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${n.origin} \u10D8\u10E7\u10DD\u10E1 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_.prefix}"-\u10D8\u10D7`;if(_.format==="ends_with")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_.suffix}"-\u10D8\u10D7`;if(_.format==="includes")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${_.includes}"-\u10E1`;if(_.format==="regex")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_.pattern}`;return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${n.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${n.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${I(n.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${n.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${n.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};var lI=h(()=>{y()});function oi(){return{localeError:fh()}}var fh=()=>{let e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function r(n){return e[n]??null}let t={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"},i={nan:"NaN",number:"\u179B\u17C1\u1781",array:"\u17A2\u17B6\u179A\u17C1 (Array)",null:"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${n.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${c}`;return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${_} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${c}`}case"invalid_value":if(n.values.length===1)return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${O(n.values[0])}`;return`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${n.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${_} ${n.maximum.toString()} ${u.unit??"\u1792\u17B6\u178F\u17BB"}`;return`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${n.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${_} ${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${n.origin} ${_} ${n.minimum.toString()} ${u.unit}`;return`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${n.origin} ${_} ${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${_.prefix}"`;if(_.format==="ends_with")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${_.suffix}"`;if(_.format==="includes")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${_.includes}"`;if(_.format==="regex")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_.pattern}`;return`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${n.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${I(n.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${n.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${n.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};var WE=h(()=>{y()});function JE(){return oi()}var EI=h(()=>{WE()});function zE(){return{localeError:$h()}}var $h=()=>{let e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function r(n){return e[n]??null}let t={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${n.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${c}\uC785\uB2C8\uB2E4`;return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${_}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${c}\uC785\uB2C8\uB2E4`}case"invalid_value":if(n.values.length===1)return`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${O(n.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`;return`\uC798\uBABB\uB41C \uC635\uC158: ${I(n.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let _=n.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",u=_==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=r(n.origin),d=c?.unit??"\uC694\uC18C";if(c)return`${n.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${n.maximum.toString()}${d} ${_}${u}`;return`${n.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${n.maximum.toString()} ${_}${u}`}case"too_small":{let _=n.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",u=_==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=r(n.origin),d=c?.unit??"\uC694\uC18C";if(c)return`${n.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${n.minimum.toString()}${d} ${_}${u}`;return`${n.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${n.minimum.toString()} ${_}${u}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`;if(_.format==="ends_with")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`;if(_.format==="includes")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`;if(_.format==="regex")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`;return`\uC798\uBABB\uB41C ${t[_.format]??n.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${n.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${I(n.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${n.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${n.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};var aI=h(()=>{y()});function TI(e){let r=Math.abs(e),t=r%10,i=r%100;if(i>=11&&i<=19||t===0)return"many";if(t===1)return"one";return"few"}function ME(){return{localeError:vh()}}var gi=(e)=>{return e.charAt(0).toUpperCase()+e.slice(1)},vh=()=>{let e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function r(n,_,u,c){let d=e[n]??null;if(d===null)return d;return{unit:d.unit[_],verb:d.verb[c][u?"inclusive":"notInclusive"]}}let t={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"},i={nan:"NaN",number:"skai\u010Dius",bigint:"sveikasis skai\u010Dius",string:"eilut\u0117",boolean:"login\u0117 reik\u0161m\u0117",undefined:"neapibr\u0117\u017Eta reik\u0161m\u0117",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulin\u0117 reik\u0161m\u0117"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Gautas tipas ${c}, o tik\u0117tasi - instanceof ${n.expected}`;return`Gautas tipas ${c}, o tik\u0117tasi - ${_}`}case"invalid_value":if(n.values.length===1)return`Privalo b\u016Bti ${O(n.values[0])}`;return`Privalo b\u016Bti vienas i\u0161 ${I(n.values,"|")} pasirinkim\u0173`;case"too_big":{let _=i[n.origin]??n.origin,u=r(n.origin,TI(Number(n.maximum)),n.inclusive??!1,"smaller");if(u?.verb)return`${gi(_??n.origin??"reik\u0161m\u0117")} ${u.verb} ${n.maximum.toString()} ${u.unit??"element\u0173"}`;let c=n.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${gi(_??n.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${n.maximum.toString()} ${u?.unit}`}case"too_small":{let _=i[n.origin]??n.origin,u=r(n.origin,TI(Number(n.minimum)),n.inclusive??!1,"bigger");if(u?.verb)return`${gi(_??n.origin??"reik\u0161m\u0117")} ${u.verb} ${n.minimum.toString()} ${u.unit??"element\u0173"}`;let c=n.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${gi(_??n.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${n.minimum.toString()} ${u?.unit}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Eilut\u0117 privalo prasid\u0117ti "${_.prefix}"`;if(_.format==="ends_with")return`Eilut\u0117 privalo pasibaigti "${_.suffix}"`;if(_.format==="includes")return`Eilut\u0117 privalo \u012Ftraukti "${_.includes}"`;if(_.format==="regex")return`Eilut\u0117 privalo atitikti ${_.pattern}`;return`Neteisingas ${t[_.format]??n.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${n.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${n.keys.length>1?"i":"as"} rakt${n.keys.length>1?"ai":"as"}: ${I(n.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{let _=i[n.origin]??n.origin;return`${gi(_??n.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};var fI=h(()=>{y()});function CE(){return{localeError:Nh()}}var Nh=()=>{let e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function r(n){return e[n]??null}let t={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"},i={nan:"NaN",number:"\u0431\u0440\u043E\u0458",array:"\u043D\u0438\u0437\u0430"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${n.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${c}`;return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${_}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${c}`}case"invalid_value":if(n.values.length===1)return`Invalid input: expected ${O(n.values[0])}`;return`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${n.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${_}${n.maximum.toString()} ${u.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`;return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${n.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${n.origin} \u0434\u0430 \u0438\u043C\u0430 ${_}${n.minimum.toString()} ${u.unit}`;return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${n.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${_.prefix}"`;if(_.format==="ends_with")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${_.suffix}"`;if(_.format==="includes")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${_.includes}"`;if(_.format==="regex")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_.pattern}`;return`Invalid ${t[_.format]??n.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${n.divisor}`;case"unrecognized_keys":return`${n.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${I(n.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${n.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${n.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};var $I=h(()=>{y()});function qE(){return{localeError:kh()}}var kh=()=>{let e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function r(n){return e[n]??null}let t={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"nombor"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Input tidak sah: dijangka instanceof ${n.expected}, diterima ${c}`;return`Input tidak sah: dijangka ${_}, diterima ${c}`}case"invalid_value":if(n.values.length===1)return`Input tidak sah: dijangka ${O(n.values[0])}`;return`Pilihan tidak sah: dijangka salah satu daripada ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Terlalu besar: dijangka ${n.origin??"nilai"} ${u.verb} ${_}${n.maximum.toString()} ${u.unit??"elemen"}`;return`Terlalu besar: dijangka ${n.origin??"nilai"} adalah ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Terlalu kecil: dijangka ${n.origin} ${u.verb} ${_}${n.minimum.toString()} ${u.unit}`;return`Terlalu kecil: dijangka ${n.origin} adalah ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`String tidak sah: mesti bermula dengan "${_.prefix}"`;if(_.format==="ends_with")return`String tidak sah: mesti berakhir dengan "${_.suffix}"`;if(_.format==="includes")return`String tidak sah: mesti mengandungi "${_.includes}"`;if(_.format==="regex")return`String tidak sah: mesti sepadan dengan corak ${_.pattern}`;return`${t[_.format]??n.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${n.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${I(n.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${n.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${n.origin}`;default:return"Input tidak sah"}}};var vI=h(()=>{y()});function GE(){return{localeError:Ih()}}var Ih=()=>{let e={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function r(n){return e[n]??null}let t={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},i={nan:"NaN",number:"getal"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Ongeldige invoer: verwacht instanceof ${n.expected}, ontving ${c}`;return`Ongeldige invoer: verwacht ${_}, ontving ${c}`}case"invalid_value":if(n.values.length===1)return`Ongeldige invoer: verwacht ${O(n.values[0])}`;return`Ongeldige optie: verwacht \xE9\xE9n van ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin),c=n.origin==="date"?"laat":n.origin==="string"?"lang":"groot";if(u)return`Te ${c}: verwacht dat ${n.origin??"waarde"} ${_}${n.maximum.toString()} ${u.unit??"elementen"} ${u.verb}`;return`Te ${c}: verwacht dat ${n.origin??"waarde"} ${_}${n.maximum.toString()} is`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin),c=n.origin==="date"?"vroeg":n.origin==="string"?"kort":"klein";if(u)return`Te ${c}: verwacht dat ${n.origin} ${_}${n.minimum.toString()} ${u.unit} ${u.verb}`;return`Te ${c}: verwacht dat ${n.origin} ${_}${n.minimum.toString()} is`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Ongeldige tekst: moet met "${_.prefix}" beginnen`;if(_.format==="ends_with")return`Ongeldige tekst: moet op "${_.suffix}" eindigen`;if(_.format==="includes")return`Ongeldige tekst: moet "${_.includes}" bevatten`;if(_.format==="regex")return`Ongeldige tekst: moet overeenkomen met patroon ${_.pattern}`;return`Ongeldig: ${t[_.format]??n.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${n.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${n.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${n.origin}`;default:return"Ongeldige invoer"}}};var NI=h(()=>{y()});function YE(){return{localeError:Sh()}}var Sh=()=>{let e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function r(n){return e[n]??null}let t={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"tall",array:"liste"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Ugyldig input: forventet instanceof ${n.expected}, fikk ${c}`;return`Ugyldig input: forventet ${_}, fikk ${c}`}case"invalid_value":if(n.values.length===1)return`Ugyldig verdi: forventet ${O(n.values[0])}`;return`Ugyldig valg: forventet en av ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`For stor(t): forventet ${n.origin??"value"} til \xE5 ha ${_}${n.maximum.toString()} ${u.unit??"elementer"}`;return`For stor(t): forventet ${n.origin??"value"} til \xE5 ha ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`For lite(n): forventet ${n.origin} til \xE5 ha ${_}${n.minimum.toString()} ${u.unit}`;return`For lite(n): forventet ${n.origin} til \xE5 ha ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Ugyldig streng: m\xE5 starte med "${_.prefix}"`;if(_.format==="ends_with")return`Ugyldig streng: m\xE5 ende med "${_.suffix}"`;if(_.format==="includes")return`Ugyldig streng: m\xE5 inneholde "${_.includes}"`;if(_.format==="regex")return`Ugyldig streng: m\xE5 matche m\xF8nsteret ${_.pattern}`;return`Ugyldig ${t[_.format]??n.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${n.divisor}`;case"unrecognized_keys":return`${n.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${I(n.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${n.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${n.origin}`;default:return"Ugyldig input"}}};var kI=h(()=>{y()});function BE(){return{localeError:Oh()}}var Oh=()=>{let e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function r(n){return e[n]??null}let t={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"},i={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`F\xE2sit giren: umulan instanceof ${n.expected}, al\u0131nan ${c}`;return`F\xE2sit giren: umulan ${_}, al\u0131nan ${c}`}case"invalid_value":if(n.values.length===1)return`F\xE2sit giren: umulan ${O(n.values[0])}`;return`F\xE2sit tercih: m\xFBteberler ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Fazla b\xFCy\xFCk: ${n.origin??"value"}, ${_}${n.maximum.toString()} ${u.unit??"elements"} sahip olmal\u0131yd\u0131.`;return`Fazla b\xFCy\xFCk: ${n.origin??"value"}, ${_}${n.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Fazla k\xFC\xE7\xFCk: ${n.origin}, ${_}${n.minimum.toString()} ${u.unit} sahip olmal\u0131yd\u0131.`;return`Fazla k\xFC\xE7\xFCk: ${n.origin}, ${_}${n.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`F\xE2sit metin: "${_.prefix}" ile ba\u015Flamal\u0131.`;if(_.format==="ends_with")return`F\xE2sit metin: "${_.suffix}" ile bitmeli.`;if(_.format==="includes")return`F\xE2sit metin: "${_.includes}" ihtiv\xE2 etmeli.`;if(_.format==="regex")return`F\xE2sit metin: ${_.pattern} nak\u015F\u0131na uymal\u0131.`;return`F\xE2sit ${t[_.format]??n.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${n.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`${n.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${n.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};var II=h(()=>{y()});function HE(){return{localeError:Lh()}}var Lh=()=>{let e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function r(n){return e[n]??null}let t={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"},i={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0627\u0631\u06D0"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${n.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${c} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${_} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${c} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`}case"invalid_value":if(n.values.length===1)return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${O(n.values[0])} \u0648\u0627\u06CC`;return`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${I(n.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${n.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${_}${n.maximum.toString()} ${u.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`;return`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${n.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${_}${n.maximum.toString()} \u0648\u064A`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${n.origin} \u0628\u0627\u06CC\u062F ${_}${n.minimum.toString()} ${u.unit} \u0648\u0644\u0631\u064A`;return`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${n.origin} \u0628\u0627\u06CC\u062F ${_}${n.minimum.toString()} \u0648\u064A`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`;if(_.format==="ends_with")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`;if(_.format==="includes")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${_.includes}" \u0648\u0644\u0631\u064A`;if(_.format==="regex")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`;return`${t[_.format]??n.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${n.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${n.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${I(n.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${n.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${n.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};var SI=h(()=>{y()});function VE(){return{localeError:bh()}}var bh=()=>{let e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function r(n){return e[n]??null}let t={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"},i={nan:"NaN",number:"liczba",array:"tablica"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${n.expected}, otrzymano ${c}`;return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${_}, otrzymano ${c}`}case"invalid_value":if(n.values.length===1)return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${O(n.values[0])}`;return`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${n.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${_}${n.maximum.toString()} ${u.unit??"element\xF3w"}`;return`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${n.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${n.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${_}${n.minimum.toString()} ${u.unit??"element\xF3w"}`;return`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${n.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${_.prefix}"`;if(_.format==="ends_with")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${_.suffix}"`;if(_.format==="includes")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${_.includes}"`;if(_.format==="regex")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${_.pattern}`;return`Nieprawid\u0142ow(y/a/e) ${t[_.format]??n.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${n.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${n.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${n.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};var OI=h(()=>{y()});function QE(){return{localeError:Uh()}}var Uh=()=>{let e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function r(n){return e[n]??null}let t={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN",number:"n\xFAmero",null:"nulo"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Tipo inv\xE1lido: esperado instanceof ${n.expected}, recebido ${c}`;return`Tipo inv\xE1lido: esperado ${_}, recebido ${c}`}case"invalid_value":if(n.values.length===1)return`Entrada inv\xE1lida: esperado ${O(n.values[0])}`;return`Op\xE7\xE3o inv\xE1lida: esperada uma das ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Muito grande: esperado que ${n.origin??"valor"} tivesse ${_}${n.maximum.toString()} ${u.unit??"elementos"}`;return`Muito grande: esperado que ${n.origin??"valor"} fosse ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Muito pequeno: esperado que ${n.origin} tivesse ${_}${n.minimum.toString()} ${u.unit}`;return`Muito pequeno: esperado que ${n.origin} fosse ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Texto inv\xE1lido: deve come\xE7ar com "${_.prefix}"`;if(_.format==="ends_with")return`Texto inv\xE1lido: deve terminar com "${_.suffix}"`;if(_.format==="includes")return`Texto inv\xE1lido: deve incluir "${_.includes}"`;if(_.format==="regex")return`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${_.pattern}`;return`${t[_.format]??n.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${n.divisor}`;case"unrecognized_keys":return`Chave${n.keys.length>1?"s":""} desconhecida${n.keys.length>1?"s":""}: ${I(n.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${n.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${n.origin}`;default:return"Campo inv\xE1lido"}}};var LI=h(()=>{y()});function ZE(){return{localeError:mh()}}var mh=()=>{let e={string:{unit:"caractere",verb:"s\u0103 aib\u0103"},file:{unit:"octe\u021Bi",verb:"s\u0103 aib\u0103"},array:{unit:"elemente",verb:"s\u0103 aib\u0103"},set:{unit:"elemente",verb:"s\u0103 aib\u0103"},map:{unit:"intr\u0103ri",verb:"s\u0103 aib\u0103"}};function r(n){return e[n]??null}let t={regex:"intrare",email:"adres\u0103 de email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"dat\u0103 \u0219i or\u0103 ISO",date:"dat\u0103 ISO",time:"or\u0103 ISO",duration:"durat\u0103 ISO",ipv4:"adres\u0103 IPv4",ipv6:"adres\u0103 IPv6",mac:"adres\u0103 MAC",cidrv4:"interval IPv4",cidrv6:"interval IPv6",base64:"\u0219ir codat base64",base64url:"\u0219ir codat base64url",json_string:"\u0219ir JSON",e164:"num\u0103r E.164",jwt:"JWT",template_literal:"intrare"},i={nan:"NaN",string:"\u0219ir",number:"num\u0103r",boolean:"boolean",function:"func\u021Bie",array:"matrice",object:"obiect",undefined:"nedefinit",symbol:"simbol",bigint:"num\u0103r mare",void:"void",never:"never",map:"hart\u0103",set:"set"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;return`Intrare invalid\u0103: a\u0219teptat ${_}, primit ${c}`}case"invalid_value":if(n.values.length===1)return`Intrare invalid\u0103: a\u0219teptat ${O(n.values[0])}`;return`Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Prea mare: a\u0219teptat ca ${n.origin??"valoarea"} ${u.verb} ${_}${n.maximum.toString()} ${u.unit??"elemente"}`;return`Prea mare: a\u0219teptat ca ${n.origin??"valoarea"} s\u0103 fie ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Prea mic: a\u0219teptat ca ${n.origin} ${u.verb} ${_}${n.minimum.toString()} ${u.unit}`;return`Prea mic: a\u0219teptat ca ${n.origin} s\u0103 fie ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${_.prefix}"`;if(_.format==="ends_with")return`\u0218ir invalid: trebuie s\u0103 se termine cu "${_.suffix}"`;if(_.format==="includes")return`\u0218ir invalid: trebuie s\u0103 includ\u0103 "${_.includes}"`;if(_.format==="regex")return`\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${_.pattern}`;return`Format invalid: ${t[_.format]??n.format}`}case"not_multiple_of":return`Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${n.divisor}`;case"unrecognized_keys":return`Chei nerecunoscute: ${I(n.keys,", ")}`;case"invalid_key":return`Cheie invalid\u0103 \xEEn ${n.origin}`;case"invalid_union":return"Intrare invalid\u0103";case"invalid_element":return`Valoare invalid\u0103 \xEEn ${n.origin}`;default:return"Intrare invalid\u0103"}}};var bI=h(()=>{y()});function UI(e,r,t,i){let n=Math.abs(e),_=n%10,u=n%100;if(u>=11&&u<=19)return i;if(_===1)return r;if(_>=2&&_<=4)return t;return i}function sE(){return{localeError:Dh()}}var Dh=()=>{let e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function r(n){return e[n]??null}let t={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0441\u0438\u0432"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${n.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${c}`;return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${_}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${c}`}case"invalid_value":if(n.values.length===1)return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${O(n.values[0])}`;return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u){let c=Number(n.maximum),d=UI(c,u.unit.one,u.unit.few,u.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${n.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${_}${n.maximum.toString()} ${d}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${n.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u){let c=Number(n.minimum),d=UI(c,u.unit.one,u.unit.few,u.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${n.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${_}${n.minimum.toString()} ${d}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${n.origin} \u0431\u0443\u0434\u0435\u0442 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${_.prefix}"`;if(_.format==="ends_with")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${_.suffix}"`;if(_.format==="includes")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${_.includes}"`;if(_.format==="regex")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_.pattern}`;return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${n.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${n.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${n.keys.length>1?"\u0438":""}: ${I(n.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${n.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${n.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};var mI=h(()=>{y()});function pE(){return{localeError:Rh()}}var Rh=()=>{let e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function r(n){return e[n]??null}let t={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"},i={nan:"NaN",number:"\u0161tevilo",array:"tabela"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Neveljaven vnos: pri\u010Dakovano instanceof ${n.expected}, prejeto ${c}`;return`Neveljaven vnos: pri\u010Dakovano ${_}, prejeto ${c}`}case"invalid_value":if(n.values.length===1)return`Neveljaven vnos: pri\u010Dakovano ${O(n.values[0])}`;return`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Preveliko: pri\u010Dakovano, da bo ${n.origin??"vrednost"} imelo ${_}${n.maximum.toString()} ${u.unit??"elementov"}`;return`Preveliko: pri\u010Dakovano, da bo ${n.origin??"vrednost"} ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Premajhno: pri\u010Dakovano, da bo ${n.origin} imelo ${_}${n.minimum.toString()} ${u.unit}`;return`Premajhno: pri\u010Dakovano, da bo ${n.origin} ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Neveljaven niz: mora se za\u010Deti z "${_.prefix}"`;if(_.format==="ends_with")return`Neveljaven niz: mora se kon\u010Dati z "${_.suffix}"`;if(_.format==="includes")return`Neveljaven niz: mora vsebovati "${_.includes}"`;if(_.format==="regex")return`Neveljaven niz: mora ustrezati vzorcu ${_.pattern}`;return`Neveljaven ${t[_.format]??n.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${n.divisor}`;case"unrecognized_keys":return`Neprepoznan${n.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${I(n.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${n.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${n.origin}`;default:return"Neveljaven vnos"}}};var DI=h(()=>{y()});function ea(){return{localeError:hh()}}var hh=()=>{let e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function r(n){return e[n]??null}let t={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},i={nan:"NaN",number:"antal",array:"lista"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${n.expected}, fick ${c}`;return`Ogiltig inmatning: f\xF6rv\xE4ntat ${_}, fick ${c}`}case"invalid_value":if(n.values.length===1)return`Ogiltig inmatning: f\xF6rv\xE4ntat ${O(n.values[0])}`;return`Ogiltigt val: f\xF6rv\xE4ntade en av ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`F\xF6r stor(t): f\xF6rv\xE4ntade ${n.origin??"v\xE4rdet"} att ha ${_}${n.maximum.toString()} ${u.unit??"element"}`;return`F\xF6r stor(t): f\xF6rv\xE4ntat ${n.origin??"v\xE4rdet"} att ha ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`F\xF6r lite(t): f\xF6rv\xE4ntade ${n.origin??"v\xE4rdet"} att ha ${_}${n.minimum.toString()} ${u.unit}`;return`F\xF6r lite(t): f\xF6rv\xE4ntade ${n.origin??"v\xE4rdet"} att ha ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${_.prefix}"`;if(_.format==="ends_with")return`Ogiltig str\xE4ng: m\xE5ste sluta med "${_.suffix}"`;if(_.format==="includes")return`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${_.includes}"`;if(_.format==="regex")return`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${_.pattern}"`;return`Ogiltig(t) ${t[_.format]??n.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${n.divisor}`;case"unrecognized_keys":return`${n.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${I(n.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${n.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${n.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};var RI=h(()=>{y()});function ra(){return{localeError:wh()}}var wh=()=>{let e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function r(n){return e[n]??null}let t={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"\u0B8E\u0BA3\u0BCD",array:"\u0B85\u0BA3\u0BBF",null:"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${n.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${c}`;return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${_}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${c}`}case"invalid_value":if(n.values.length===1)return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${O(n.values[0])}`;return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${I(n.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${_}${n.maximum.toString()} ${u.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;return`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${_}${n.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n.origin} ${_}${n.minimum.toString()} ${u.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;return`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n.origin} ${_}${n.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;if(_.format==="ends_with")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;if(_.format==="includes")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;if(_.format==="regex")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${n.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${n.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${I(n.keys,", ")}`;case"invalid_key":return`${n.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${n.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};var hI=h(()=>{y()});function ta(){return{localeError:Ah()}}var Ah=()=>{let e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function r(n){return e[n]??null}let t={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"},i={nan:"NaN",number:"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02",array:"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)",null:"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${n.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${c}`;return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${_} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${c}`}case"invalid_value":if(n.values.length===1)return`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${O(n.values[0])}`;return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",u=r(n.origin);if(u)return`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${n.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${_} ${n.maximum.toString()} ${u.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`;return`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${n.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${_} ${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",u=r(n.origin);if(u)return`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${n.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${_} ${n.minimum.toString()} ${u.unit}`;return`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${n.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${_} ${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${_.prefix}"`;if(_.format==="ends_with")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${_.suffix}"`;if(_.format==="includes")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${_.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`;if(_.format==="regex")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_.pattern}`;return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${t[_.format]??n.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${n.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${I(n.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${n.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${n.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};var wI=h(()=>{y()});function na(){return{localeError:Xh()}}var Xh=()=>{let e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function r(n){return e[n]??null}let t={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Ge\xE7ersiz de\u011Fer: beklenen instanceof ${n.expected}, al\u0131nan ${c}`;return`Ge\xE7ersiz de\u011Fer: beklenen ${_}, al\u0131nan ${c}`}case"invalid_value":if(n.values.length===1)return`Ge\xE7ersiz de\u011Fer: beklenen ${O(n.values[0])}`;return`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${_}${n.maximum.toString()} ${u.unit??"\xF6\u011Fe"}`;return`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${_}${n.minimum.toString()} ${u.unit}`;return`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Ge\xE7ersiz metin: "${_.prefix}" ile ba\u015Flamal\u0131`;if(_.format==="ends_with")return`Ge\xE7ersiz metin: "${_.suffix}" ile bitmeli`;if(_.format==="includes")return`Ge\xE7ersiz metin: "${_.includes}" i\xE7ermeli`;if(_.format==="regex")return`Ge\xE7ersiz metin: ${_.pattern} desenine uymal\u0131`;return`Ge\xE7ersiz ${t[_.format]??n.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${n.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${n.keys.length>1?"lar":""}: ${I(n.keys,", ")}`;case"invalid_key":return`${n.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${n.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};var AI=h(()=>{y()});function li(){return{localeError:yh()}}var yh=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function r(n){return e[n]??null}let t={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${n.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${c}`;return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${_}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${c}`}case"invalid_value":if(n.values.length===1)return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${O(n.values[0])}`;return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${n.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${u.verb} ${_}${n.maximum.toString()} ${u.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`;return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${n.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${n.origin} ${u.verb} ${_}${n.minimum.toString()} ${u.unit}`;return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${n.origin} \u0431\u0443\u0434\u0435 ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${_.prefix}"`;if(_.format==="ends_with")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${_.suffix}"`;if(_.format==="includes")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${_.includes}"`;if(_.format==="regex")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_.pattern}`;return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${n.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${n.keys.length>1?"\u0456":""}: ${I(n.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${n.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${n.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};var ia=h(()=>{y()});function _a(){return li()}var XI=h(()=>{ia()});function ua(){return{localeError:xh()}}var xh=()=>{let e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function r(n){return e[n]??null}let t={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"},i={nan:"NaN",number:"\u0646\u0645\u0628\u0631",array:"\u0622\u0631\u06D2",null:"\u0646\u0644"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${n.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${c} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${_} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${c} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`}case"invalid_value":if(n.values.length===1)return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${O(n.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;return`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${I(n.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u0628\u06C1\u062A \u0628\u0691\u0627: ${n.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${_}${n.maximum.toString()} ${u.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;return`\u0628\u06C1\u062A \u0628\u0691\u0627: ${n.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${_}${n.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${n.origin} \u06A9\u06D2 ${_}${n.minimum.toString()} ${u.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;return`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${n.origin} \u06A9\u0627 ${_}${n.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;if(_.format==="ends_with")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;if(_.format==="includes")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;if(_.format==="regex")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;return`\u063A\u0644\u0637 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${n.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${n.keys.length>1?"\u0632":""}: ${I(n.keys,"\u060C ")}`;case"invalid_key":return`${n.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${n.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};var yI=h(()=>{y()});function ca(){return{localeError:jh()}}var jh=()=>{let e={string:{unit:"belgi",verb:"bo\u2018lishi kerak"},file:{unit:"bayt",verb:"bo\u2018lishi kerak"},array:{unit:"element",verb:"bo\u2018lishi kerak"},set:{unit:"element",verb:"bo\u2018lishi kerak"},map:{unit:"yozuv",verb:"bo\u2018lishi kerak"}};function r(n){return e[n]??null}let t={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},i={nan:"NaN",number:"raqam",array:"massiv"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`Noto\u2018g\u2018ri kirish: kutilgan instanceof ${n.expected}, qabul qilingan ${c}`;return`Noto\u2018g\u2018ri kirish: kutilgan ${_}, qabul qilingan ${c}`}case"invalid_value":if(n.values.length===1)return`Noto\u2018g\u2018ri kirish: kutilgan ${O(n.values[0])}`;return`Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Juda katta: kutilgan ${n.origin??"qiymat"} ${_}${n.maximum.toString()} ${u.unit} ${u.verb}`;return`Juda katta: kutilgan ${n.origin??"qiymat"} ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Juda kichik: kutilgan ${n.origin} ${_}${n.minimum.toString()} ${u.unit} ${u.verb}`;return`Juda kichik: kutilgan ${n.origin} ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Noto\u2018g\u2018ri satr: "${_.prefix}" bilan boshlanishi kerak`;if(_.format==="ends_with")return`Noto\u2018g\u2018ri satr: "${_.suffix}" bilan tugashi kerak`;if(_.format==="includes")return`Noto\u2018g\u2018ri satr: "${_.includes}" ni o\u2018z ichiga olishi kerak`;if(_.format==="regex")return`Noto\u2018g\u2018ri satr: ${_.pattern} shabloniga mos kelishi kerak`;return`Noto\u2018g\u2018ri ${t[_.format]??n.format}`}case"not_multiple_of":return`Noto\u2018g\u2018ri raqam: ${n.divisor} ning karralisi bo\u2018lishi kerak`;case"unrecognized_keys":return`Noma\u2019lum kalit${n.keys.length>1?"lar":""}: ${I(n.keys,", ")}`;case"invalid_key":return`${n.origin} dagi kalit noto\u2018g\u2018ri`;case"invalid_union":return"Noto\u2018g\u2018ri kirish";case"invalid_element":return`${n.origin} da noto\u2018g\u2018ri qiymat`;default:return"Noto\u2018g\u2018ri kirish"}}};var xI=h(()=>{y()});function da(){return{localeError:Ph()}}var Ph=()=>{let e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function r(n){return e[n]??null}let t={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"},i={nan:"NaN",number:"s\u1ED1",array:"m\u1EA3ng"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${n.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${c}`;return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${_}, nh\u1EADn \u0111\u01B0\u1EE3c ${c}`}case"invalid_value":if(n.values.length===1)return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${O(n.values[0])}`;return`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${n.origin??"gi\xE1 tr\u1ECB"} ${u.verb} ${_}${n.maximum.toString()} ${u.unit??"ph\u1EA7n t\u1EED"}`;return`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${n.origin??"gi\xE1 tr\u1ECB"} ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${n.origin} ${u.verb} ${_}${n.minimum.toString()} ${u.unit}`;return`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${n.origin} ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${_.prefix}"`;if(_.format==="ends_with")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${_.suffix}"`;if(_.format==="includes")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${_.includes}"`;if(_.format==="regex")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_.pattern}`;return`${t[_.format]??n.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${n.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${I(n.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${n.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${n.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};var jI=h(()=>{y()});function oa(){return{localeError:Fh()}}var Fh=()=>{let e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function r(n){return e[n]??null}let t={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"},i={nan:"NaN",number:"\u6570\u5B57",array:"\u6570\u7EC4",null:"\u7A7A\u503C(null)"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${n.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${c}`;return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${_}\uFF0C\u5B9E\u9645\u63A5\u6536 ${c}`}case"invalid_value":if(n.values.length===1)return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${O(n.values[0])}`;return`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${n.origin??"\u503C"} ${_}${n.maximum.toString()} ${u.unit??"\u4E2A\u5143\u7D20"}`;return`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${n.origin??"\u503C"} ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${n.origin} ${_}${n.minimum.toString()} ${u.unit}`;return`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${n.origin} ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_.prefix}" \u5F00\u5934`;if(_.format==="ends_with")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_.suffix}" \u7ED3\u5C3E`;if(_.format==="includes")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${_.includes}"`;if(_.format==="regex")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_.pattern}`;return`\u65E0\u6548${t[_.format]??n.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${n.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${I(n.keys,", ")}`;case"invalid_key":return`${n.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${n.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};var PI=h(()=>{y()});function ga(){return{localeError:Kh()}}var Kh=()=>{let e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function r(n){return e[n]??null}let t={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"},i={nan:"NaN"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${n.expected}\uFF0C\u4F46\u6536\u5230 ${c}`;return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${_}\uFF0C\u4F46\u6536\u5230 ${c}`}case"invalid_value":if(n.values.length===1)return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${O(n.values[0])}`;return`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${n.origin??"\u503C"} \u61C9\u70BA ${_}${n.maximum.toString()} ${u.unit??"\u500B\u5143\u7D20"}`;return`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${n.origin??"\u503C"} \u61C9\u70BA ${_}${n.maximum.toString()}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${n.origin} \u61C9\u70BA ${_}${n.minimum.toString()} ${u.unit}`;return`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${n.origin} \u61C9\u70BA ${_}${n.minimum.toString()}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_.prefix}" \u958B\u982D`;if(_.format==="ends_with")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_.suffix}" \u7D50\u5C3E`;if(_.format==="includes")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${_.includes}"`;if(_.format==="regex")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_.pattern}`;return`\u7121\u6548\u7684 ${t[_.format]??n.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${n.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${n.keys.length>1?"\u5011":""}\uFF1A${I(n.keys,"\u3001")}`;case"invalid_key":return`${n.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${n.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};var FI=h(()=>{y()});function la(){return{localeError:Wh()}}var Wh=()=>{let e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function r(n){return e[n]??null}let t={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"},i={nan:"NaN",number:"n\u1ECD\u0301mb\xE0",array:"akop\u1ECD"};return(n)=>{switch(n.code){case"invalid_type":{let _=i[n.expected]??n.expected,u=L(n.input),c=i[u]??u;if(/^[A-Z]/.test(n.expected))return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${n.expected}, \xE0m\u1ECD\u0300 a r\xED ${c}`;return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${_}, \xE0m\u1ECD\u0300 a r\xED ${c}`}case"invalid_value":if(n.values.length===1)return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${O(n.values[0])}`;return`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${I(n.values,"|")}`;case"too_big":{let _=n.inclusive?"<=":"<",u=r(n.origin);if(u)return`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${n.origin??"iye"} ${u.verb} ${_}${n.maximum} ${u.unit}`;return`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${_}${n.maximum}`}case"too_small":{let _=n.inclusive?">=":">",u=r(n.origin);if(u)return`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${n.origin} ${u.verb} ${_}${n.minimum} ${u.unit}`;return`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${_}${n.minimum}`}case"invalid_format":{let _=n;if(_.format==="starts_with")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${_.prefix}"`;if(_.format==="ends_with")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${_.suffix}"`;if(_.format==="includes")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${_.includes}"`;if(_.format==="regex")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${_.pattern}`;return`A\u1E63\xEC\u1E63e: ${t[_.format]??n.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${n.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${I(n.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${n.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${n.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};var KI=h(()=>{y()});var gn={};Qe(gn,{zhTW:()=>ga,zhCN:()=>oa,yo:()=>la,vi:()=>da,uz:()=>ca,ur:()=>ua,uk:()=>li,ua:()=>_a,tr:()=>na,th:()=>ta,ta:()=>ra,sv:()=>ea,sl:()=>pE,ru:()=>sE,ro:()=>ZE,pt:()=>QE,ps:()=>HE,pl:()=>VE,ota:()=>BE,no:()=>YE,nl:()=>GE,ms:()=>qE,mk:()=>CE,lt:()=>ME,ko:()=>zE,km:()=>oi,kh:()=>JE,ka:()=>KE,ja:()=>FE,it:()=>PE,is:()=>jE,id:()=>xE,hy:()=>yE,hu:()=>XE,hr:()=>AE,he:()=>wE,frCA:()=>hE,fr:()=>RE,fi:()=>DE,fa:()=>mE,es:()=>UE,eo:()=>bE,en:()=>di,el:()=>OE,de:()=>SE,da:()=>IE,cs:()=>kE,ca:()=>NE,bg:()=>vE,be:()=>$E,az:()=>fE,ar:()=>TE});var Ea=h(()=>{Jk();zk();Ck();qk();Gk();Yk();Bk();Hk();Vk();LE();Qk();Zk();sk();pk();eI();rI();tI();nI();iI();uI();cI();dI();oI();gI();lI();EI();WE();aI();fI();$I();vI();NI();kI();II();SI();OI();LI();bI();mI();DI();RI();hI();wI();AI();XI();ia();yI();xI();jI();PI();FI();KI()});class aa{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let t=r[0];if(this._map.set(e,t),t&&typeof t==="object"&&"id"in t)this._idmap.set(t.id,e);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);if(r&&typeof r==="object"&&"id"in r)this._idmap.delete(r.id);return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let t={...this.get(r)??{}};delete t.id;let i={...t,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function Ei(){return new aa}var WI,Xu,yu,ge;var ai=h(()=>{Xu=Symbol("ZodOutput"),yu=Symbol("ZodInput");(WI=globalThis).__zod_globalRegistry??(WI.__zod_globalRegistry=Ei());ge=globalThis.__zod_globalRegistry});function Ta(e,r){return new e({type:"string",...m(r)})}function fa(e,r){return new e({type:"string",coerce:!0,...m(r)})}function xu(e,r){return new e({type:"string",format:"email",check:"string_format",abort:!1,...m(r)})}function Ti(e,r){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...m(r)})}function ju(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...m(r)})}function Pu(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...m(r)})}function Fu(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...m(r)})}function Ku(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...m(r)})}function fi(e,r){return new e({type:"string",format:"url",check:"string_format",abort:!1,...m(r)})}function Wu(e,r){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...m(r)})}function Ju(e,r){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...m(r)})}function zu(e,r){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...m(r)})}function Mu(e,r){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...m(r)})}function Cu(e,r){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...m(r)})}function qu(e,r){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...m(r)})}function Gu(e,r){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...m(r)})}function Yu(e,r){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...m(r)})}function Bu(e,r){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...m(r)})}function $a(e,r){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...m(r)})}function Hu(e,r){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...m(r)})}function Vu(e,r){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...m(r)})}function Qu(e,r){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...m(r)})}function Zu(e,r){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...m(r)})}function su(e,r){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...m(r)})}function pu(e,r){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...m(r)})}function va(e,r){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...m(r)})}function Na(e,r){return new e({type:"string",format:"date",check:"string_format",...m(r)})}function ka(e,r){return new e({type:"string",format:"time",check:"string_format",precision:null,...m(r)})}function Ia(e,r){return new e({type:"string",format:"duration",check:"string_format",...m(r)})}function Sa(e,r){return new e({type:"number",checks:[],...m(r)})}function Oa(e,r){return new e({type:"number",coerce:!0,checks:[],...m(r)})}function La(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...m(r)})}function ba(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...m(r)})}function Ua(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...m(r)})}function ma(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...m(r)})}function Da(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...m(r)})}function Ra(e,r){return new e({type:"boolean",...m(r)})}function ha(e,r){return new e({type:"boolean",coerce:!0,...m(r)})}function wa(e,r){return new e({type:"bigint",...m(r)})}function Aa(e,r){return new e({type:"bigint",coerce:!0,...m(r)})}function Xa(e,r){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...m(r)})}function ya(e,r){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...m(r)})}function xa(e,r){return new e({type:"symbol",...m(r)})}function ja(e,r){return new e({type:"undefined",...m(r)})}function Pa(e,r){return new e({type:"null",...m(r)})}function Fa(e){return new e({type:"any"})}function Ka(e){return new e({type:"unknown"})}function Wa(e,r){return new e({type:"never",...m(r)})}function Ja(e,r){return new e({type:"void",...m(r)})}function za(e,r){return new e({type:"date",...m(r)})}function Ma(e,r){return new e({type:"date",coerce:!0,...m(r)})}function Ca(e,r){return new e({type:"nan",...m(r)})}function qe(e,r){return new ku({check:"less_than",...m(r),value:e,inclusive:!1})}function Ue(e,r){return new ku({check:"less_than",...m(r),value:e,inclusive:!0})}function Ge(e,r){return new Iu({check:"greater_than",...m(r),value:e,inclusive:!1})}function $e(e,r){return new Iu({check:"greater_than",...m(r),value:e,inclusive:!0})}function $i(e){return Ge(0,e)}function vi(e){return qe(0,e)}function Ni(e){return Ue(0,e)}function ki(e){return $e(0,e)}function $r(e,r){return new Fg({check:"multiple_of",...m(r),value:e})}function vr(e,r){return new Jg({check:"max_size",...m(r),maximum:e})}function Ye(e,r){return new zg({check:"min_size",...m(r),minimum:e})}function Pr(e,r){return new Mg({check:"size_equals",...m(r),size:e})}function Fr(e,r){return new Cg({check:"max_length",...m(r),maximum:e})}function tr(e,r){return new qg({check:"min_length",...m(r),minimum:e})}function Kr(e,r){return new Gg({check:"length_equals",...m(r),length:e})}function ot(e,r){return new Yg({check:"string_format",format:"regex",...m(r),pattern:e})}function gt(e){return new Bg({check:"string_format",format:"lowercase",...m(e)})}function lt(e){return new Hg({check:"string_format",format:"uppercase",...m(e)})}function Et(e,r){return new Vg({check:"string_format",format:"includes",...m(r),includes:e})}function at(e,r){return new Qg({check:"string_format",format:"starts_with",...m(r),prefix:e})}function Tt(e,r){return new Zg({check:"string_format",format:"ends_with",...m(r),suffix:e})}function Ii(e,r,t){return new sg({check:"property",property:e,schema:r,...m(t)})}function ft(e,r){return new pg({check:"mime_type",mime:e,...m(r)})}function Pe(e){return new el({check:"overwrite",tx:e})}function $t(e){return Pe((r)=>r.normalize(e))}function vt(){return Pe((e)=>e.trim())}function Nt(){return Pe((e)=>e.toLowerCase())}function kt(){return Pe((e)=>e.toUpperCase())}function It(){return Pe((e)=>Qo(e))}function qa(e,r,t){return new e({type:"array",element:r,...m(t)})}function zh(e,r,t){return new e({type:"union",options:r,...m(t)})}function Mh(e,r,t){return new e({type:"union",options:r,inclusive:!1,...m(t)})}function Ch(e,r,t,i){return new e({type:"union",options:t,discriminator:r,...m(i)})}function qh(e,r,t){return new e({type:"intersection",left:r,right:t})}function Gh(e,r,t,i){let n=t instanceof F;return new e({type:"tuple",items:r,rest:n?t:null,...m(n?i:t)})}function Yh(e,r,t,i){return new e({type:"record",keyType:r,valueType:t,...m(i)})}function Bh(e,r,t,i){return new e({type:"map",keyType:r,valueType:t,...m(i)})}function Hh(e,r,t){return new e({type:"set",valueType:r,...m(t)})}function Vh(e,r,t){let i=Array.isArray(r)?Object.fromEntries(r.map((n)=>[n,n])):r;return new e({type:"enum",entries:i,...m(t)})}function Qh(e,r,t){return new e({type:"enum",entries:r,...m(t)})}function Zh(e,r,t){return new e({type:"literal",values:Array.isArray(r)?r:[r],...m(t)})}function Ga(e,r){return new e({type:"file",...m(r)})}function sh(e,r){return new e({type:"transform",transform:r})}function ph(e,r){return new e({type:"optional",innerType:r})}function ew(e,r){return new e({type:"nullable",innerType:r})}function rw(e,r,t){return new e({type:"default",innerType:r,get defaultValue(){return typeof t==="function"?t():so(t)}})}function tw(e,r,t){return new e({type:"nonoptional",innerType:r,...m(t)})}function nw(e,r){return new e({type:"success",innerType:r})}function iw(e,r,t){return new e({type:"catch",innerType:r,catchValue:typeof t==="function"?t:()=>t})}function _w(e,r,t){return new e({type:"pipe",in:r,out:t})}function uw(e,r){return new e({type:"readonly",innerType:r})}function cw(e,r,t){return new e({type:"template_literal",parts:r,...m(t)})}function dw(e,r){return new e({type:"lazy",getter:r})}function ow(e,r){return new e({type:"promise",innerType:r})}function Ya(e,r,t){let i=m(t);return i.abort??(i.abort=!0),new e({type:"custom",check:"custom",fn:r,...i})}function Ba(e,r,t){return new e({type:"custom",check:"custom",fn:r,...m(t)})}function Ha(e,r){let t=JI((i)=>{return i.addIssue=(n)=>{if(typeof n==="string")i.issues.push(en(n,i.value,t._zod.def));else{let _=n;if(_.fatal)_.continue=!1;_.code??(_.code="custom"),_.input??(_.input=i.value),_.inst??(_.inst=t),_.continue??(_.continue=!t._zod.def.abort),i.issues.push(en(_))}},e(i.value,i)},r);return t}function JI(e,r){let t=new Z({check:"custom",...m(r)});return t._zod.check=e,t}function Va(e){let r=new Z({check:"describe"});return r._zod.onattach=[(t)=>{let i=ge.get(t)??{};ge.add(t,{...i,description:e})}],r._zod.check=()=>{},r}function Qa(e){let r=new Z({check:"meta"});return r._zod.onattach=[(t)=>{let i=ge.get(t)??{};ge.add(t,{...i,...e})}],r._zod.check=()=>{},r}function Za(e,r){let t=m(r),i=t.truthy??["true","1","yes","on","y","enabled"],n=t.falsy??["false","0","no","off","n","disabled"];if(t.case!=="sensitive")i=i.map((l)=>typeof l==="string"?l.toLowerCase():l),n=n.map((l)=>typeof l==="string"?l.toLowerCase():l);let _=new Set(i),u=new Set(n),c=e.Codec??ci,d=e.Boolean??_i,a=new(e.String??dt)({type:"string",error:t.error}),g=new d({type:"boolean",error:t.error}),E=new c({type:"pipe",in:a,out:g,transform:(l,T)=>{let f=l;if(t.case!=="sensitive")f=f.toLowerCase();if(_.has(f))return!0;else if(u.has(f))return!1;else return T.issues.push({code:"invalid_value",expected:"stringbool",values:[..._,...u],input:T.value,inst:E,continue:!1}),{}},reverseTransform:(l,T)=>{if(l===!0)return i[0]||"true";else return n[0]||"false"},error:t.error});return E}function ln(e,r,t,i={}){let n=m(i),_={...m(i),check:"string_format",type:"string",format:r,fn:typeof t==="function"?t:(c)=>t.test(c),...n};if(t instanceof RegExp)_.pattern=t;return new e(_)}var ec;var zI=h(()=>{Su();ai();aE();y();ec={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6}});function Wr(e){let r=e?.target??"draft-2020-12";if(r==="draft-4")r="draft-04";if(r==="draft-7")r="draft-07";return{processors:e.processors??{},metadataRegistry:e?.metadata??ge,target:r,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Y(e,r,t={path:[],schemaPath:[]}){var i;let n=e._zod.def,_=r.seen.get(e);if(_){if(_.count++,t.schemaPath.includes(e))_.cycle=t.path;return _.schema}let u={schema:{},count:1,cycle:void 0,path:t.path};r.seen.set(e,u);let c=e._zod.toJSONSchema?.();if(c)u.schema=c;else{let a={...t,schemaPath:[...t.schemaPath,e],path:t.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(r,u.schema,a);else{let E=u.schema,l=r.processors[n.type];if(!l)throw Error(`[toJSONSchema]: Non-representable type encountered: ${n.type}`);l(e,r,E,a)}let g=e._zod.parent;if(g){if(!u.ref)u.ref=g;Y(g,r,a),r.seen.get(g).isParent=!0}}let d=r.metadataRegistry.get(e);if(d)Object.assign(u.schema,d);if(r.io==="input"&&Ie(e))delete u.schema.examples,delete u.schema.default;if(r.io==="input"&&"_prefault"in u.schema)(i=u.schema).default??(i.default=u.schema._prefault);return delete u.schema._prefault,r.seen.get(e).schema}function Jr(e,r){let t=e.seen.get(r);if(!t)throw Error("Unprocessed schema. This is a bug in Zod.");let i=new Map;for(let u of e.seen.entries()){let c=e.metadataRegistry.get(u[0])?.id;if(c){let d=i.get(c);if(d&&d!==u[0])throw Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);i.set(c,u[0])}}let n=(u)=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let g=e.external.registry.get(u[0])?.id,E=e.external.uri??((T)=>T);if(g)return{ref:E(g)};let l=u[1].defId??u[1].schema.id??`schema${e.counter++}`;return u[1].defId=l,{defId:l,ref:`${E("__shared")}#/${c}/${l}`}}if(u[1]===t)return{ref:"#"};let o=`${"#"}/${c}/`,a=u[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:o+a}},_=(u)=>{if(u[1].schema.$ref)return;let c=u[1],{ref:d,defId:o}=n(u);if(c.def={...c.schema},o)c.defId=o;let a=c.schema;for(let g in a)delete a[g];a.$ref=d};if(e.cycles==="throw")for(let u of e.seen.entries()){let c=u[1];if(c.cycle)throw Error(`Cycle detected: #/${c.cycle?.join("/")}/ + `)}l.write("payload.value = newResult;"),l.write("return payload;");let S=l.compile();return(O,b)=>S(a,O,b)},u,_=cn,c=!tn.jitless,g=c&&Qg.value,f=r.catchall,o;e._zod.parse=(a,l)=>{o??(o=i.value);let $=a.value;if(!_($))return a.issues.push({expected:"object",code:"invalid_type",input:$,inst:e}),a;if(c&&g&&l?.async===!1&&l.jitless!==!0){if(!u)u=t(r.shape);if(a=u(a,l),!f)return a;return FS([],$,a,l,o,e)}return n(a,l)}});_i=E("$ZodUnion",(e,r)=>{K.init(e,r),W(e._zod,"optin",()=>r.options.some((i)=>i._zod.optin==="optional")?"optional":void 0),W(e._zod,"optout",()=>r.options.some((i)=>i._zod.optout==="optional")?"optional":void 0),W(e._zod,"values",()=>{if(r.options.every((i)=>i._zod.values))return new Set(r.options.flatMap((i)=>Array.from(i._zod.values)));return}),W(e._zod,"pattern",()=>{if(r.options.every((i)=>i._zod.pattern)){let i=r.options.map((t)=>t._zod.pattern);return new RegExp(`^(${i.map((t)=>Zt(t.source)).join("|")})$`)}return});let n=r.options.length===1?r.options[0]._zod.run:null;e._zod.parse=(i,t)=>{if(n)return n(i,t);let u=!1,_=[];for(let c of r.options){let d=c._zod.run({value:i.value,issues:[]},t);if(d instanceof Promise)_.push(d),u=!0;else{if(d.issues.length===0)return d;_.push(d)}}if(!u)return IS(_,i,e,t);return Promise.all(_).then((c)=>{return IS(c,i,e,t)})}});Ml=E("$ZodXor",(e,r)=>{_i.init(e,r),r.inclusive=!1;let n=r.options.length===1?r.options[0]._zod.run:null;e._zod.parse=(i,t)=>{if(n)return n(i,t);let u=!1,_=[];for(let c of r.options){let d=c._zod.run({value:i.value,issues:[]},t);if(d instanceof Promise)_.push(d),u=!0;else _.push(d)}if(!u)return mS(_,i,e,t);return Promise.all(_).then((c)=>{return mS(c,i,e,t)})}}),ql=E("$ZodDiscriminatedUnion",(e,r)=>{r.inclusive=!1,_i.init(e,r);let n=e._zod.parse;W(e._zod,"propValues",()=>{let t={};for(let u of r.options){let _=u._zod.propValues;if(!_||Object.keys(_).length===0)throw Error(`Invalid discriminated union option at index "${r.options.indexOf(u)}"`);for(let[c,d]of Object.entries(_)){if(!t[c])t[c]=new Set;for(let g of d)t[c].add(g)}}return t});let i=et(()=>{let t=r.options,u=new Map;for(let _ of t){let c=_._zod.propValues?.[r.discriminator];if(!c||c.size===0)throw Error(`Invalid discriminated union option at index "${r.options.indexOf(_)}"`);for(let d of c){if(u.has(d))throw Error(`Duplicate discriminator value "${String(d)}"`);u.set(d,_)}}return u});e._zod.parse=(t,u)=>{let _=t.value;if(!cn(_))return t.issues.push({code:"invalid_type",expected:"object",input:_,inst:e}),t;let c=i.value.get(_?.[r.discriminator]);if(c)return c._zod.run(t,u);if(r.unionFallback||u.direction==="backward")return n(t,u);return t.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:r.discriminator,options:Array.from(i.value.keys()),input:_,path:[r.discriminator],inst:e}),t}}),Gl=E("$ZodIntersection",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value,u=r.left._zod.run({value:t,issues:[]},i),_=r.right._zod.run({value:t,issues:[]},i);if(u instanceof Promise||_ instanceof Promise)return Promise.all([u,_]).then(([d,g])=>{return wS(n,d,g)});return wS(n,u,_)}});R_=E("$ZodTuple",(e,r)=>{K.init(e,r);let n=r.items;e._zod.parse=(i,t)=>{let u=i.value;if(!Array.isArray(u))return i.issues.push({input:u,inst:e,expected:"tuple",code:"invalid_type"}),i;i.value=[];let _=[],c=DS(n,"optin"),d=DS(n,"optout");if(!r.rest){if(u.lengthn.length)i.issues.push({code:"too_big",maximum:n.length,inclusive:!0,input:u,inst:e,origin:"array"})}let g=Array(n.length);for(let f=0;f{g[f]=a}));else g[f]=o}if(r.rest){let f=n.length-1,o=u.slice(n.length);for(let a of o){f++;let l=r.rest._zod.run({value:a,issues:[]},t);if(l instanceof Promise)_.push(l.then(($)=>US($,i,f)));else US(l,i,f)}}if(_.length)return Promise.all(_).then(()=>hS(g,i,n,u,d));return hS(g,i,n,u,d)}});Hl=E("$ZodRecord",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(!Pr(t))return n.issues.push({expected:"record",code:"invalid_type",input:t,inst:e}),n;let u=[],_=r.keyType._zod.values;if(_){n.value={};let c=new Set;for(let g of _)if(typeof g==="string"||typeof g==="number"||typeof g==="symbol"){c.add(typeof g==="number"?g.toString():g);let f=r.keyType._zod.run({value:g,issues:[]},i);if(f instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(f.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:f.issues.map((l)=>Se(l,i,ie())),input:g,path:[g],inst:e});continue}let o=f.value,a=r.valueType._zod.run({value:t[g],issues:[]},i);if(a instanceof Promise)u.push(a.then((l)=>{if(l.issues.length)n.issues.push(...Ie(g,l.issues));n.value[o]=l.value}));else{if(a.issues.length)n.issues.push(...Ie(g,a.issues));n.value[o]=a.value}}let d;for(let g in t)if(!c.has(g))d=d??[],d.push(g);if(d&&d.length>0)n.issues.push({code:"unrecognized_keys",input:t,inst:e,keys:d})}else{n.value={};for(let c of Reflect.ownKeys(t)){if(c==="__proto__")continue;if(!Object.prototype.propertyIsEnumerable.call(t,c))continue;let d=r.keyType._zod.run({value:c,issues:[]},i);if(d instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof c==="string"&&ni.test(c)&&d.issues.length){let o=r.keyType._zod.run({value:Number(c),issues:[]},i);if(o instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(o.issues.length===0)d=o}if(d.issues.length){if(r.mode==="loose")n.value[c]=t[c];else n.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map((o)=>Se(o,i,ie())),input:c,path:[c],inst:e});continue}let f=r.valueType._zod.run({value:t[c],issues:[]},i);if(f instanceof Promise)u.push(f.then((o)=>{if(o.issues.length)n.issues.push(...Ie(c,o.issues));n.value[d.value]=o.value}));else{if(f.issues.length)n.issues.push(...Ie(c,f.issues));n.value[d.value]=f.value}}}if(u.length)return Promise.all(u).then(()=>n);return n}}),Bl=E("$ZodMap",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(!(t instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:t,inst:e}),n;let u=[];n.value=new Map;for(let[_,c]of t){let d=r.keyType._zod.run({value:_,issues:[]},i),g=r.valueType._zod.run({value:c,issues:[]},i);if(d instanceof Promise||g instanceof Promise)u.push(Promise.all([d,g]).then(([f,o])=>{OS(f,o,n,_,t,e,i)}));else OS(d,g,n,_,t,e,i)}if(u.length)return Promise.all(u).then(()=>n);return n}});Cl=E("$ZodSet",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(!(t instanceof Set))return n.issues.push({input:t,inst:e,expected:"set",code:"invalid_type"}),n;let u=[];n.value=new Set;for(let _ of t){let c=r.valueType._zod.run({value:_,issues:[]},i);if(c instanceof Promise)u.push(c.then((d)=>RS(d,n)));else RS(c,n)}if(u.length)return Promise.all(u).then(()=>n);return n}});Yl=E("$ZodEnum",(e,r)=>{K.init(e,r);let n=Qt(r.entries),i=new Set(n);e._zod.values=i,e._zod.pattern=new RegExp(`^(${n.filter((t)=>st.has(typeof t)).map((t)=>typeof t==="string"?xe(t):t.toString()).join("|")})$`),e._zod.parse=(t,u)=>{let _=t.value;if(i.has(_))return t;return t.issues.push({code:"invalid_value",values:n,input:_,inst:e}),t}}),Vl=E("$ZodLiteral",(e,r)=>{if(K.init(e,r),r.values.length===0)throw Error("Cannot create literal schema with no valid values");let n=new Set(r.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.values.map((i)=>typeof i==="string"?xe(i):i?xe(i.toString()):String(i)).join("|")})$`),e._zod.parse=(i,t)=>{let u=i.value;if(n.has(u))return i;return i.issues.push({code:"invalid_value",values:r.values,input:u,inst:e}),i}}),Ql=E("$ZodFile",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{let t=n.value;if(t instanceof File)return n;return n.issues.push({expected:"file",code:"invalid_type",input:t,inst:e}),n}}),Zl=E("$ZodTransform",(e,r)=>{K.init(e,r),e._zod.optin="optional",e._zod.parse=(n,i)=>{if(i.direction==="backward")throw new un(e.constructor.name);let t=r.transform(n.value,n);if(i.async)return(t instanceof Promise?t:Promise.resolve(t)).then((_)=>{return n.value=_,n.fallback=!0,n});if(t instanceof Promise)throw new rr;return n.value=t,n.fallback=!0,n}});L_=E("$ZodOptional",(e,r)=>{K.init(e,r),e._zod.optin="optional",e._zod.optout="optional",W(e._zod,"values",()=>{return r.innerType._zod.values?new Set([...r.innerType._zod.values,void 0]):void 0}),W(e._zod,"pattern",()=>{let n=r.innerType._zod.pattern;return n?new RegExp(`^(${Zt(n.source)})?$`):void 0}),e._zod.parse=(n,i)=>{if(r.innerType._zod.optin==="optional"){let t=n.value,u=r.innerType._zod.run(n,i);if(u instanceof Promise)return u.then((_)=>LS(_,t));return LS(u,t)}if(n.value===void 0)return n;return r.innerType._zod.run(n,i)}}),sl=E("$ZodExactOptional",(e,r)=>{L_.init(e,r),W(e._zod,"values",()=>r.innerType._zod.values),W(e._zod,"pattern",()=>r.innerType._zod.pattern),e._zod.parse=(n,i)=>{return r.innerType._zod.run(n,i)}}),pl=E("$ZodNullable",(e,r)=>{K.init(e,r),W(e._zod,"optin",()=>r.innerType._zod.optin),W(e._zod,"optout",()=>r.innerType._zod.optout),W(e._zod,"pattern",()=>{let n=r.innerType._zod.pattern;return n?new RegExp(`^(${Zt(n.source)}|null)$`):void 0}),W(e._zod,"values",()=>{return r.innerType._zod.values?new Set([...r.innerType._zod.values,null]):void 0}),e._zod.parse=(n,i)=>{if(n.value===null)return n;return r.innerType._zod.run(n,i)}}),ea=E("$ZodDefault",(e,r)=>{K.init(e,r),e._zod.optin="optional",W(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(n,i)=>{if(i.direction==="backward")return r.innerType._zod.run(n,i);if(n.value===void 0)return n.value=r.defaultValue,n;let t=r.innerType._zod.run(n,i);if(t instanceof Promise)return t.then((u)=>AS(u,r));return AS(t,r)}});ra=E("$ZodPrefault",(e,r)=>{K.init(e,r),e._zod.optin="optional",W(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(n,i)=>{if(i.direction==="backward")return r.innerType._zod.run(n,i);if(n.value===void 0)n.value=r.defaultValue;return r.innerType._zod.run(n,i)}}),na=E("$ZodNonOptional",(e,r)=>{K.init(e,r),W(e._zod,"values",()=>{let n=r.innerType._zod.values;return n?new Set([...n].filter((i)=>i!==void 0)):void 0}),e._zod.parse=(n,i)=>{let t=r.innerType._zod.run(n,i);if(t instanceof Promise)return t.then((u)=>yS(u,e));return yS(t,e)}});ta=E("$ZodSuccess",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{if(i.direction==="backward")throw new un("ZodSuccess");let t=r.innerType._zod.run(n,i);if(t instanceof Promise)return t.then((u)=>{return n.value=u.issues.length===0,n});return n.value=t.issues.length===0,n}}),ia=E("$ZodCatch",(e,r)=>{K.init(e,r),e._zod.optin="optional",W(e._zod,"optout",()=>r.innerType._zod.optout),W(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(n,i)=>{if(i.direction==="backward")return r.innerType._zod.run(n,i);let t=r.innerType._zod.run(n,i);if(t instanceof Promise)return t.then((u)=>{if(n.value=u.value,u.issues.length)n.value=r.catchValue({...n,error:{issues:u.issues.map((_)=>Se(_,i,ie()))},input:n.value}),n.issues=[],n.fallback=!0;return n});if(n.value=t.value,t.issues.length)n.value=r.catchValue({...n,error:{issues:t.issues.map((u)=>Se(u,i,ie()))},input:n.value}),n.issues=[],n.fallback=!0;return n}}),ua=E("$ZodNaN",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{if(typeof n.value!=="number"||!Number.isNaN(n.value))return n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n;return n}}),A_=E("$ZodPipe",(e,r)=>{K.init(e,r),W(e._zod,"values",()=>r.in._zod.values),W(e._zod,"optin",()=>r.in._zod.optin),W(e._zod,"optout",()=>r.out._zod.optout),W(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(n,i)=>{if(i.direction==="backward"){let u=r.out._zod.run(n,i);if(u instanceof Promise)return u.then((_)=>m_(_,r.in,i));return m_(u,r.in,i)}let t=r.in._zod.run(n,i);if(t instanceof Promise)return t.then((u)=>m_(u,r.out,i));return m_(t,r.out,i)}});ci=E("$ZodCodec",(e,r)=>{K.init(e,r),W(e._zod,"values",()=>r.in._zod.values),W(e._zod,"optin",()=>r.in._zod.optin),W(e._zod,"optout",()=>r.out._zod.optout),W(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(n,i)=>{if((i.direction||"forward")==="forward"){let u=r.in._zod.run(n,i);if(u instanceof Promise)return u.then((_)=>w_(_,r,i));return w_(u,r,i)}else{let u=r.out._zod.run(n,i);if(u instanceof Promise)return u.then((_)=>w_(_,r,i));return w_(u,r,i)}}});_a=E("$ZodPreprocess",(e,r)=>{A_.init(e,r)}),ca=E("$ZodReadonly",(e,r)=>{K.init(e,r),W(e._zod,"propValues",()=>r.innerType._zod.propValues),W(e._zod,"values",()=>r.innerType._zod.values),W(e._zod,"optin",()=>r.innerType?._zod?.optin),W(e._zod,"optout",()=>r.innerType?._zod?.optout),e._zod.parse=(n,i)=>{if(i.direction==="backward")return r.innerType._zod.run(n,i);let t=r.innerType._zod.run(n,i);if(t instanceof Promise)return t.then(jS);return jS(t)}});da=E("$ZodTemplateLiteral",(e,r)=>{K.init(e,r);let n=[];for(let i of r.parts)if(typeof i==="object"&&i!==null){if(!i._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...i._zod.traits].shift()}`);let t=i._zod.pattern instanceof RegExp?i._zod.pattern.source:i._zod.pattern;if(!t)throw Error(`Invalid template literal part: ${i._zod.traits}`);let u=t.startsWith("^")?1:0,_=t.endsWith("$")?t.length-1:t.length;n.push(t.slice(u,_))}else if(i===null||sg.has(typeof i))n.push(xe(`${i}`));else throw Error(`Invalid template literal part: ${i}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(i,t)=>{if(typeof i.value!=="string")return i.issues.push({input:i.value,inst:e,expected:"string",code:"invalid_type"}),i;if(e._zod.pattern.lastIndex=0,!e._zod.pattern.test(i.value))return i.issues.push({input:i.value,inst:e,code:"invalid_format",format:r.format??"template_literal",pattern:e._zod.pattern.source}),i;return i}}),ga=E("$ZodFunction",(e,r)=>{return K.init(e,r),e._def=r,e._zod.def=r,e.implement=(n)=>{if(typeof n!=="function")throw Error("implement() must be called with a function");return function(...i){let t=e._def.input?c_(e._def.input,i):i,u=Reflect.apply(n,this,t);if(e._def.output)return c_(e._def.output,u);return u}},e.implementAsync=(n)=>{if(typeof n!=="function")throw Error("implementAsync() must be called with a function");return async function(...i){let t=e._def.input?await d_(e._def.input,i):i,u=await Reflect.apply(n,this,t);if(e._def.output)return await d_(e._def.output,u);return u}},e._zod.parse=(n,i)=>{if(typeof n.value!=="function")return n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n;if(e._def.output&&e._def.output._zod.def.type==="promise")n.value=e.implementAsync(n.value);else n.value=e.implement(n.value);return n},e.input=(...n)=>{let i=e.constructor;if(Array.isArray(n[0]))return new i({type:"function",input:new R_({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output});return new i({type:"function",input:n[0],output:e._def.output})},e.output=(n)=>{return new e.constructor({type:"function",input:e._def.input,output:n})},e}),oa=E("$ZodPromise",(e,r)=>{K.init(e,r),e._zod.parse=(n,i)=>{return Promise.resolve(n.value).then((t)=>r.innerType._zod.run({value:t,issues:[]},i))}}),la=E("$ZodLazy",(e,r)=>{K.init(e,r),W(e._zod,"innerType",()=>{let n=r;if(!n._cachedInner)n._cachedInner=r.getter();return n._cachedInner}),W(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),W(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),W(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),W(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(n,i)=>{return e._zod.innerType._zod.run(n,i)}}),aa=E("$ZodCustom",(e,r)=>{Z.init(e,r),K.init(e,r),e._zod.parse=(n,i)=>{return n},e._zod.check=(n)=>{let i=n.value,t=r.fn(i);if(t instanceof Promise)return t.then((u)=>PS(u,n,i,e));PS(t,n,i,e);return}})});function $a(){return{localeError:GO()}}var GO=()=>{let e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function r(t){return e[t]??null}let n={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${t.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${c}`;return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${u}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${c}`}case"invalid_value":if(t.values.length===1)return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${I(t.values[0])}`;return`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${u} ${t.maximum.toString()} ${_.unit??"\u0639\u0646\u0635\u0631"}`;return`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${u} ${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${u} ${t.minimum.toString()} ${_.unit}`;return`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${u} ${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${t.prefix}"`;if(u.format==="ends_with")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${u.suffix}"`;if(u.format==="includes")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${u.includes}"`;if(u.format==="regex")return`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${u.pattern}`;return`${n[u.format]??t.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${t.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${t.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${t.keys.length>1?"\u0629":""}: ${N(t.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};var zS=R(()=>{j()});function va(){return{localeError:HO()}}var HO=()=>{let e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function r(t){return e[t]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${t.expected}, daxil olan ${c}`;return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${u}, daxil olan ${c}`}case"invalid_value":if(t.values.length===1)return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${I(t.values[0])}`;return`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${u}${t.maximum.toString()} ${_.unit??"element"}`;return`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${u}${t.minimum.toString()} ${_.unit}`;return`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Yanl\u0131\u015F m\u0259tn: "${u.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`;if(u.format==="ends_with")return`Yanl\u0131\u015F m\u0259tn: "${u.suffix}" il\u0259 bitm\u0259lidir`;if(u.format==="includes")return`Yanl\u0131\u015F m\u0259tn: "${u.includes}" daxil olmal\u0131d\u0131r`;if(u.format==="regex")return`Yanl\u0131\u015F m\u0259tn: ${u.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`;return`Yanl\u0131\u015F ${n[u.format]??t.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${t.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${t.keys.length>1?"lar":""}: ${N(t.keys,", ")}`;case"invalid_key":return`${t.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${t.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};var WS=R(()=>{j()});function MS(e,r,n,i){let t=Math.abs(e),u=t%10,_=t%100;if(_>=11&&_<=19)return i;if(u===1)return r;if(u>=2&&u<=4)return n;return i}function Ea(){return{localeError:BO()}}var BO=()=>{let e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function r(t){return e[t]??null}let n={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"},i={nan:"NaN",number:"\u043B\u0456\u043A",array:"\u043C\u0430\u0441\u0456\u045E"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${t.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${c}`;return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${u}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${c}`}case"invalid_value":if(t.values.length===1)return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${I(t.values[0])}`;return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_){let c=Number(t.maximum),d=MS(c,_.unit.one,_.unit.few,_.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${_.verb} ${u}${t.maximum.toString()} ${d}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_){let c=Number(t.minimum),d=MS(c,_.unit.one,_.unit.few,_.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${_.verb} ${u}${t.minimum.toString()} ${d}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${u.prefix}"`;if(u.format==="ends_with")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${u.suffix}"`;if(u.format==="includes")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${u.includes}"`;if(u.format==="regex")return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${u.pattern}`;return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${n[u.format]??t.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${t.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${N(t.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${t.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};var qS=R(()=>{j()});function ka(){return{localeError:CO()}}var CO=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function r(t){return e[t]??null}let n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${t.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${c}`;return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${u}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${c}`}case"invalid_value":if(t.values.length===1)return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${I(t.values[0])}`;return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${u}${t.maximum.toString()} ${_.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`;return`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${u}${t.minimum.toString()} ${_.unit}`;return`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${u.prefix}"`;if(u.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${u.suffix}"`;if(u.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${u.includes}"`;if(u.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${u.pattern}`;let _="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";if(u.format==="emoji")_="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E";if(u.format==="datetime")_="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E";if(u.format==="date")_="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430";if(u.format==="time")_="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E";if(u.format==="duration")_="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430";return`${_} ${n[u.format]??t.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${t.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u043E\u0432\u0435":""}: ${N(t.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${t.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};var GS=R(()=>{j()});function Ta(){return{localeError:YO()}}var YO=()=>{let e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function r(t){return e[t]??null}let n={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Tipus inv\xE0lid: s'esperava instanceof ${t.expected}, s'ha rebut ${c}`;return`Tipus inv\xE0lid: s'esperava ${u}, s'ha rebut ${c}`}case"invalid_value":if(t.values.length===1)return`Valor inv\xE0lid: s'esperava ${I(t.values[0])}`;return`Opci\xF3 inv\xE0lida: s'esperava una de ${N(t.values," o ")}`;case"too_big":{let u=t.inclusive?"com a m\xE0xim":"menys de",_=r(t.origin);if(_)return`Massa gran: s'esperava que ${t.origin??"el valor"} contingu\xE9s ${u} ${t.maximum.toString()} ${_.unit??"elements"}`;return`Massa gran: s'esperava que ${t.origin??"el valor"} fos ${u} ${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?"com a m\xEDnim":"m\xE9s de",_=r(t.origin);if(_)return`Massa petit: s'esperava que ${t.origin} contingu\xE9s ${u} ${t.minimum.toString()} ${_.unit}`;return`Massa petit: s'esperava que ${t.origin} fos ${u} ${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Format inv\xE0lid: ha de comen\xE7ar amb "${u.prefix}"`;if(u.format==="ends_with")return`Format inv\xE0lid: ha d'acabar amb "${u.suffix}"`;if(u.format==="includes")return`Format inv\xE0lid: ha d'incloure "${u.includes}"`;if(u.format==="regex")return`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${u.pattern}`;return`Format inv\xE0lid per a ${n[u.format]??t.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${t.divisor}`;case"unrecognized_keys":return`Clau${t.keys.length>1?"s":""} no reconeguda${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${t.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${t.origin}`;default:return"Entrada inv\xE0lida"}}};var HS=R(()=>{j()});function Sa(){return{localeError:VO()}}var VO=()=>{let e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function r(t){return e[t]??null}let n={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"},i={nan:"NaN",number:"\u010D\xEDslo",string:"\u0159et\u011Bzec",function:"funkce",array:"pole"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${t.expected}, obdr\u017Eeno ${c}`;return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${u}, obdr\u017Eeno ${c}`}case"invalid_value":if(t.values.length===1)return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${I(t.values[0])}`;return`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${u}${t.maximum.toString()} ${_.unit??"prvk\u016F"}`;return`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${u}${t.minimum.toString()} ${_.unit??"prvk\u016F"}`;return`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${u.prefix}"`;if(u.format==="ends_with")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${u.suffix}"`;if(u.format==="includes")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${u.includes}"`;if(u.format==="regex")return`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${u.pattern}`;return`Neplatn\xFD form\xE1t ${n[u.format]??t.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${t.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${N(t.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${t.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${t.origin}`;default:return"Neplatn\xFD vstup"}}};var BS=R(()=>{j()});function Na(){return{localeError:QO()}}var QO=()=>{let e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function r(t){return e[t]??null}let n={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},i={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Ugyldigt input: forventede instanceof ${t.expected}, fik ${c}`;return`Ugyldigt input: forventede ${u}, fik ${c}`}case"invalid_value":if(t.values.length===1)return`Ugyldig v\xE6rdi: forventede ${I(t.values[0])}`;return`Ugyldigt valg: forventede en af f\xF8lgende ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin),c=i[t.origin]??t.origin;if(_)return`For stor: forventede ${c??"value"} ${_.verb} ${u} ${t.maximum.toString()} ${_.unit??"elementer"}`;return`For stor: forventede ${c??"value"} havde ${u} ${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin),c=i[t.origin]??t.origin;if(_)return`For lille: forventede ${c} ${_.verb} ${u} ${t.minimum.toString()} ${_.unit}`;return`For lille: forventede ${c} havde ${u} ${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Ugyldig streng: skal starte med "${u.prefix}"`;if(u.format==="ends_with")return`Ugyldig streng: skal ende med "${u.suffix}"`;if(u.format==="includes")return`Ugyldig streng: skal indeholde "${u.includes}"`;if(u.format==="regex")return`Ugyldig streng: skal matche m\xF8nsteret ${u.pattern}`;return`Ugyldig ${n[u.format]??t.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${N(t.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${t.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${t.origin}`;default:return"Ugyldigt input"}}};var CS=R(()=>{j()});function ba(){return{localeError:ZO()}}var ZO=()=>{let e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function r(t){return e[t]??null}let n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},i={nan:"NaN",number:"Zahl",array:"Array"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Ung\xFCltige Eingabe: erwartet instanceof ${t.expected}, erhalten ${c}`;return`Ung\xFCltige Eingabe: erwartet ${u}, erhalten ${c}`}case"invalid_value":if(t.values.length===1)return`Ung\xFCltige Eingabe: erwartet ${I(t.values[0])}`;return`Ung\xFCltige Option: erwartet eine von ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${u}${t.maximum.toString()} ${_.unit??"Elemente"} hat`;return`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${u}${t.maximum.toString()} ist`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Zu klein: erwartet, dass ${t.origin} ${u}${t.minimum.toString()} ${_.unit} hat`;return`Zu klein: erwartet, dass ${t.origin} ${u}${t.minimum.toString()} ist`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Ung\xFCltiger String: muss mit "${u.prefix}" beginnen`;if(u.format==="ends_with")return`Ung\xFCltiger String: muss mit "${u.suffix}" enden`;if(u.format==="includes")return`Ung\xFCltiger String: muss "${u.includes}" enthalten`;if(u.format==="regex")return`Ung\xFCltiger String: muss dem Muster ${u.pattern} entsprechen`;return`Ung\xFCltig: ${n[u.format]??t.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${t.divisor} sein`;case"unrecognized_keys":return`${t.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${N(t.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${t.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${t.origin}`;default:return"Ung\xFCltige Eingabe"}}};var YS=R(()=>{j()});function Ia(){return{localeError:sO()}}var sO=()=>{let e={string:{unit:"\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},file:{unit:"bytes",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},array:{unit:"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},set:{unit:"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"},map:{unit:"\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2",verb:"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9"}};function r(t){return e[t]??null}let n={regex:"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2",email:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1",date:"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1",time:"ISO \u03CE\u03C1\u03B1",duration:"ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1",ipv4:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4",ipv6:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6",mac:"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC",cidrv4:"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4",cidrv6:"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6",base64:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64",base64url:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url",json_string:"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON",e164:"\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164",jwt:"JWT",template_literal:"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(typeof t.expected==="string"&&/^[A-Z]/.test(t.expected))return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${t.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${c}`;return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${u}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${c}`}case"invalid_value":if(t.values.length===1)return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${I(t.values[0])}`;return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${u}${t.maximum.toString()} ${_.unit??"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`;return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin??"\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${u}${t.minimum.toString()} ${_.unit}`;return`\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${t.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${u.prefix}"`;if(u.format==="ends_with")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${u.suffix}"`;if(u.format==="includes")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${u.includes}"`;if(u.format==="regex")return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${u.pattern}`;return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${n[u.format]??t.format}`}case"not_multiple_of":return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${t.divisor}`;case"unrecognized_keys":return`\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${t.keys.length>1?"\u03B1":"\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${t.keys.length>1?"\u03B9\u03AC":"\u03AF"}: ${N(t.keys,", ")}`;case"invalid_key":return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${t.origin}`;case"invalid_union":return"\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2";case"invalid_element":return`\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${t.origin}`;default:return"\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"}}};var VS=R(()=>{j()});function di(){return{localeError:pO()}}var pO=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function r(t){return e[t]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;return`Invalid input: expected ${u}, received ${c}`}case"invalid_value":if(t.values.length===1)return`Invalid input: expected ${I(t.values[0])}`;return`Invalid option: expected one of ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Too big: expected ${t.origin??"value"} to have ${u}${t.maximum.toString()} ${_.unit??"elements"}`;return`Too big: expected ${t.origin??"value"} to be ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Too small: expected ${t.origin} to have ${u}${t.minimum.toString()} ${_.unit}`;return`Too small: expected ${t.origin} to be ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Invalid string: must start with "${u.prefix}"`;if(u.format==="ends_with")return`Invalid string: must end with "${u.suffix}"`;if(u.format==="includes")return`Invalid string: must include "${u.includes}"`;if(u.format==="regex")return`Invalid string: must match pattern ${u.pattern}`;return`Invalid ${n[u.format]??t.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${t.divisor}`;case"unrecognized_keys":return`Unrecognized key${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Invalid key in ${t.origin}`;case"invalid_union":if(t.options&&Array.isArray(t.options)&&t.options.length>0)return`Invalid discriminator value. Expected ${t.options.map((_)=>`'${_}'`).join(" | ")}`;return"Invalid input";case"invalid_element":return`Invalid value in ${t.origin}`;default:return"Invalid input"}}};var ma=R(()=>{j()});function wa(){return{localeError:eR()}}var eR=()=>{let e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function r(t){return e[t]??null}let n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},i={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Nevalida enigo: atendi\u011Dis instanceof ${t.expected}, ricevi\u011Dis ${c}`;return`Nevalida enigo: atendi\u011Dis ${u}, ricevi\u011Dis ${c}`}case"invalid_value":if(t.values.length===1)return`Nevalida enigo: atendi\u011Dis ${I(t.values[0])}`;return`Nevalida opcio: atendi\u011Dis unu el ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${u}${t.maximum.toString()} ${_.unit??"elementojn"}`;return`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Tro malgranda: atendi\u011Dis ke ${t.origin} havu ${u}${t.minimum.toString()} ${_.unit}`;return`Tro malgranda: atendi\u011Dis ke ${t.origin} estu ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Nevalida karaktraro: devas komenci\u011Di per "${u.prefix}"`;if(u.format==="ends_with")return`Nevalida karaktraro: devas fini\u011Di per "${u.suffix}"`;if(u.format==="includes")return`Nevalida karaktraro: devas inkluzivi "${u.includes}"`;if(u.format==="regex")return`Nevalida karaktraro: devas kongrui kun la modelo ${u.pattern}`;return`Nevalida ${n[u.format]??t.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${t.divisor}`;case"unrecognized_keys":return`Nekonata${t.keys.length>1?"j":""} \u015Dlosilo${t.keys.length>1?"j":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${t.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${t.origin}`;default:return"Nevalida enigo"}}};var QS=R(()=>{j()});function Da(){return{localeError:rR()}}var rR=()=>{let e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function r(t){return e[t]??null}let n={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN",string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Entrada inv\xE1lida: se esperaba instanceof ${t.expected}, recibido ${c}`;return`Entrada inv\xE1lida: se esperaba ${u}, recibido ${c}`}case"invalid_value":if(t.values.length===1)return`Entrada inv\xE1lida: se esperaba ${I(t.values[0])}`;return`Opci\xF3n inv\xE1lida: se esperaba una de ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin),c=i[t.origin]??t.origin;if(_)return`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${u}${t.maximum.toString()} ${_.unit??"elementos"}`;return`Demasiado grande: se esperaba que ${c??"valor"} fuera ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin),c=i[t.origin]??t.origin;if(_)return`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${u}${t.minimum.toString()} ${_.unit}`;return`Demasiado peque\xF1o: se esperaba que ${c} fuera ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Cadena inv\xE1lida: debe comenzar con "${u.prefix}"`;if(u.format==="ends_with")return`Cadena inv\xE1lida: debe terminar en "${u.suffix}"`;if(u.format==="includes")return`Cadena inv\xE1lida: debe incluir "${u.includes}"`;if(u.format==="regex")return`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${u.pattern}`;return`Inv\xE1lido ${n[u.format]??t.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${t.divisor}`;case"unrecognized_keys":return`Llave${t.keys.length>1?"s":""} desconocida${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${i[t.origin]??t.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${i[t.origin]??t.origin}`;default:return"Entrada inv\xE1lida"}}};var ZS=R(()=>{j()});function Ua(){return{localeError:nR()}}var nR=()=>{let e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function r(t){return e[t]??null}let n={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"},i={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0622\u0631\u0627\u06CC\u0647"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${t.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${c} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${u} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${c} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`}case"invalid_value":if(t.values.length===1)return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${I(t.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`;return`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${N(t.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${u}${t.maximum.toString()} ${_.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`;return`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${u}${t.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${u}${t.minimum.toString()} ${_.unit} \u0628\u0627\u0634\u062F`;return`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${u}${t.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${u.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`;if(u.format==="ends_with")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${u.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`;if(u.format==="includes")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${u.includes}" \u0628\u0627\u0634\u062F`;if(u.format==="regex")return`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${u.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`;return`${n[u.format]??t.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${t.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${t.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${N(t.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${t.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${t.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};var sS=R(()=>{j()});function ha(){return{localeError:tR()}}var tR=()=>{let e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function r(t){return e[t]??null}let n={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Virheellinen tyyppi: odotettiin instanceof ${t.expected}, oli ${c}`;return`Virheellinen tyyppi: odotettiin ${u}, oli ${c}`}case"invalid_value":if(t.values.length===1)return`Virheellinen sy\xF6te: t\xE4ytyy olla ${I(t.values[0])}`;return`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Liian suuri: ${_.subject} t\xE4ytyy olla ${u}${t.maximum.toString()} ${_.unit}`.trim();return`Liian suuri: arvon t\xE4ytyy olla ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Liian pieni: ${_.subject} t\xE4ytyy olla ${u}${t.minimum.toString()} ${_.unit}`.trim();return`Liian pieni: arvon t\xE4ytyy olla ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${u.prefix}"`;if(u.format==="ends_with")return`Virheellinen sy\xF6te: t\xE4ytyy loppua "${u.suffix}"`;if(u.format==="includes")return`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${u.includes}"`;if(u.format==="regex")return`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${u.pattern}`;return`Virheellinen ${n[u.format]??t.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${t.divisor} monikerta`;case"unrecognized_keys":return`${t.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${N(t.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};var pS=R(()=>{j()});function Oa(){return{localeError:iR()}}var iR=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function r(t){return e[t]??null}let n={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},i={string:"cha\xEEne",number:"nombre",int:"entier",boolean:"bool\xE9en",bigint:"grand entier",symbol:"symbole",undefined:"ind\xE9fini",null:"null",never:"jamais",void:"vide",date:"date",array:"tableau",object:"objet",tuple:"tuple",record:"enregistrement",map:"carte",set:"ensemble",file:"fichier",nonoptional:"non-optionnel",nan:"NaN",function:"fonction"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Entr\xE9e invalide : instanceof ${t.expected} attendu, ${c} re\xE7u`;return`Entr\xE9e invalide : ${u} attendu, ${c} re\xE7u`}case"invalid_value":if(t.values.length===1)return`Entr\xE9e invalide : ${I(t.values[0])} attendu`;return`Option invalide : une valeur parmi ${N(t.values,"|")} attendue`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Trop grand : ${i[t.origin]??"valeur"} doit ${_.verb} ${u}${t.maximum.toString()} ${_.unit??"\xE9l\xE9ment(s)"}`;return`Trop grand : ${i[t.origin]??"valeur"} doit \xEAtre ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Trop petit : ${i[t.origin]??"valeur"} doit ${_.verb} ${u}${t.minimum.toString()} ${_.unit}`;return`Trop petit : ${i[t.origin]??"valeur"} doit \xEAtre ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Cha\xEEne invalide : doit commencer par "${u.prefix}"`;if(u.format==="ends_with")return`Cha\xEEne invalide : doit se terminer par "${u.suffix}"`;if(u.format==="includes")return`Cha\xEEne invalide : doit inclure "${u.includes}"`;if(u.format==="regex")return`Cha\xEEne invalide : doit correspondre au mod\xE8le ${u.pattern}`;return`${n[u.format]??t.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case"unrecognized_keys":return`Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${N(t.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${t.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${t.origin}`;default:return"Entr\xE9e invalide"}}};var eN=R(()=>{j()});function Ra(){return{localeError:uR()}}var uR=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function r(t){return e[t]??null}let n={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Entr\xE9e invalide : attendu instanceof ${t.expected}, re\xE7u ${c}`;return`Entr\xE9e invalide : attendu ${u}, re\xE7u ${c}`}case"invalid_value":if(t.values.length===1)return`Entr\xE9e invalide : attendu ${I(t.values[0])}`;return`Option invalide : attendu l'une des valeurs suivantes ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"\u2264":"<",_=r(t.origin);if(_)return`Trop grand : attendu que ${t.origin??"la valeur"} ait ${u}${t.maximum.toString()} ${_.unit}`;return`Trop grand : attendu que ${t.origin??"la valeur"} soit ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?"\u2265":">",_=r(t.origin);if(_)return`Trop petit : attendu que ${t.origin} ait ${u}${t.minimum.toString()} ${_.unit}`;return`Trop petit : attendu que ${t.origin} soit ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Cha\xEEne invalide : doit commencer par "${u.prefix}"`;if(u.format==="ends_with")return`Cha\xEEne invalide : doit se terminer par "${u.suffix}"`;if(u.format==="includes")return`Cha\xEEne invalide : doit inclure "${u.includes}"`;if(u.format==="regex")return`Cha\xEEne invalide : doit correspondre au motif ${u.pattern}`;return`${n[u.format]??t.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case"unrecognized_keys":return`Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${N(t.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${t.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${t.origin}`;default:return"Entr\xE9e invalide"}}};var rN=R(()=>{j()});function La(){return{localeError:_R()}}var _R=()=>{let e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},r={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=(g)=>g?e[g]:void 0,i=(g)=>{let f=n(g);if(f)return f.label;return g??e.unknown.label},t=(g)=>`\u05D4${i(g)}`,u=(g)=>{return(n(g)?.gender??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},_=(g)=>{if(!g)return null;return r[g]??null},c={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}},d={nan:"NaN"};return(g)=>{switch(g.code){case"invalid_type":{let f=g.expected,o=d[f??""]??i(f),a=m(g.input),l=d[a]??e[a]?.label??a;if(/^[A-Z]/.test(g.expected))return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${g.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${l}`;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${o}, \u05D4\u05EA\u05E7\u05D1\u05DC ${l}`}case"invalid_value":{if(g.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${I(g.values[0])}`;let f=g.values.map((l)=>I(l));if(g.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;let o=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${o}`}case"too_big":{let f=_(g.origin),o=t(g.origin??"value");if(g.origin==="string")return`${f?.longLabel??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${o} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${g.maximum.toString()} ${f?.unit??""} ${g.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(g.origin==="number"){let $=g.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${g.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${g.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${o} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${$}`}if(g.origin==="array"||g.origin==="set"){let $=g.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",v=g.inclusive?`${g.maximum} ${f?.unit??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${g.maximum} ${f?.unit??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${o} ${$} \u05DC\u05D4\u05DB\u05D9\u05DC ${v}`.trim()}let a=g.inclusive?"<=":"<",l=u(g.origin??"value");if(f?.unit)return`${f.longLabel} \u05DE\u05D3\u05D9: ${o} ${l} ${a}${g.maximum.toString()} ${f.unit}`;return`${f?.longLabel??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${o} ${l} ${a}${g.maximum.toString()}`}case"too_small":{let f=_(g.origin),o=t(g.origin??"value");if(g.origin==="string")return`${f?.shortLabel??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${o} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${g.minimum.toString()} ${f?.unit??""} ${g.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(g.origin==="number"){let $=g.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${g.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${g.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${o} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${$}`}if(g.origin==="array"||g.origin==="set"){let $=g.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(g.minimum===1&&g.inclusive){let k=g.origin==="set"?"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3":"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3";return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${o} ${$} \u05DC\u05D4\u05DB\u05D9\u05DC ${k}`}let v=g.inclusive?`${g.minimum} ${f?.unit??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${g.minimum} ${f?.unit??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${o} ${$} \u05DC\u05D4\u05DB\u05D9\u05DC ${v}`.trim()}let a=g.inclusive?">=":">",l=u(g.origin??"value");if(f?.unit)return`${f.shortLabel} \u05DE\u05D3\u05D9: ${o} ${l} ${a}${g.minimum.toString()} ${f.unit}`;return`${f?.shortLabel??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${o} ${l} ${a}${g.minimum.toString()}`}case"invalid_format":{let f=g;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;let o=c[f.format],a=o?.label??f.format,$=(o?.gender??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${a} \u05DC\u05D0 ${$}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${g.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${g.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${g.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${N(g.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${t(g.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};var nN=R(()=>{j()});function Aa(){return{localeError:cR()}}var cR=()=>{let e={string:{unit:"znakova",verb:"imati"},file:{unit:"bajtova",verb:"imati"},array:{unit:"stavki",verb:"imati"},set:{unit:"stavki",verb:"imati"}};function r(t){return e[t]??null}let n={regex:"unos",email:"email adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum i vrijeme",date:"ISO datum",time:"ISO vrijeme",duration:"ISO trajanje",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"IPv4 raspon",cidrv6:"IPv6 raspon",base64:"base64 kodirani tekst",base64url:"base64url kodirani tekst",json_string:"JSON tekst",e164:"E.164 broj",jwt:"JWT",template_literal:"unos"},i={nan:"NaN",string:"tekst",number:"broj",boolean:"boolean",array:"niz",object:"objekt",set:"skup",file:"datoteka",date:"datum",bigint:"bigint",symbol:"simbol",undefined:"undefined",null:"null",function:"funkcija",map:"mapa"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Neispravan unos: o\u010Dekuje se instanceof ${t.expected}, a primljeno je ${c}`;return`Neispravan unos: o\u010Dekuje se ${u}, a primljeno je ${c}`}case"invalid_value":if(t.values.length===1)return`Neispravna vrijednost: o\u010Dekivano ${I(t.values[0])}`;return`Neispravna opcija: o\u010Dekivano jedno od ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin),c=i[t.origin]??t.origin;if(_)return`Preveliko: o\u010Dekivano da ${c??"vrijednost"} ima ${u}${t.maximum.toString()} ${_.unit??"elemenata"}`;return`Preveliko: o\u010Dekivano da ${c??"vrijednost"} bude ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin),c=i[t.origin]??t.origin;if(_)return`Premalo: o\u010Dekivano da ${c} ima ${u}${t.minimum.toString()} ${_.unit}`;return`Premalo: o\u010Dekivano da ${c} bude ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Neispravan tekst: mora zapo\u010Dinjati s "${u.prefix}"`;if(u.format==="ends_with")return`Neispravan tekst: mora zavr\u0161avati s "${u.suffix}"`;if(u.format==="includes")return`Neispravan tekst: mora sadr\u017Eavati "${u.includes}"`;if(u.format==="regex")return`Neispravan tekst: mora odgovarati uzorku ${u.pattern}`;return`Neispravna ${n[u.format]??t.format}`}case"not_multiple_of":return`Neispravan broj: mora biti vi\u0161ekratnik od ${t.divisor}`;case"unrecognized_keys":return`Neprepoznat${t.keys.length>1?"i klju\u010Devi":" klju\u010D"}: ${N(t.keys,", ")}`;case"invalid_key":return`Neispravan klju\u010D u ${i[t.origin]??t.origin}`;case"invalid_union":return"Neispravan unos";case"invalid_element":return`Neispravna vrijednost u ${i[t.origin]??t.origin}`;default:return"Neispravan unos"}}};var tN=R(()=>{j()});function ya(){return{localeError:dR()}}var dR=()=>{let e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function r(t){return e[t]??null}let n={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"},i={nan:"NaN",number:"sz\xE1m",array:"t\xF6mb"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${t.expected}, a kapott \xE9rt\xE9k ${c}`;return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${u}, a kapott \xE9rt\xE9k ${c}`}case"invalid_value":if(t.values.length===1)return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${I(t.values[0])}`;return`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`T\xFAl nagy: ${t.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${u}${t.maximum.toString()} ${_.unit??"elem"}`;return`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${t.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} m\xE9rete t\xFAl kicsi ${u}${t.minimum.toString()} ${_.unit}`;return`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} t\xFAl kicsi ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\xC9rv\xE9nytelen string: "${u.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`;if(u.format==="ends_with")return`\xC9rv\xE9nytelen string: "${u.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`;if(u.format==="includes")return`\xC9rv\xE9nytelen string: "${u.includes}" \xE9rt\xE9ket kell tartalmaznia`;if(u.format==="regex")return`\xC9rv\xE9nytelen string: ${u.pattern} mint\xE1nak kell megfelelnie`;return`\xC9rv\xE9nytelen ${n[u.format]??t.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${t.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${t.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${t.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};var iN=R(()=>{j()});function uN(e,r,n){return Math.abs(e)===1?r:n}function gt(e){if(!e)return"";let r=["\u0561","\u0565","\u0568","\u056B","\u0578","\u0578\u0582","\u0585"],n=e[e.length-1];return e+(r.includes(n)?"\u0576":"\u0568")}function ja(){return{localeError:gR()}}var gR=()=>{let e={string:{unit:{one:"\u0576\u0577\u0561\u0576",many:"\u0576\u0577\u0561\u0576\u0576\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},file:{unit:{one:"\u0562\u0561\u0575\u0569",many:"\u0562\u0561\u0575\u0569\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},array:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},set:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"}};function r(t){return e[t]??null}let n={regex:"\u0574\u0578\u0582\u057F\u0584",email:"\u0567\u056C. \u0570\u0561\u057D\u0581\u0565",url:"URL",emoji:"\u0567\u0574\u0578\u057B\u056B",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574",date:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E",time:"ISO \u056A\u0561\u0574",duration:"ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576",ipv4:"IPv4 \u0570\u0561\u057D\u0581\u0565",ipv6:"IPv6 \u0570\u0561\u057D\u0581\u0565",cidrv4:"IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",cidrv6:"IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",base64:"base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",base64url:"base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",json_string:"JSON \u057F\u0578\u0572",e164:"E.164 \u0570\u0561\u0574\u0561\u0580",jwt:"JWT",template_literal:"\u0574\u0578\u0582\u057F\u0584"},i={nan:"NaN",number:"\u0569\u056B\u057E",array:"\u0566\u0561\u0576\u0563\u057E\u0561\u056E"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${t.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${c}`;return`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${u}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${c}`}case"invalid_value":if(t.values.length===1)return`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${I(t.values[1])}`;return`\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_){let c=Number(t.maximum),d=uN(c,_.unit.one,_.unit.many);return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${gt(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${u}${t.maximum.toString()} ${d}`}return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${gt(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_){let c=Number(t.minimum),d=uN(c,_.unit.one,_.unit.many);return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${gt(t.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${u}${t.minimum.toString()} ${d}`}return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${gt(t.origin)} \u056C\u056B\u0576\u056B ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${u.prefix}"-\u0578\u057E`;if(u.format==="ends_with")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${u.suffix}"-\u0578\u057E`;if(u.format==="includes")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${u.includes}"`;if(u.format==="regex")return`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${u.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`;return`\u054D\u056D\u0561\u056C ${n[u.format]??t.format}`}case"not_multiple_of":return`\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${t.divisor}-\u056B`;case"unrecognized_keys":return`\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${t.keys.length>1?"\u0576\u0565\u0580":""}. ${N(t.keys,", ")}`;case"invalid_key":return`\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${gt(t.origin)}-\u0578\u0582\u0574`;case"invalid_union":return"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574";case"invalid_element":return`\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${gt(t.origin)}-\u0578\u0582\u0574`;default:return"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"}}};var _N=R(()=>{j()});function Pa(){return{localeError:oR()}}var oR=()=>{let e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function r(t){return e[t]??null}let n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Input tidak valid: diharapkan instanceof ${t.expected}, diterima ${c}`;return`Input tidak valid: diharapkan ${u}, diterima ${c}`}case"invalid_value":if(t.values.length===1)return`Input tidak valid: diharapkan ${I(t.values[0])}`;return`Pilihan tidak valid: diharapkan salah satu dari ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Terlalu besar: diharapkan ${t.origin??"value"} memiliki ${u}${t.maximum.toString()} ${_.unit??"elemen"}`;return`Terlalu besar: diharapkan ${t.origin??"value"} menjadi ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Terlalu kecil: diharapkan ${t.origin} memiliki ${u}${t.minimum.toString()} ${_.unit}`;return`Terlalu kecil: diharapkan ${t.origin} menjadi ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`String tidak valid: harus dimulai dengan "${u.prefix}"`;if(u.format==="ends_with")return`String tidak valid: harus berakhir dengan "${u.suffix}"`;if(u.format==="includes")return`String tidak valid: harus menyertakan "${u.includes}"`;if(u.format==="regex")return`String tidak valid: harus sesuai pola ${u.pattern}`;return`${n[u.format]??t.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${t.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${t.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${t.origin}`;default:return"Input tidak valid"}}};var cN=R(()=>{j()});function xa(){return{localeError:lR()}}var lR=()=>{let e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function r(t){return e[t]??null}let n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"},i={nan:"NaN",number:"n\xFAmer",array:"fylki"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Rangt gildi: \xDE\xFA sl\xF3st inn ${c} \xFEar sem \xE1 a\xF0 vera instanceof ${t.expected}`;return`Rangt gildi: \xDE\xFA sl\xF3st inn ${c} \xFEar sem \xE1 a\xF0 vera ${u}`}case"invalid_value":if(t.values.length===1)return`Rangt gildi: gert r\xE1\xF0 fyrir ${I(t.values[0])}`;return`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} hafi ${u}${t.maximum.toString()} ${_.unit??"hluti"}`;return`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} s\xE9 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} hafi ${u}${t.minimum.toString()} ${_.unit}`;return`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} s\xE9 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${u.prefix}"`;if(u.format==="ends_with")return`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${u.suffix}"`;if(u.format==="includes")return`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${u.includes}"`;if(u.format==="regex")return`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${u.pattern}`;return`Rangt ${n[u.format]??t.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${t.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${t.keys.length>1?"ir lyklar":"ur lykill"}: ${N(t.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${t.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${t.origin}`;default:return"Rangt gildi"}}};var dN=R(()=>{j()});function Xa(){return{localeError:aR()}}var aR=()=>{let e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function r(t){return e[t]??null}let n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"numero",array:"vettore"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Input non valido: atteso instanceof ${t.expected}, ricevuto ${c}`;return`Input non valido: atteso ${u}, ricevuto ${c}`}case"invalid_value":if(t.values.length===1)return`Input non valido: atteso ${I(t.values[0])}`;return`Opzione non valida: atteso uno tra ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Troppo grande: ${t.origin??"valore"} deve avere ${u}${t.maximum.toString()} ${_.unit??"elementi"}`;return`Troppo grande: ${t.origin??"valore"} deve essere ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Troppo piccolo: ${t.origin} deve avere ${u}${t.minimum.toString()} ${_.unit}`;return`Troppo piccolo: ${t.origin} deve essere ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Stringa non valida: deve iniziare con "${u.prefix}"`;if(u.format==="ends_with")return`Stringa non valida: deve terminare con "${u.suffix}"`;if(u.format==="includes")return`Stringa non valida: deve includere "${u.includes}"`;if(u.format==="regex")return`Stringa non valida: deve corrispondere al pattern ${u.pattern}`;return`Input non valido: ${n[u.format]??t.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${t.divisor}`;case"unrecognized_keys":return`Chiav${t.keys.length>1?"i":"e"} non riconosciut${t.keys.length>1?"e":"a"}: ${N(t.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${t.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${t.origin}`;default:return"Input non valido"}}};var gN=R(()=>{j()});function Ka(){return{localeError:fR()}}var fR=()=>{let e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function r(t){return e[t]??null}let n={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"},i={nan:"NaN",number:"\u6570\u5024",array:"\u914D\u5217"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u7121\u52B9\u306A\u5165\u529B: instanceof ${t.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${c}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;return`\u7121\u52B9\u306A\u5165\u529B: ${u}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${c}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`}case"invalid_value":if(t.values.length===1)return`\u7121\u52B9\u306A\u5165\u529B: ${I(t.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`;return`\u7121\u52B9\u306A\u9078\u629E: ${N(t.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let u=t.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",_=r(t.origin);if(_)return`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${_.unit??"\u8981\u7D20"}${u}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;return`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${u}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let u=t.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",_=r(t.origin);if(_)return`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${_.unit}${u}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;return`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${u}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${u.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;if(u.format==="ends_with")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${u.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;if(u.format==="includes")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${u.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;if(u.format==="regex")return`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${u.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;return`\u7121\u52B9\u306A${n[u.format]??t.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${t.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${t.keys.length>1?"\u7FA4":""}: ${N(t.keys,"\u3001")}`;case"invalid_key":return`${t.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${t.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};var oN=R(()=>{j()});function Fa(){return{localeError:$R()}}var $R=()=>{let e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function r(t){return e[t]??null}let n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8",json_string:"JSON \u10D5\u10D4\u10DA\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"},i={nan:"NaN",number:"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8",string:"\u10D5\u10D4\u10DA\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0",array:"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${t.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${c}`;return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${u}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${c}`}case"invalid_value":if(t.values.length===1)return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${I(t.values[0])}`;return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${N(t.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${_.verb} ${u}${t.maximum.toString()} ${_.unit}`;return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} ${_.verb} ${u}${t.minimum.toString()} ${_.unit}`;return`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} \u10D8\u10E7\u10DD\u10E1 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${u.prefix}"-\u10D8\u10D7`;if(u.format==="ends_with")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${u.suffix}"-\u10D8\u10D7`;if(u.format==="includes")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${u.includes}"-\u10E1`;if(u.format==="regex")return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${u.pattern}`;return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${t.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${t.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${N(t.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${t.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${t.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};var lN=R(()=>{j()});function gi(){return{localeError:vR()}}var vR=()=>{let e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function r(t){return e[t]??null}let n={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"},i={nan:"NaN",number:"\u179B\u17C1\u1781",array:"\u17A2\u17B6\u179A\u17C1 (Array)",null:"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${t.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${c}`;return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${u} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${c}`}case"invalid_value":if(t.values.length===1)return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${I(t.values[0])}`;return`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${u} ${t.maximum.toString()} ${_.unit??"\u1792\u17B6\u178F\u17BB"}`;return`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${u} ${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${u} ${t.minimum.toString()} ${_.unit}`;return`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${u} ${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${u.prefix}"`;if(u.format==="ends_with")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${u.suffix}"`;if(u.format==="includes")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${u.includes}"`;if(u.format==="regex")return`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${u.pattern}`;return`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${t.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${N(t.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};var Ja=R(()=>{j()});function za(){return gi()}var aN=R(()=>{Ja()});function Wa(){return{localeError:ER()}}var ER=()=>{let e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function r(t){return e[t]??null}let n={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${t.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${c}\uC785\uB2C8\uB2E4`;return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${u}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${c}\uC785\uB2C8\uB2E4`}case"invalid_value":if(t.values.length===1)return`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${I(t.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`;return`\uC798\uBABB\uB41C \uC635\uC158: ${N(t.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let u=t.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",_=u==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=r(t.origin),d=c?.unit??"\uC694\uC18C";if(c)return`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()}${d} ${u}${_}`;return`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()} ${u}${_}`}case"too_small":{let u=t.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",_=u==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=r(t.origin),d=c?.unit??"\uC694\uC18C";if(c)return`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()}${d} ${u}${_}`;return`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()} ${u}${_}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${u.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`;if(u.format==="ends_with")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${u.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`;if(u.format==="includes")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${u.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`;if(u.format==="regex")return`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${u.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`;return`\uC798\uBABB\uB41C ${n[u.format]??t.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${t.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${N(t.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${t.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${t.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};var fN=R(()=>{j()});function $N(e){let r=Math.abs(e),n=r%10,i=r%100;if(i>=11&&i<=19||n===0)return"many";if(n===1)return"one";return"few"}function Ma(){return{localeError:kR()}}var oi=(e)=>{return e.charAt(0).toUpperCase()+e.slice(1)},kR=()=>{let e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function r(t,u,_,c){let d=e[t]??null;if(d===null)return d;return{unit:d.unit[u],verb:d.verb[c][_?"inclusive":"notInclusive"]}}let n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"},i={nan:"NaN",number:"skai\u010Dius",bigint:"sveikasis skai\u010Dius",string:"eilut\u0117",boolean:"login\u0117 reik\u0161m\u0117",undefined:"neapibr\u0117\u017Eta reik\u0161m\u0117",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulin\u0117 reik\u0161m\u0117"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Gautas tipas ${c}, o tik\u0117tasi - instanceof ${t.expected}`;return`Gautas tipas ${c}, o tik\u0117tasi - ${u}`}case"invalid_value":if(t.values.length===1)return`Privalo b\u016Bti ${I(t.values[0])}`;return`Privalo b\u016Bti vienas i\u0161 ${N(t.values,"|")} pasirinkim\u0173`;case"too_big":{let u=i[t.origin]??t.origin,_=r(t.origin,$N(Number(t.maximum)),t.inclusive??!1,"smaller");if(_?.verb)return`${oi(u??t.origin??"reik\u0161m\u0117")} ${_.verb} ${t.maximum.toString()} ${_.unit??"element\u0173"}`;let c=t.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${oi(u??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${t.maximum.toString()} ${_?.unit}`}case"too_small":{let u=i[t.origin]??t.origin,_=r(t.origin,$N(Number(t.minimum)),t.inclusive??!1,"bigger");if(_?.verb)return`${oi(u??t.origin??"reik\u0161m\u0117")} ${_.verb} ${t.minimum.toString()} ${_.unit??"element\u0173"}`;let c=t.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${oi(u??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${c} ${t.minimum.toString()} ${_?.unit}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Eilut\u0117 privalo prasid\u0117ti "${u.prefix}"`;if(u.format==="ends_with")return`Eilut\u0117 privalo pasibaigti "${u.suffix}"`;if(u.format==="includes")return`Eilut\u0117 privalo \u012Ftraukti "${u.includes}"`;if(u.format==="regex")return`Eilut\u0117 privalo atitikti ${u.pattern}`;return`Neteisingas ${n[u.format]??t.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${t.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${t.keys.length>1?"i":"as"} rakt${t.keys.length>1?"ai":"as"}: ${N(t.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{let u=i[t.origin]??t.origin;return`${oi(u??t.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};var vN=R(()=>{j()});function qa(){return{localeError:TR()}}var TR=()=>{let e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function r(t){return e[t]??null}let n={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"},i={nan:"NaN",number:"\u0431\u0440\u043E\u0458",array:"\u043D\u0438\u0437\u0430"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${t.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${c}`;return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${u}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${c}`}case"invalid_value":if(t.values.length===1)return`Invalid input: expected ${I(t.values[0])}`;return`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${u}${t.maximum.toString()} ${_.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`;return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0438\u043C\u0430 ${u}${t.minimum.toString()} ${_.unit}`;return`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${u.prefix}"`;if(u.format==="ends_with")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${u.suffix}"`;if(u.format==="includes")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${u.includes}"`;if(u.format==="regex")return`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${u.pattern}`;return`Invalid ${n[u.format]??t.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${N(t.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${t.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${t.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};var EN=R(()=>{j()});function Ga(){return{localeError:SR()}}var SR=()=>{let e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function r(t){return e[t]??null}let n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"nombor"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Input tidak sah: dijangka instanceof ${t.expected}, diterima ${c}`;return`Input tidak sah: dijangka ${u}, diterima ${c}`}case"invalid_value":if(t.values.length===1)return`Input tidak sah: dijangka ${I(t.values[0])}`;return`Pilihan tidak sah: dijangka salah satu daripada ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Terlalu besar: dijangka ${t.origin??"nilai"} ${_.verb} ${u}${t.maximum.toString()} ${_.unit??"elemen"}`;return`Terlalu besar: dijangka ${t.origin??"nilai"} adalah ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Terlalu kecil: dijangka ${t.origin} ${_.verb} ${u}${t.minimum.toString()} ${_.unit}`;return`Terlalu kecil: dijangka ${t.origin} adalah ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`String tidak sah: mesti bermula dengan "${u.prefix}"`;if(u.format==="ends_with")return`String tidak sah: mesti berakhir dengan "${u.suffix}"`;if(u.format==="includes")return`String tidak sah: mesti mengandungi "${u.includes}"`;if(u.format==="regex")return`String tidak sah: mesti sepadan dengan corak ${u.pattern}`;return`${n[u.format]??t.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${t.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${N(t.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${t.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${t.origin}`;default:return"Input tidak sah"}}};var kN=R(()=>{j()});function Ha(){return{localeError:NR()}}var NR=()=>{let e={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function r(t){return e[t]??null}let n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},i={nan:"NaN",number:"getal"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Ongeldige invoer: verwacht instanceof ${t.expected}, ontving ${c}`;return`Ongeldige invoer: verwacht ${u}, ontving ${c}`}case"invalid_value":if(t.values.length===1)return`Ongeldige invoer: verwacht ${I(t.values[0])}`;return`Ongeldige optie: verwacht \xE9\xE9n van ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin),c=t.origin==="date"?"laat":t.origin==="string"?"lang":"groot";if(_)return`Te ${c}: verwacht dat ${t.origin??"waarde"} ${u}${t.maximum.toString()} ${_.unit??"elementen"} ${_.verb}`;return`Te ${c}: verwacht dat ${t.origin??"waarde"} ${u}${t.maximum.toString()} is`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin),c=t.origin==="date"?"vroeg":t.origin==="string"?"kort":"klein";if(_)return`Te ${c}: verwacht dat ${t.origin} ${u}${t.minimum.toString()} ${_.unit} ${_.verb}`;return`Te ${c}: verwacht dat ${t.origin} ${u}${t.minimum.toString()} is`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Ongeldige tekst: moet met "${u.prefix}" beginnen`;if(u.format==="ends_with")return`Ongeldige tekst: moet op "${u.suffix}" eindigen`;if(u.format==="includes")return`Ongeldige tekst: moet "${u.includes}" bevatten`;if(u.format==="regex")return`Ongeldige tekst: moet overeenkomen met patroon ${u.pattern}`;return`Ongeldig: ${n[u.format]??t.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${t.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${t.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${t.origin}`;default:return"Ongeldige invoer"}}};var TN=R(()=>{j()});function Ba(){return{localeError:bR()}}var bR=()=>{let e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function r(t){return e[t]??null}let n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"tall",array:"liste"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Ugyldig input: forventet instanceof ${t.expected}, fikk ${c}`;return`Ugyldig input: forventet ${u}, fikk ${c}`}case"invalid_value":if(t.values.length===1)return`Ugyldig verdi: forventet ${I(t.values[0])}`;return`Ugyldig valg: forventet en av ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${u}${t.maximum.toString()} ${_.unit??"elementer"}`;return`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`For lite(n): forventet ${t.origin} til \xE5 ha ${u}${t.minimum.toString()} ${_.unit}`;return`For lite(n): forventet ${t.origin} til \xE5 ha ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Ugyldig streng: m\xE5 starte med "${u.prefix}"`;if(u.format==="ends_with")return`Ugyldig streng: m\xE5 ende med "${u.suffix}"`;if(u.format==="includes")return`Ugyldig streng: m\xE5 inneholde "${u.includes}"`;if(u.format==="regex")return`Ugyldig streng: m\xE5 matche m\xF8nsteret ${u.pattern}`;return`Ugyldig ${n[u.format]??t.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${N(t.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${t.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${t.origin}`;default:return"Ugyldig input"}}};var SN=R(()=>{j()});function Ca(){return{localeError:IR()}}var IR=()=>{let e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function r(t){return e[t]??null}let n={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"},i={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`F\xE2sit giren: umulan instanceof ${t.expected}, al\u0131nan ${c}`;return`F\xE2sit giren: umulan ${u}, al\u0131nan ${c}`}case"invalid_value":if(t.values.length===1)return`F\xE2sit giren: umulan ${I(t.values[0])}`;return`F\xE2sit tercih: m\xFBteberler ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${u}${t.maximum.toString()} ${_.unit??"elements"} sahip olmal\u0131yd\u0131.`;return`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${u}${t.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${u}${t.minimum.toString()} ${_.unit} sahip olmal\u0131yd\u0131.`;return`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${u}${t.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`F\xE2sit metin: "${u.prefix}" ile ba\u015Flamal\u0131.`;if(u.format==="ends_with")return`F\xE2sit metin: "${u.suffix}" ile bitmeli.`;if(u.format==="includes")return`F\xE2sit metin: "${u.includes}" ihtiv\xE2 etmeli.`;if(u.format==="regex")return`F\xE2sit metin: ${u.pattern} nak\u015F\u0131na uymal\u0131.`;return`F\xE2sit ${n[u.format]??t.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${t.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`${t.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${t.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};var NN=R(()=>{j()});function Ya(){return{localeError:mR()}}var mR=()=>{let e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function r(t){return e[t]??null}let n={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"},i={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0627\u0631\u06D0"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${t.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${c} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${u} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${c} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`}case"invalid_value":if(t.values.length===1)return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${I(t.values[0])} \u0648\u0627\u06CC`;return`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${N(t.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${u}${t.maximum.toString()} ${_.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`;return`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${u}${t.maximum.toString()} \u0648\u064A`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${u}${t.minimum.toString()} ${_.unit} \u0648\u0644\u0631\u064A`;return`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${u}${t.minimum.toString()} \u0648\u064A`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${u.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`;if(u.format==="ends_with")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${u.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`;if(u.format==="includes")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${u.includes}" \u0648\u0644\u0631\u064A`;if(u.format==="regex")return`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${u.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`;return`${n[u.format]??t.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${t.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${t.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${N(t.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${t.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${t.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};var bN=R(()=>{j()});function Va(){return{localeError:wR()}}var wR=()=>{let e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function r(t){return e[t]??null}let n={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"},i={nan:"NaN",number:"liczba",array:"tablica"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${t.expected}, otrzymano ${c}`;return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${u}, otrzymano ${c}`}case"invalid_value":if(t.values.length===1)return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${I(t.values[0])}`;return`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${u}${t.maximum.toString()} ${_.unit??"element\xF3w"}`;return`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${u}${t.minimum.toString()} ${_.unit??"element\xF3w"}`;return`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${u.prefix}"`;if(u.format==="ends_with")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${u.suffix}"`;if(u.format==="includes")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${u.includes}"`;if(u.format==="regex")return`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${u.pattern}`;return`Nieprawid\u0142ow(y/a/e) ${n[u.format]??t.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${t.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${t.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${t.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};var IN=R(()=>{j()});function Qa(){return{localeError:DR()}}var DR=()=>{let e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function r(t){return e[t]??null}let n={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN",number:"n\xFAmero",null:"nulo"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Tipo inv\xE1lido: esperado instanceof ${t.expected}, recebido ${c}`;return`Tipo inv\xE1lido: esperado ${u}, recebido ${c}`}case"invalid_value":if(t.values.length===1)return`Entrada inv\xE1lida: esperado ${I(t.values[0])}`;return`Op\xE7\xE3o inv\xE1lida: esperada uma das ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Muito grande: esperado que ${t.origin??"valor"} tivesse ${u}${t.maximum.toString()} ${_.unit??"elementos"}`;return`Muito grande: esperado que ${t.origin??"valor"} fosse ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Muito pequeno: esperado que ${t.origin} tivesse ${u}${t.minimum.toString()} ${_.unit}`;return`Muito pequeno: esperado que ${t.origin} fosse ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Texto inv\xE1lido: deve come\xE7ar com "${u.prefix}"`;if(u.format==="ends_with")return`Texto inv\xE1lido: deve terminar com "${u.suffix}"`;if(u.format==="includes")return`Texto inv\xE1lido: deve incluir "${u.includes}"`;if(u.format==="regex")return`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${u.pattern}`;return`${n[u.format]??t.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${t.divisor}`;case"unrecognized_keys":return`Chave${t.keys.length>1?"s":""} desconhecida${t.keys.length>1?"s":""}: ${N(t.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${t.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${t.origin}`;default:return"Campo inv\xE1lido"}}};var mN=R(()=>{j()});function Za(){return{localeError:UR()}}var UR=()=>{let e={string:{unit:"caractere",verb:"s\u0103 aib\u0103"},file:{unit:"octe\u021Bi",verb:"s\u0103 aib\u0103"},array:{unit:"elemente",verb:"s\u0103 aib\u0103"},set:{unit:"elemente",verb:"s\u0103 aib\u0103"},map:{unit:"intr\u0103ri",verb:"s\u0103 aib\u0103"}};function r(t){return e[t]??null}let n={regex:"intrare",email:"adres\u0103 de email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"dat\u0103 \u0219i or\u0103 ISO",date:"dat\u0103 ISO",time:"or\u0103 ISO",duration:"durat\u0103 ISO",ipv4:"adres\u0103 IPv4",ipv6:"adres\u0103 IPv6",mac:"adres\u0103 MAC",cidrv4:"interval IPv4",cidrv6:"interval IPv6",base64:"\u0219ir codat base64",base64url:"\u0219ir codat base64url",json_string:"\u0219ir JSON",e164:"num\u0103r E.164",jwt:"JWT",template_literal:"intrare"},i={nan:"NaN",string:"\u0219ir",number:"num\u0103r",boolean:"boolean",function:"func\u021Bie",array:"matrice",object:"obiect",undefined:"nedefinit",symbol:"simbol",bigint:"num\u0103r mare",void:"void",never:"never",map:"hart\u0103",set:"set"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;return`Intrare invalid\u0103: a\u0219teptat ${u}, primit ${c}`}case"invalid_value":if(t.values.length===1)return`Intrare invalid\u0103: a\u0219teptat ${I(t.values[0])}`;return`Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Prea mare: a\u0219teptat ca ${t.origin??"valoarea"} ${_.verb} ${u}${t.maximum.toString()} ${_.unit??"elemente"}`;return`Prea mare: a\u0219teptat ca ${t.origin??"valoarea"} s\u0103 fie ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Prea mic: a\u0219teptat ca ${t.origin} ${_.verb} ${u}${t.minimum.toString()} ${_.unit}`;return`Prea mic: a\u0219teptat ca ${t.origin} s\u0103 fie ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${u.prefix}"`;if(u.format==="ends_with")return`\u0218ir invalid: trebuie s\u0103 se termine cu "${u.suffix}"`;if(u.format==="includes")return`\u0218ir invalid: trebuie s\u0103 includ\u0103 "${u.includes}"`;if(u.format==="regex")return`\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${u.pattern}`;return`Format invalid: ${n[u.format]??t.format}`}case"not_multiple_of":return`Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${t.divisor}`;case"unrecognized_keys":return`Chei nerecunoscute: ${N(t.keys,", ")}`;case"invalid_key":return`Cheie invalid\u0103 \xEEn ${t.origin}`;case"invalid_union":return"Intrare invalid\u0103";case"invalid_element":return`Valoare invalid\u0103 \xEEn ${t.origin}`;default:return"Intrare invalid\u0103"}}};var wN=R(()=>{j()});function DN(e,r,n,i){let t=Math.abs(e),u=t%10,_=t%100;if(_>=11&&_<=19)return i;if(u===1)return r;if(u>=2&&u<=4)return n;return i}function sa(){return{localeError:hR()}}var hR=()=>{let e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function r(t){return e[t]??null}let n={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0441\u0438\u0432"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${t.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${c}`;return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${u}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${c}`}case"invalid_value":if(t.values.length===1)return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${I(t.values[0])}`;return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_){let c=Number(t.maximum),d=DN(c,_.unit.one,_.unit.few,_.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${u}${t.maximum.toString()} ${d}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_){let c=Number(t.minimum),d=DN(c,_.unit.one,_.unit.few,_.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${u}${t.minimum.toString()} ${d}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin} \u0431\u0443\u0434\u0435\u0442 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${u.prefix}"`;if(u.format==="ends_with")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${u.suffix}"`;if(u.format==="includes")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${u.includes}"`;if(u.format==="regex")return`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${u.pattern}`;return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${t.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0438":""}: ${N(t.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${t.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};var UN=R(()=>{j()});function pa(){return{localeError:OR()}}var OR=()=>{let e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function r(t){return e[t]??null}let n={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"},i={nan:"NaN",number:"\u0161tevilo",array:"tabela"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Neveljaven vnos: pri\u010Dakovano instanceof ${t.expected}, prejeto ${c}`;return`Neveljaven vnos: pri\u010Dakovano ${u}, prejeto ${c}`}case"invalid_value":if(t.values.length===1)return`Neveljaven vnos: pri\u010Dakovano ${I(t.values[0])}`;return`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} imelo ${u}${t.maximum.toString()} ${_.unit??"elementov"}`;return`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Premajhno: pri\u010Dakovano, da bo ${t.origin} imelo ${u}${t.minimum.toString()} ${_.unit}`;return`Premajhno: pri\u010Dakovano, da bo ${t.origin} ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Neveljaven niz: mora se za\u010Deti z "${u.prefix}"`;if(u.format==="ends_with")return`Neveljaven niz: mora se kon\u010Dati z "${u.suffix}"`;if(u.format==="includes")return`Neveljaven niz: mora vsebovati "${u.includes}"`;if(u.format==="regex")return`Neveljaven niz: mora ustrezati vzorcu ${u.pattern}`;return`Neveljaven ${n[u.format]??t.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${t.divisor}`;case"unrecognized_keys":return`Neprepoznan${t.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${N(t.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${t.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${t.origin}`;default:return"Neveljaven vnos"}}};var hN=R(()=>{j()});function ef(){return{localeError:RR()}}var RR=()=>{let e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function r(t){return e[t]??null}let n={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},i={nan:"NaN",number:"antal",array:"lista"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${t.expected}, fick ${c}`;return`Ogiltig inmatning: f\xF6rv\xE4ntat ${u}, fick ${c}`}case"invalid_value":if(t.values.length===1)return`Ogiltig inmatning: f\xF6rv\xE4ntat ${I(t.values[0])}`;return`Ogiltigt val: f\xF6rv\xE4ntade en av ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`F\xF6r stor(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${u}${t.maximum.toString()} ${_.unit??"element"}`;return`F\xF6r stor(t): f\xF6rv\xE4ntat ${t.origin??"v\xE4rdet"} att ha ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${u}${t.minimum.toString()} ${_.unit}`;return`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${u.prefix}"`;if(u.format==="ends_with")return`Ogiltig str\xE4ng: m\xE5ste sluta med "${u.suffix}"`;if(u.format==="includes")return`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${u.includes}"`;if(u.format==="regex")return`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${u.pattern}"`;return`Ogiltig(t) ${n[u.format]??t.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${N(t.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${t.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${t.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};var ON=R(()=>{j()});function rf(){return{localeError:LR()}}var LR=()=>{let e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function r(t){return e[t]??null}let n={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"\u0B8E\u0BA3\u0BCD",array:"\u0B85\u0BA3\u0BBF",null:"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${t.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${c}`;return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${u}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${c}`}case"invalid_value":if(t.values.length===1)return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${I(t.values[0])}`;return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${N(t.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${u}${t.maximum.toString()} ${_.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;return`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${u}${t.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${u}${t.minimum.toString()} ${_.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;return`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${u}${t.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${u.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;if(u.format==="ends_with")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${u.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;if(u.format==="includes")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${u.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;if(u.format==="regex")return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${u.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${t.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${t.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${N(t.keys,", ")}`;case"invalid_key":return`${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};var RN=R(()=>{j()});function nf(){return{localeError:AR()}}var AR=()=>{let e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function r(t){return e[t]??null}let n={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"},i={nan:"NaN",number:"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02",array:"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)",null:"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${t.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${c}`;return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${u} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${c}`}case"invalid_value":if(t.values.length===1)return`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${I(t.values[0])}`;return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",_=r(t.origin);if(_)return`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${u} ${t.maximum.toString()} ${_.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`;return`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${u} ${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",_=r(t.origin);if(_)return`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${u} ${t.minimum.toString()} ${_.unit}`;return`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${u} ${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${u.prefix}"`;if(u.format==="ends_with")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${u.suffix}"`;if(u.format==="includes")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${u.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`;if(u.format==="regex")return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${u.pattern}`;return`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${n[u.format]??t.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${t.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${N(t.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};var LN=R(()=>{j()});function tf(){return{localeError:yR()}}var yR=()=>{let e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function r(t){return e[t]??null}let n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Ge\xE7ersiz de\u011Fer: beklenen instanceof ${t.expected}, al\u0131nan ${c}`;return`Ge\xE7ersiz de\u011Fer: beklenen ${u}, al\u0131nan ${c}`}case"invalid_value":if(t.values.length===1)return`Ge\xE7ersiz de\u011Fer: beklenen ${I(t.values[0])}`;return`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${u}${t.maximum.toString()} ${_.unit??"\xF6\u011Fe"}`;return`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${u}${t.minimum.toString()} ${_.unit}`;return`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Ge\xE7ersiz metin: "${u.prefix}" ile ba\u015Flamal\u0131`;if(u.format==="ends_with")return`Ge\xE7ersiz metin: "${u.suffix}" ile bitmeli`;if(u.format==="includes")return`Ge\xE7ersiz metin: "${u.includes}" i\xE7ermeli`;if(u.format==="regex")return`Ge\xE7ersiz metin: ${u.pattern} desenine uymal\u0131`;return`Ge\xE7ersiz ${n[u.format]??t.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${t.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${t.keys.length>1?"lar":""}: ${N(t.keys,", ")}`;case"invalid_key":return`${t.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${t.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};var AN=R(()=>{j()});function li(){return{localeError:jR()}}var jR=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function r(t){return e[t]??null}let n={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${t.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${c}`;return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${u}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${c}`}case"invalid_value":if(t.values.length===1)return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${I(t.values[0])}`;return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${_.verb} ${u}${t.maximum.toString()} ${_.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`;return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} ${_.verb} ${u}${t.minimum.toString()} ${_.unit}`;return`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} \u0431\u0443\u0434\u0435 ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${u.prefix}"`;if(u.format==="ends_with")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${u.suffix}"`;if(u.format==="includes")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${u.includes}"`;if(u.format==="regex")return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${u.pattern}`;return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0456":""}: ${N(t.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${t.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};var uf=R(()=>{j()});function _f(){return li()}var yN=R(()=>{uf()});function cf(){return{localeError:PR()}}var PR=()=>{let e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function r(t){return e[t]??null}let n={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"},i={nan:"NaN",number:"\u0646\u0645\u0628\u0631",array:"\u0622\u0631\u06D2",null:"\u0646\u0644"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${t.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${c} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${u} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${c} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`}case"invalid_value":if(t.values.length===1)return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${I(t.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;return`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${N(t.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${u}${t.maximum.toString()} ${_.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;return`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${u}${t.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u06D2 ${u}${t.minimum.toString()} ${_.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;return`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u0627 ${u}${t.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${u.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;if(u.format==="ends_with")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${u.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;if(u.format==="includes")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${u.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;if(u.format==="regex")return`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${u.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;return`\u063A\u0644\u0637 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${t.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${t.keys.length>1?"\u0632":""}: ${N(t.keys,"\u060C ")}`;case"invalid_key":return`${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};var jN=R(()=>{j()});function df(){return{localeError:xR()}}var xR=()=>{let e={string:{unit:"belgi",verb:"bo\u2018lishi kerak"},file:{unit:"bayt",verb:"bo\u2018lishi kerak"},array:{unit:"element",verb:"bo\u2018lishi kerak"},set:{unit:"element",verb:"bo\u2018lishi kerak"},map:{unit:"yozuv",verb:"bo\u2018lishi kerak"}};function r(t){return e[t]??null}let n={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},i={nan:"NaN",number:"raqam",array:"massiv"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`Noto\u2018g\u2018ri kirish: kutilgan instanceof ${t.expected}, qabul qilingan ${c}`;return`Noto\u2018g\u2018ri kirish: kutilgan ${u}, qabul qilingan ${c}`}case"invalid_value":if(t.values.length===1)return`Noto\u2018g\u2018ri kirish: kutilgan ${I(t.values[0])}`;return`Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Juda katta: kutilgan ${t.origin??"qiymat"} ${u}${t.maximum.toString()} ${_.unit} ${_.verb}`;return`Juda katta: kutilgan ${t.origin??"qiymat"} ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Juda kichik: kutilgan ${t.origin} ${u}${t.minimum.toString()} ${_.unit} ${_.verb}`;return`Juda kichik: kutilgan ${t.origin} ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Noto\u2018g\u2018ri satr: "${u.prefix}" bilan boshlanishi kerak`;if(u.format==="ends_with")return`Noto\u2018g\u2018ri satr: "${u.suffix}" bilan tugashi kerak`;if(u.format==="includes")return`Noto\u2018g\u2018ri satr: "${u.includes}" ni o\u2018z ichiga olishi kerak`;if(u.format==="regex")return`Noto\u2018g\u2018ri satr: ${u.pattern} shabloniga mos kelishi kerak`;return`Noto\u2018g\u2018ri ${n[u.format]??t.format}`}case"not_multiple_of":return`Noto\u2018g\u2018ri raqam: ${t.divisor} ning karralisi bo\u2018lishi kerak`;case"unrecognized_keys":return`Noma\u2019lum kalit${t.keys.length>1?"lar":""}: ${N(t.keys,", ")}`;case"invalid_key":return`${t.origin} dagi kalit noto\u2018g\u2018ri`;case"invalid_union":return"Noto\u2018g\u2018ri kirish";case"invalid_element":return`${t.origin} da noto\u2018g\u2018ri qiymat`;default:return"Noto\u2018g\u2018ri kirish"}}};var PN=R(()=>{j()});function gf(){return{localeError:XR()}}var XR=()=>{let e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function r(t){return e[t]??null}let n={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"},i={nan:"NaN",number:"s\u1ED1",array:"m\u1EA3ng"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${t.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${c}`;return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${u}, nh\u1EADn \u0111\u01B0\u1EE3c ${c}`}case"invalid_value":if(t.values.length===1)return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${I(t.values[0])}`;return`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${_.verb} ${u}${t.maximum.toString()} ${_.unit??"ph\u1EA7n t\u1EED"}`;return`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${_.verb} ${u}${t.minimum.toString()} ${_.unit}`;return`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${u.prefix}"`;if(u.format==="ends_with")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${u.suffix}"`;if(u.format==="includes")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${u.includes}"`;if(u.format==="regex")return`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${u.pattern}`;return`${n[u.format]??t.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${t.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${N(t.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};var xN=R(()=>{j()});function of(){return{localeError:KR()}}var KR=()=>{let e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function r(t){return e[t]??null}let n={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"},i={nan:"NaN",number:"\u6570\u5B57",array:"\u6570\u7EC4",null:"\u7A7A\u503C(null)"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${t.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${c}`;return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${u}\uFF0C\u5B9E\u9645\u63A5\u6536 ${c}`}case"invalid_value":if(t.values.length===1)return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${I(t.values[0])}`;return`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${u}${t.maximum.toString()} ${_.unit??"\u4E2A\u5143\u7D20"}`;return`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${u}${t.minimum.toString()} ${_.unit}`;return`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${u.prefix}" \u5F00\u5934`;if(u.format==="ends_with")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${u.suffix}" \u7ED3\u5C3E`;if(u.format==="includes")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${u.includes}"`;if(u.format==="regex")return`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${u.pattern}`;return`\u65E0\u6548${n[u.format]??t.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${t.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${N(t.keys,", ")}`;case"invalid_key":return`${t.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${t.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};var XN=R(()=>{j()});function lf(){return{localeError:FR()}}var FR=()=>{let e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function r(t){return e[t]??null}let n={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"},i={nan:"NaN"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${t.expected}\uFF0C\u4F46\u6536\u5230 ${c}`;return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${u}\uFF0C\u4F46\u6536\u5230 ${c}`}case"invalid_value":if(t.values.length===1)return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${I(t.values[0])}`;return`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${u}${t.maximum.toString()} ${_.unit??"\u500B\u5143\u7D20"}`;return`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${u}${t.maximum.toString()}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${u}${t.minimum.toString()} ${_.unit}`;return`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${u}${t.minimum.toString()}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${u.prefix}" \u958B\u982D`;if(u.format==="ends_with")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${u.suffix}" \u7D50\u5C3E`;if(u.format==="includes")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${u.includes}"`;if(u.format==="regex")return`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${u.pattern}`;return`\u7121\u6548\u7684 ${n[u.format]??t.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${t.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${t.keys.length>1?"\u5011":""}\uFF1A${N(t.keys,"\u3001")}`;case"invalid_key":return`${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};var KN=R(()=>{j()});function af(){return{localeError:JR()}}var JR=()=>{let e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function r(t){return e[t]??null}let n={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"},i={nan:"NaN",number:"n\u1ECD\u0301mb\xE0",array:"akop\u1ECD"};return(t)=>{switch(t.code){case"invalid_type":{let u=i[t.expected]??t.expected,_=m(t.input),c=i[_]??_;if(/^[A-Z]/.test(t.expected))return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${t.expected}, \xE0m\u1ECD\u0300 a r\xED ${c}`;return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${u}, \xE0m\u1ECD\u0300 a r\xED ${c}`}case"invalid_value":if(t.values.length===1)return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${I(t.values[0])}`;return`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${N(t.values,"|")}`;case"too_big":{let u=t.inclusive?"<=":"<",_=r(t.origin);if(_)return`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin??"iye"} ${_.verb} ${u}${t.maximum} ${_.unit}`;return`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${u}${t.maximum}`}case"too_small":{let u=t.inclusive?">=":">",_=r(t.origin);if(_)return`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin} ${_.verb} ${u}${t.minimum} ${_.unit}`;return`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${u}${t.minimum}`}case"invalid_format":{let u=t;if(u.format==="starts_with")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${u.prefix}"`;if(u.format==="ends_with")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${u.suffix}"`;if(u.format==="includes")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${u.includes}"`;if(u.format==="regex")return`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${u.pattern}`;return`A\u1E63\xEC\u1E63e: ${n[u.format]??t.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${t.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${N(t.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};var FN=R(()=>{j()});var ot={};Qe(ot,{zhTW:()=>lf,zhCN:()=>of,yo:()=>af,vi:()=>gf,uz:()=>df,ur:()=>cf,uk:()=>li,ua:()=>_f,tr:()=>tf,th:()=>nf,ta:()=>rf,sv:()=>ef,sl:()=>pa,ru:()=>sa,ro:()=>Za,pt:()=>Qa,ps:()=>Ya,pl:()=>Va,ota:()=>Ca,no:()=>Ba,nl:()=>Ha,ms:()=>Ga,mk:()=>qa,lt:()=>Ma,ko:()=>Wa,km:()=>gi,kh:()=>za,ka:()=>Fa,ja:()=>Ka,it:()=>Xa,is:()=>xa,id:()=>Pa,hy:()=>ja,hu:()=>ya,hr:()=>Aa,he:()=>La,frCA:()=>Ra,fr:()=>Oa,fi:()=>ha,fa:()=>Ua,es:()=>Da,eo:()=>wa,en:()=>di,el:()=>Ia,de:()=>ba,da:()=>Na,cs:()=>Sa,ca:()=>Ta,bg:()=>ka,be:()=>Ea,az:()=>va,ar:()=>$a});var ff=R(()=>{zS();WS();qS();GS();HS();BS();CS();YS();VS();ma();QS();ZS();sS();pS();eN();rN();nN();tN();iN();_N();cN();dN();gN();oN();lN();aN();Ja();fN();vN();EN();kN();TN();SN();NN();bN();IN();mN();wN();UN();hN();ON();RN();LN();AN();yN();uf();jN();PN();xN();XN();KN();FN()});class $f{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n==="object"&&"id"in n)this._idmap.set(n.id,e);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);if(r&&typeof r==="object"&&"id"in r)this._idmap.delete(r.id);return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let i={...n,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function ai(){return new $f}var JN,y_,j_,oe;var fi=R(()=>{y_=Symbol("ZodOutput"),j_=Symbol("ZodInput");(JN=globalThis).__zod_globalRegistry??(JN.__zod_globalRegistry=ai());oe=globalThis.__zod_globalRegistry});function vf(e,r){return new e({type:"string",...U(r)})}function Ef(e,r){return new e({type:"string",coerce:!0,...U(r)})}function P_(e,r){return new e({type:"string",format:"email",check:"string_format",abort:!1,...U(r)})}function $i(e,r){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...U(r)})}function x_(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...U(r)})}function X_(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...U(r)})}function K_(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...U(r)})}function F_(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...U(r)})}function vi(e,r){return new e({type:"string",format:"url",check:"string_format",abort:!1,...U(r)})}function J_(e,r){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...U(r)})}function z_(e,r){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...U(r)})}function W_(e,r){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...U(r)})}function M_(e,r){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...U(r)})}function q_(e,r){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...U(r)})}function G_(e,r){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...U(r)})}function H_(e,r){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...U(r)})}function B_(e,r){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...U(r)})}function C_(e,r){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...U(r)})}function kf(e,r){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...U(r)})}function Y_(e,r){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...U(r)})}function V_(e,r){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...U(r)})}function Q_(e,r){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...U(r)})}function Z_(e,r){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...U(r)})}function s_(e,r){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...U(r)})}function p_(e,r){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...U(r)})}function Tf(e,r){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...U(r)})}function Sf(e,r){return new e({type:"string",format:"date",check:"string_format",...U(r)})}function Nf(e,r){return new e({type:"string",format:"time",check:"string_format",precision:null,...U(r)})}function bf(e,r){return new e({type:"string",format:"duration",check:"string_format",...U(r)})}function If(e,r){return new e({type:"number",checks:[],...U(r)})}function mf(e,r){return new e({type:"number",coerce:!0,checks:[],...U(r)})}function wf(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...U(r)})}function Df(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...U(r)})}function Uf(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...U(r)})}function hf(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...U(r)})}function Of(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...U(r)})}function Rf(e,r){return new e({type:"boolean",...U(r)})}function Lf(e,r){return new e({type:"boolean",coerce:!0,...U(r)})}function Af(e,r){return new e({type:"bigint",...U(r)})}function yf(e,r){return new e({type:"bigint",coerce:!0,...U(r)})}function jf(e,r){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...U(r)})}function Pf(e,r){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...U(r)})}function xf(e,r){return new e({type:"symbol",...U(r)})}function Xf(e,r){return new e({type:"undefined",...U(r)})}function Kf(e,r){return new e({type:"null",...U(r)})}function Ff(e){return new e({type:"any"})}function Jf(e){return new e({type:"unknown"})}function zf(e,r){return new e({type:"never",...U(r)})}function Wf(e,r){return new e({type:"void",...U(r)})}function Mf(e,r){return new e({type:"date",...U(r)})}function qf(e,r){return new e({type:"date",coerce:!0,...U(r)})}function Gf(e,r){return new e({type:"nan",...U(r)})}function Ge(e,r){return new S_({check:"less_than",...U(r),value:e,inclusive:!1})}function De(e,r){return new S_({check:"less_than",...U(r),value:e,inclusive:!0})}function He(e,r){return new N_({check:"greater_than",...U(r),value:e,inclusive:!1})}function Ee(e,r){return new N_({check:"greater_than",...U(r),value:e,inclusive:!0})}function Ei(e){return He(0,e)}function ki(e){return Ge(0,e)}function Ti(e){return De(0,e)}function Si(e){return Ee(0,e)}function Er(e,r){return new Ko({check:"multiple_of",...U(r),value:e})}function kr(e,r){return new zo({check:"max_size",...U(r),maximum:e})}function Be(e,r){return new Wo({check:"min_size",...U(r),minimum:e})}function Xr(e,r){return new Mo({check:"size_equals",...U(r),size:e})}function Kr(e,r){return new qo({check:"max_length",...U(r),maximum:e})}function nr(e,r){return new Go({check:"min_length",...U(r),minimum:e})}function Fr(e,r){return new Ho({check:"length_equals",...U(r),length:e})}function on(e,r){return new Bo({check:"string_format",format:"regex",...U(r),pattern:e})}function ln(e){return new Co({check:"string_format",format:"lowercase",...U(e)})}function an(e){return new Yo({check:"string_format",format:"uppercase",...U(e)})}function fn(e,r){return new Vo({check:"string_format",format:"includes",...U(r),includes:e})}function $n(e,r){return new Qo({check:"string_format",format:"starts_with",...U(r),prefix:e})}function vn(e,r){return new Zo({check:"string_format",format:"ends_with",...U(r),suffix:e})}function Ni(e,r,n){return new so({check:"property",property:e,schema:r,...U(n)})}function En(e,r){return new po({check:"mime_type",mime:e,...U(r)})}function Xe(e){return new el({check:"overwrite",tx:e})}function kn(e){return Xe((r)=>r.normalize(e))}function Tn(){return Xe((e)=>e.trim())}function Sn(){return Xe((e)=>e.toLowerCase())}function Nn(){return Xe((e)=>e.toUpperCase())}function bn(){return Xe((e)=>Vg(e))}function Hf(e,r,n){return new e({type:"array",element:r,...U(n)})}function WR(e,r,n){return new e({type:"union",options:r,...U(n)})}function MR(e,r,n){return new e({type:"union",options:r,inclusive:!1,...U(n)})}function qR(e,r,n,i){return new e({type:"union",options:n,discriminator:r,...U(i)})}function GR(e,r,n){return new e({type:"intersection",left:r,right:n})}function HR(e,r,n,i){let t=n instanceof K;return new e({type:"tuple",items:r,rest:t?n:null,...U(t?i:n)})}function BR(e,r,n,i){return new e({type:"record",keyType:r,valueType:n,...U(i)})}function CR(e,r,n,i){return new e({type:"map",keyType:r,valueType:n,...U(i)})}function YR(e,r,n){return new e({type:"set",valueType:r,...U(n)})}function VR(e,r,n){let i=Array.isArray(r)?Object.fromEntries(r.map((t)=>[t,t])):r;return new e({type:"enum",entries:i,...U(n)})}function QR(e,r,n){return new e({type:"enum",entries:r,...U(n)})}function ZR(e,r,n){return new e({type:"literal",values:Array.isArray(r)?r:[r],...U(n)})}function Bf(e,r){return new e({type:"file",...U(r)})}function sR(e,r){return new e({type:"transform",transform:r})}function pR(e,r){return new e({type:"optional",innerType:r})}function e0(e,r){return new e({type:"nullable",innerType:r})}function r0(e,r,n){return new e({type:"default",innerType:r,get defaultValue(){return typeof n==="function"?n():Zg(n)}})}function n0(e,r,n){return new e({type:"nonoptional",innerType:r,...U(n)})}function t0(e,r){return new e({type:"success",innerType:r})}function i0(e,r,n){return new e({type:"catch",innerType:r,catchValue:typeof n==="function"?n:()=>n})}function u0(e,r,n){return new e({type:"pipe",in:r,out:n})}function _0(e,r){return new e({type:"readonly",innerType:r})}function c0(e,r,n){return new e({type:"template_literal",parts:r,...U(n)})}function d0(e,r){return new e({type:"lazy",getter:r})}function g0(e,r){return new e({type:"promise",innerType:r})}function Cf(e,r,n){let i=U(n);return i.abort??(i.abort=!0),new e({type:"custom",check:"custom",fn:r,...i})}function Yf(e,r,n){return new e({type:"custom",check:"custom",fn:r,...U(n)})}function Vf(e,r){let n=zN((i)=>{return i.addIssue=(t)=>{if(typeof t==="string")i.issues.push(rt(t,i.value,n._zod.def));else{let u=t;if(u.fatal)u.continue=!1;u.code??(u.code="custom"),u.input??(u.input=i.value),u.inst??(u.inst=n),u.continue??(u.continue=!n._zod.def.abort),i.issues.push(rt(u))}},e(i.value,i)},r);return n}function zN(e,r){let n=new Z({check:"custom",...U(r)});return n._zod.check=e,n}function Qf(e){let r=new Z({check:"describe"});return r._zod.onattach=[(n)=>{let i=oe.get(n)??{};oe.add(n,{...i,description:e})}],r._zod.check=()=>{},r}function Zf(e){let r=new Z({check:"meta"});return r._zod.onattach=[(n)=>{let i=oe.get(n)??{};oe.add(n,{...i,...e})}],r._zod.check=()=>{},r}function sf(e,r){let n=U(r),i=n.truthy??["true","1","yes","on","y","enabled"],t=n.falsy??["false","0","no","off","n","disabled"];if(n.case!=="sensitive")i=i.map((l)=>typeof l==="string"?l.toLowerCase():l),t=t.map((l)=>typeof l==="string"?l.toLowerCase():l);let u=new Set(i),_=new Set(t),c=e.Codec??ci,d=e.Boolean??ui,f=new(e.String??gn)({type:"string",error:n.error}),o=new d({type:"boolean",error:n.error}),a=new c({type:"pipe",in:f,out:o,transform:(l,$)=>{let v=l;if(n.case!=="sensitive")v=v.toLowerCase();if(u.has(v))return!0;else if(_.has(v))return!1;else return $.issues.push({code:"invalid_value",expected:"stringbool",values:[...u,..._],input:$.value,inst:a,continue:!1}),{}},reverseTransform:(l,$)=>{if(l===!0)return i[0]||"true";else return t[0]||"false"},error:n.error});return a}function lt(e,r,n,i={}){let t=U(i),u={...U(i),check:"string_format",type:"string",format:r,fn:typeof n==="function"?n:(c)=>n.test(c),...t};if(n instanceof RegExp)u.pattern=n;return new e(u)}var ec;var WN=R(()=>{b_();fi();fa();j();ec={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6}});function Jr(e){let r=e?.target??"draft-2020-12";if(r==="draft-4")r="draft-04";if(r==="draft-7")r="draft-07";return{processors:e.processors??{},metadataRegistry:e?.metadata??oe,target:r,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function B(e,r,n={path:[],schemaPath:[]}){var i;let t=e._zod.def,u=r.seen.get(e);if(u){if(u.count++,n.schemaPath.includes(e))u.cycle=n.path;return u.schema}let _={schema:{},count:1,cycle:void 0,path:n.path};r.seen.set(e,_);let c=e._zod.toJSONSchema?.();if(c)_.schema=c;else{let f={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(r,_.schema,f);else{let a=_.schema,l=r.processors[t.type];if(!l)throw Error(`[toJSONSchema]: Non-representable type encountered: ${t.type}`);l(e,r,a,f)}let o=e._zod.parent;if(o){if(!_.ref)_.ref=o;B(o,r,f),r.seen.get(o).isParent=!0}}let d=r.metadataRegistry.get(e);if(d)Object.assign(_.schema,d);if(r.io==="input"&&Ne(e))delete _.schema.examples,delete _.schema.default;if(r.io==="input"&&"_prefault"in _.schema)(i=_.schema).default??(i.default=_.schema._prefault);return delete _.schema._prefault,r.seen.get(e).schema}function zr(e,r){let n=e.seen.get(r);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let i=new Map;for(let _ of e.seen.entries()){let c=e.metadataRegistry.get(_[0])?.id;if(c){let d=i.get(c);if(d&&d!==_[0])throw Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);i.set(c,_[0])}}let t=(_)=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let o=e.external.registry.get(_[0])?.id,a=e.external.uri??(($)=>$);if(o)return{ref:a(o)};let l=_[1].defId??_[1].schema.id??`schema${e.counter++}`;return _[1].defId=l,{defId:l,ref:`${a("__shared")}#/${c}/${l}`}}if(_[1]===n)return{ref:"#"};let g=`${"#"}/${c}/`,f=_[1].schema.id??`__schema${e.counter++}`;return{defId:f,ref:g+f}},u=(_)=>{if(_[1].schema.$ref)return;let c=_[1],{ref:d,defId:g}=t(_);if(c.def={...c.schema},g)c.defId=g;let f=c.schema;for(let o in f)delete f[o];f.$ref=d};if(e.cycles==="throw")for(let _ of e.seen.entries()){let c=_[1];if(c.cycle)throw Error(`Cycle detected: #/${c.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let u of e.seen.entries()){let c=u[1];if(r===u[0]){_(u);continue}if(e.external){let o=e.external.registry.get(u[0])?.id;if(r!==u[0]&&o){_(u);continue}}if(e.metadataRegistry.get(u[0])?.id){_(u);continue}if(c.cycle){_(u);continue}if(c.count>1){if(e.reused==="ref"){_(u);continue}}}}function zr(e,r){let t=e.seen.get(r);if(!t)throw Error("Unprocessed schema. This is a bug in Zod.");let i=(c)=>{let d=e.seen.get(c);if(d.ref===null)return;let o=d.def??d.schema,a={...o},g=d.ref;if(d.ref=null,g){i(g);let l=e.seen.get(g),T=l.schema;if(T.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"))o.allOf=o.allOf??[],o.allOf.push(T);else Object.assign(o,T);if(Object.assign(o,a),c._zod.parent===g)for(let v in o){if(v==="$ref"||v==="allOf")continue;if(!(v in a))delete o[v]}if(T.$ref&&l.def)for(let v in o){if(v==="$ref"||v==="allOf")continue;if(v in l.def&&JSON.stringify(o[v])===JSON.stringify(l.def[v]))delete o[v]}}let E=c._zod.parent;if(E&&E!==g){i(E);let l=e.seen.get(E);if(l?.schema.$ref){if(o.$ref=l.schema.$ref,l.def)for(let T in o){if(T==="$ref"||T==="allOf")continue;if(T in l.def&&JSON.stringify(o[T])===JSON.stringify(l.def[T]))delete o[T]}}}e.override({zodSchema:c,jsonSchema:o,path:d.path??[]})};for(let c of[...e.seen.entries()].reverse())i(c[0]);let n={};if(e.target==="draft-2020-12")n.$schema="https://json-schema.org/draft/2020-12/schema";else if(e.target==="draft-07")n.$schema="http://json-schema.org/draft-07/schema#";else if(e.target==="draft-04")n.$schema="http://json-schema.org/draft-04/schema#";else if(e.target==="openapi-3.0");if(e.external?.uri){let c=e.external.registry.get(r)?.id;if(!c)throw Error("Schema is missing an `id` property");n.$id=e.external.uri(c)}Object.assign(n,t.def??t.schema);let _=e.metadataRegistry.get(r)?.id;if(_!==void 0&&n.id===_)delete n.id;let u=e.external?.defs??{};for(let c of e.seen.entries()){let d=c[1];if(d.def&&d.defId){if(d.def.id===d.defId)delete d.def.id;u[d.defId]=d.def}}if(e.external);else if(Object.keys(u).length>0)if(e.target==="draft-2020-12")n.$defs=u;else n.definitions=u;try{let c=JSON.parse(JSON.stringify(n));return Object.defineProperty(c,"~standard",{value:{...r["~standard"],jsonSchema:{input:En(r,"input",e.processors),output:En(r,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch(c){throw Error("Error converting schema to JSON.")}}function Ie(e,r){let t=r??{seen:new Set};if(t.seen.has(e))return!1;t.seen.add(e);let i=e._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return Ie(i.element,t);if(i.type==="set")return Ie(i.valueType,t);if(i.type==="lazy")return Ie(i.getter(),t);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return Ie(i.innerType,t);if(i.type==="intersection")return Ie(i.left,t)||Ie(i.right,t);if(i.type==="record"||i.type==="map")return Ie(i.keyType,t)||Ie(i.valueType,t);if(i.type==="pipe"){if(e._zod.traits.has("$ZodCodec"))return!0;return Ie(i.in,t)||Ie(i.out,t)}if(i.type==="object"){for(let n in i.shape)if(Ie(i.shape[n],t))return!0;return!1}if(i.type==="union"){for(let n of i.options)if(Ie(n,t))return!0;return!1}if(i.type==="tuple"){for(let n of i.items)if(Ie(n,t))return!0;if(i.rest&&Ie(i.rest,t))return!0;return!1}return!1}var sa=(e,r={})=>(t)=>{let i=Wr({...t,processors:r});return Y(e,i),Jr(i,e),zr(i,e)},En=(e,r,t={})=>(i)=>{let{libraryOptions:n,target:_}=i??{},u=Wr({...n??{},target:_,io:r,processors:t});return Y(e,u),Jr(u,e),zr(u,e)};var Si=h(()=>{ai()});function Oi(e,r){if("_idmap"in e){let i=e,n=Wr({...r,processors:rc}),_={};for(let d of i._idmap.entries()){let[o,a]=d;Y(a,n)}let u={},c={registry:i,uri:r?.uri,defs:_};n.external=c;for(let d of i._idmap.entries()){let[o,a]=d;Jr(n,a),u[o]=zr(n,a)}if(Object.keys(_).length>0){let d=n.target==="draft-2020-12"?"$defs":"definitions";u.__shared={[d]:_}}return{schemas:u}}let t=Wr({...r,processors:rc});return Y(e,t),Jr(t,e),zr(t,e)}var gw,pa=(e,r,t,i)=>{let n=t;n.type="string";let{minimum:_,maximum:u,format:c,patterns:d,contentEncoding:o}=e._zod.bag;if(typeof _==="number")n.minLength=_;if(typeof u==="number")n.maxLength=u;if(c){if(n.format=gw[c]??c,n.format==="")delete n.format;if(c==="time")delete n.format}if(o)n.contentEncoding=o;if(d&&d.size>0){let a=[...d];if(a.length===1)n.pattern=a[0].source;else if(a.length>1)n.allOf=[...a.map((g)=>({...r.target==="draft-07"||r.target==="draft-04"||r.target==="openapi-3.0"?{type:"string"}:{},pattern:g.source}))]}},eT=(e,r,t,i)=>{let n=t,{minimum:_,maximum:u,format:c,multipleOf:d,exclusiveMaximum:o,exclusiveMinimum:a}=e._zod.bag;if(typeof c==="string"&&c.includes("int"))n.type="integer";else n.type="number";let g=typeof a==="number"&&a>=(_??Number.NEGATIVE_INFINITY),E=typeof o==="number"&&o<=(u??Number.POSITIVE_INFINITY),l=r.target==="draft-04"||r.target==="openapi-3.0";if(g)if(l)n.minimum=a,n.exclusiveMinimum=!0;else n.exclusiveMinimum=a;else if(typeof _==="number")n.minimum=_;if(E)if(l)n.maximum=o,n.exclusiveMaximum=!0;else n.exclusiveMaximum=o;else if(typeof u==="number")n.maximum=u;if(typeof d==="number")n.multipleOf=d},rT=(e,r,t,i)=>{t.type="boolean"},tT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},nT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},iT=(e,r,t,i)=>{if(r.target==="openapi-3.0")t.type="string",t.nullable=!0,t.enum=[null];else t.type="null"},_T=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},uT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},cT=(e,r,t,i)=>{t.not={}},dT=(e,r,t,i)=>{},oT=(e,r,t,i)=>{},gT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},lT=(e,r,t,i)=>{let n=e._zod.def,_=Qn(n.entries);if(_.every((u)=>typeof u==="number"))t.type="number";if(_.every((u)=>typeof u==="string"))t.type="string";t.enum=_},ET=(e,r,t,i)=>{let n=e._zod.def,_=[];for(let u of n.values)if(u===void 0){if(r.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof u==="bigint")if(r.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else _.push(Number(u));else _.push(u);if(_.length===0);else if(_.length===1){let u=_[0];if(t.type=u===null?"null":typeof u,r.target==="draft-04"||r.target==="openapi-3.0")t.enum=[u];else t.const=u}else{if(_.every((u)=>typeof u==="number"))t.type="number";if(_.every((u)=>typeof u==="string"))t.type="string";if(_.every((u)=>typeof u==="boolean"))t.type="boolean";if(_.every((u)=>u===null))t.type="null";t.enum=_}},aT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},TT=(e,r,t,i)=>{let n=t,_=e._zod.pattern;if(!_)throw Error("Pattern not found in template literal");n.type="string",n.pattern=_.source},fT=(e,r,t,i)=>{let n=t,_={type:"string",format:"binary",contentEncoding:"binary"},{minimum:u,maximum:c,mime:d}=e._zod.bag;if(u!==void 0)_.minLength=u;if(c!==void 0)_.maxLength=c;if(d)if(d.length===1)_.contentMediaType=d[0],Object.assign(n,_);else Object.assign(n,_),n.anyOf=d.map((o)=>({contentMediaType:o}));else Object.assign(n,_)},$T=(e,r,t,i)=>{t.type="boolean"},vT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},NT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},kT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},IT=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},ST=(e,r,t,i)=>{if(r.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},OT=(e,r,t,i)=>{let n=t,_=e._zod.def,{minimum:u,maximum:c}=e._zod.bag;if(typeof u==="number")n.minItems=u;if(typeof c==="number")n.maxItems=c;n.type="array",n.items=Y(_.element,r,{...i,path:[...i.path,"items"]})},LT=(e,r,t,i)=>{let n=t,_=e._zod.def;n.type="object",n.properties={};let u=_.shape;for(let o in u)n.properties[o]=Y(u[o],r,{...i,path:[...i.path,"properties",o]});let c=new Set(Object.keys(u)),d=new Set([...c].filter((o)=>{let a=_.shape[o]._zod;if(r.io==="input")return a.optin===void 0;else return a.optout===void 0}));if(d.size>0)n.required=Array.from(d);if(_.catchall?._zod.def.type==="never")n.additionalProperties=!1;else if(!_.catchall){if(r.io==="output")n.additionalProperties=!1}else if(_.catchall)n.additionalProperties=Y(_.catchall,r,{...i,path:[...i.path,"additionalProperties"]})},tc=(e,r,t,i)=>{let n=e._zod.def,_=n.inclusive===!1,u=n.options.map((c,d)=>Y(c,r,{...i,path:[...i.path,_?"oneOf":"anyOf",d]}));if(_)t.oneOf=u;else t.anyOf=u},bT=(e,r,t,i)=>{let n=e._zod.def,_=Y(n.left,r,{...i,path:[...i.path,"allOf",0]}),u=Y(n.right,r,{...i,path:[...i.path,"allOf",1]}),c=(o)=>("allOf"in o)&&Object.keys(o).length===1,d=[...c(_)?_.allOf:[_],...c(u)?u.allOf:[u]];t.allOf=d},UT=(e,r,t,i)=>{let n=t,_=e._zod.def;n.type="array";let u=r.target==="draft-2020-12"?"prefixItems":"items",c=r.target==="draft-2020-12"?"items":r.target==="openapi-3.0"?"items":"additionalItems",d=_.items.map((E,l)=>Y(E,r,{...i,path:[...i.path,u,l]})),o=_.rest?Y(_.rest,r,{...i,path:[...i.path,c,...r.target==="openapi-3.0"?[_.items.length]:[]]}):null;if(r.target==="draft-2020-12"){if(n.prefixItems=d,o)n.items=o}else if(r.target==="openapi-3.0"){if(n.items={anyOf:d},o)n.items.anyOf.push(o);if(n.minItems=d.length,!o)n.maxItems=d.length}else if(n.items=d,o)n.additionalItems=o;let{minimum:a,maximum:g}=e._zod.bag;if(typeof a==="number")n.minItems=a;if(typeof g==="number")n.maxItems=g},mT=(e,r,t,i)=>{let n=t,_=e._zod.def;n.type="object";let u=_.keyType,d=u._zod.bag?.patterns;if(_.mode==="loose"&&d&&d.size>0){let a=Y(_.valueType,r,{...i,path:[...i.path,"patternProperties","*"]});n.patternProperties={};for(let g of d)n.patternProperties[g.source]=a}else{if(r.target==="draft-07"||r.target==="draft-2020-12")n.propertyNames=Y(_.keyType,r,{...i,path:[...i.path,"propertyNames"]});n.additionalProperties=Y(_.valueType,r,{...i,path:[...i.path,"additionalProperties"]})}let o=u._zod.values;if(o){let a=[...o].filter((g)=>typeof g==="string"||typeof g==="number");if(a.length>0)n.required=a}},DT=(e,r,t,i)=>{let n=e._zod.def,_=Y(n.innerType,r,i),u=r.seen.get(e);if(r.target==="openapi-3.0")u.ref=n.innerType,t.nullable=!0;else t.anyOf=[_,{type:"null"}]},RT=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);_.ref=n.innerType},hT=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);_.ref=n.innerType,t.default=JSON.parse(JSON.stringify(n.defaultValue))},wT=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);if(_.ref=n.innerType,r.io==="input")t._prefault=JSON.parse(JSON.stringify(n.defaultValue))},AT=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);_.ref=n.innerType;let u;try{u=n.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}t.default=u},XT=(e,r,t,i)=>{let n=e._zod.def,_=n.in._zod.traits.has("$ZodTransform"),u=r.io==="input"?_?n.out:n.in:n.out;Y(u,r,i);let c=r.seen.get(e);c.ref=u},yT=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);_.ref=n.innerType,t.readOnly=!0},xT=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);_.ref=n.innerType},nc=(e,r,t,i)=>{let n=e._zod.def;Y(n.innerType,r,i);let _=r.seen.get(e);_.ref=n.innerType},jT=(e,r,t,i)=>{let n=e._zod.innerType;Y(n,r,i);let _=r.seen.get(e);_.ref=n},rc;var Li=h(()=>{Si();y();gw={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},rc={string:pa,number:eT,boolean:rT,bigint:tT,symbol:nT,null:iT,undefined:_T,void:uT,never:cT,any:dT,unknown:oT,date:gT,enum:lT,literal:ET,nan:aT,template_literal:TT,file:fT,success:$T,custom:vT,function:NT,transform:kT,map:IT,set:ST,array:OT,object:LT,union:tc,intersection:bT,tuple:UT,record:mT,nullable:DT,nonoptional:RT,default:hT,prefault:wT,catch:AT,pipe:XT,readonly:yT,promise:xT,optional:nc,lazy:jT}});class PT{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(e){this.ctx.counter=e}get seen(){return this.ctx.seen}constructor(e){let r=e?.target??"draft-2020-12";if(r==="draft-4")r="draft-04";if(r==="draft-7")r="draft-07";this.ctx=Wr({processors:rc,target:r,...e?.metadata&&{metadata:e.metadata},...e?.unrepresentable&&{unrepresentable:e.unrepresentable},...e?.override&&{override:e.override},...e?.io&&{io:e.io}})}process(e,r={path:[],schemaPath:[]}){return Y(e,this.ctx,r)}emit(e,r){if(r){if(r.cycles)this.ctx.cycles=r.cycles;if(r.reused)this.ctx.reused=r.reused;if(r.external)this.ctx.external=r.external}Jr(this.ctx,e);let t=zr(this.ctx,e),{"~standard":i,...n}=t;return n}}var MI=h(()=>{Li();Si()});var CI={};var qI=()=>{};var nr={};Qe(nr,{version:()=>rl,util:()=>b,treeifyError:()=>_u,toJSONSchema:()=>Oi,toDotPath:()=>Tk,safeParseAsync:()=>ug,safeParse:()=>_g,safeEncodeAsync:()=>aR,safeEncode:()=>lR,safeDecodeAsync:()=>TR,safeDecode:()=>ER,registry:()=>Ei,regexes:()=>be,process:()=>Y,prettifyError:()=>uu,parseAsync:()=>du,parse:()=>cu,meta:()=>Qa,locales:()=>gn,isValidJWT:()=>Pk,isValidBase64URL:()=>jk,isValidBase64:()=>bl,initializeContext:()=>Wr,globalRegistry:()=>ge,globalConfig:()=>nt,formatError:()=>tn,flattenError:()=>rn,finalize:()=>zr,extractDefs:()=>Jr,encodeAsync:()=>oR,encode:()=>cR,describe:()=>Va,decodeAsync:()=>gR,decode:()=>dR,createToJSONSchemaMethod:()=>sa,createStandardJSONSchemaMethod:()=>En,config:()=>ie,clone:()=>fe,_xor:()=>Mh,_xid:()=>qu,_void:()=>Ja,_uuidv7:()=>Ku,_uuidv6:()=>Fu,_uuidv4:()=>Pu,_uuid:()=>ju,_url:()=>fi,_uppercase:()=>lt,_unknown:()=>Ka,_union:()=>zh,_undefined:()=>ja,_ulid:()=>Cu,_uint64:()=>ya,_uint32:()=>Da,_tuple:()=>Gh,_trim:()=>vt,_transform:()=>sh,_toUpperCase:()=>kt,_toLowerCase:()=>Nt,_templateLiteral:()=>cw,_symbol:()=>xa,_superRefine:()=>Ha,_success:()=>nw,_stringbool:()=>Za,_stringFormat:()=>ln,_string:()=>Ta,_startsWith:()=>at,_slugify:()=>It,_size:()=>Pr,_set:()=>Hh,_safeParseAsync:()=>cn,_safeParse:()=>un,_safeEncodeAsync:()=>fu,_safeEncode:()=>au,_safeDecodeAsync:()=>$u,_safeDecode:()=>Tu,_regex:()=>ot,_refine:()=>Ba,_record:()=>Yh,_readonly:()=>uw,_property:()=>Ii,_promise:()=>ow,_positive:()=>$i,_pipe:()=>_w,_parseAsync:()=>_n,_parse:()=>nn,_overwrite:()=>Pe,_optional:()=>ph,_number:()=>Sa,_nullable:()=>ew,_null:()=>Pa,_normalize:()=>$t,_nonpositive:()=>Ni,_nonoptional:()=>tw,_nonnegative:()=>ki,_never:()=>Wa,_negative:()=>vi,_nativeEnum:()=>Qh,_nanoid:()=>Ju,_nan:()=>Ca,_multipleOf:()=>$r,_minSize:()=>Ye,_minLength:()=>tr,_min:()=>$e,_mime:()=>ft,_maxSize:()=>vr,_maxLength:()=>Fr,_max:()=>Ue,_map:()=>Bh,_mac:()=>$a,_lte:()=>Ue,_lt:()=>qe,_lowercase:()=>gt,_literal:()=>Zh,_length:()=>Kr,_lazy:()=>dw,_ksuid:()=>Gu,_jwt:()=>pu,_isoTime:()=>ka,_isoDuration:()=>Ia,_isoDateTime:()=>va,_isoDate:()=>Na,_ipv6:()=>Bu,_ipv4:()=>Yu,_intersection:()=>qh,_int64:()=>Xa,_int32:()=>ma,_int:()=>La,_includes:()=>Et,_guid:()=>Ti,_gte:()=>$e,_gt:()=>Ge,_float64:()=>Ua,_float32:()=>ba,_file:()=>Ga,_enum:()=>Vh,_endsWith:()=>Tt,_encodeAsync:()=>lu,_encode:()=>ou,_emoji:()=>Wu,_email:()=>xu,_e164:()=>su,_discriminatedUnion:()=>Ch,_default:()=>rw,_decodeAsync:()=>Eu,_decode:()=>gu,_date:()=>za,_custom:()=>Ya,_cuid2:()=>Mu,_cuid:()=>zu,_coercedString:()=>fa,_coercedNumber:()=>Oa,_coercedDate:()=>Ma,_coercedBoolean:()=>ha,_coercedBigint:()=>Aa,_cidrv6:()=>Vu,_cidrv4:()=>Hu,_check:()=>JI,_catch:()=>iw,_boolean:()=>Ra,_bigint:()=>wa,_base64url:()=>Zu,_base64:()=>Qu,_array:()=>qa,_any:()=>Fa,TimePrecision:()=>ec,NEVER:()=>ru,JSONSchemaGenerator:()=>PT,JSONSchema:()=>CI,Doc:()=>Ou,$output:()=>Xu,$input:()=>yu,$constructor:()=>$,$brand:()=>tu,$ZodXor:()=>Ml,$ZodXID:()=>al,$ZodVoid:()=>Kl,$ZodUnknown:()=>Pl,$ZodUnion:()=>ui,$ZodUndefined:()=>yl,$ZodUUID:()=>_l,$ZodURL:()=>cl,$ZodULID:()=>El,$ZodType:()=>F,$ZodTuple:()=>hu,$ZodTransform:()=>Zl,$ZodTemplateLiteral:()=>dE,$ZodSymbol:()=>Xl,$ZodSuccess:()=>nE,$ZodStringFormat:()=>Q,$ZodString:()=>dt,$ZodSet:()=>Bl,$ZodRegistry:()=>aa,$ZodRecord:()=>Gl,$ZodRealError:()=>Le,$ZodReadonly:()=>cE,$ZodPromise:()=>gE,$ZodPreprocess:()=>uE,$ZodPrefault:()=>rE,$ZodPipe:()=>Au,$ZodOptional:()=>wu,$ZodObjectJIT:()=>zl,$ZodObject:()=>Wk,$ZodNumberFormat:()=>wl,$ZodNumber:()=>Du,$ZodNullable:()=>pl,$ZodNull:()=>xl,$ZodNonOptional:()=>tE,$ZodNever:()=>Fl,$ZodNanoID:()=>ol,$ZodNaN:()=>_E,$ZodMap:()=>Yl,$ZodMAC:()=>Sl,$ZodLiteral:()=>Vl,$ZodLazy:()=>lE,$ZodKSUID:()=>Tl,$ZodJWT:()=>Rl,$ZodIntersection:()=>ql,$ZodISOTime:()=>vl,$ZodISODuration:()=>Nl,$ZodISODateTime:()=>fl,$ZodISODate:()=>$l,$ZodIPv6:()=>Il,$ZodIPv4:()=>kl,$ZodGUID:()=>il,$ZodFunction:()=>oE,$ZodFile:()=>Ql,$ZodExactOptional:()=>sl,$ZodError:()=>ri,$ZodEnum:()=>Hl,$ZodEncodeError:()=>it,$ZodEmoji:()=>dl,$ZodEmail:()=>ul,$ZodE164:()=>Dl,$ZodDiscriminatedUnion:()=>Cl,$ZodDefault:()=>eE,$ZodDate:()=>Wl,$ZodCustomStringFormat:()=>hl,$ZodCustom:()=>EE,$ZodCodec:()=>ci,$ZodCheckUpperCase:()=>Hg,$ZodCheckStringFormat:()=>dn,$ZodCheckStartsWith:()=>Qg,$ZodCheckSizeEquals:()=>Mg,$ZodCheckRegex:()=>Yg,$ZodCheckProperty:()=>sg,$ZodCheckOverwrite:()=>el,$ZodCheckNumberFormat:()=>Kg,$ZodCheckMultipleOf:()=>Fg,$ZodCheckMinSize:()=>zg,$ZodCheckMinLength:()=>qg,$ZodCheckMimeType:()=>pg,$ZodCheckMaxSize:()=>Jg,$ZodCheckMaxLength:()=>Cg,$ZodCheckLowerCase:()=>Bg,$ZodCheckLessThan:()=>ku,$ZodCheckLengthEquals:()=>Gg,$ZodCheckIncludes:()=>Vg,$ZodCheckGreaterThan:()=>Iu,$ZodCheckEndsWith:()=>Zg,$ZodCheckBigIntFormat:()=>Wg,$ZodCheck:()=>Z,$ZodCatch:()=>iE,$ZodCUID2:()=>ll,$ZodCUID:()=>gl,$ZodCIDRv6:()=>Ll,$ZodCIDRv4:()=>Ol,$ZodBoolean:()=>_i,$ZodBigIntFormat:()=>Al,$ZodBigInt:()=>Ru,$ZodBase64URL:()=>ml,$ZodBase64:()=>Ul,$ZodAsyncError:()=>rr,$ZodArray:()=>Jl,$ZodAny:()=>jl});var Re=h(()=>{y();Nu();Ea();Li();MI();qI();_t();cg();ig();aE();Su();tl();ai();zI();Si()});var ic={};Qe(ic,{uppercase:()=>lt,trim:()=>vt,toUpperCase:()=>kt,toLowerCase:()=>Nt,startsWith:()=>at,slugify:()=>It,size:()=>Pr,regex:()=>ot,property:()=>Ii,positive:()=>$i,overwrite:()=>Pe,normalize:()=>$t,nonpositive:()=>Ni,nonnegative:()=>ki,negative:()=>vi,multipleOf:()=>$r,minSize:()=>Ye,minLength:()=>tr,mime:()=>ft,maxSize:()=>vr,maxLength:()=>Fr,lte:()=>Ue,lt:()=>qe,lowercase:()=>gt,length:()=>Kr,includes:()=>Et,gte:()=>$e,gt:()=>Ge,endsWith:()=>Tt});var _c=h(()=>{Re()});var St={};Qe(St,{time:()=>WT,duration:()=>JT,datetime:()=>FT,date:()=>KT,ZodISOTime:()=>mi,ZodISODuration:()=>Di,ZodISODateTime:()=>bi,ZodISODate:()=>Ui});function FT(e){return va(bi,e)}function KT(e){return Na(Ui,e)}function WT(e){return ka(mi,e)}function JT(e){return Ia(Di,e)}var bi,Ui,mi,Di;var Ri=h(()=>{Re();wi();bi=$("ZodISODateTime",(e,r)=>{fl.init(e,r),H.init(e,r)});Ui=$("ZodISODate",(e,r)=>{$l.init(e,r),H.init(e,r)});mi=$("ZodISOTime",(e,r)=>{vl.init(e,r),H.init(e,r)});Di=$("ZodISODuration",(e,r)=>{Nl.init(e,r),H.init(e,r)})});var GI=(e,r)=>{ri.init(e,r),e.name="ZodError",Object.defineProperties(e,{format:{value:(t)=>tn(e,t)},flatten:{value:(t)=>rn(e,t)},addIssue:{value:(t)=>{e.issues.push(t),e.message=JSON.stringify(e.issues,st,2)}},addIssues:{value:(t)=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,st,2)}},isEmpty:{get(){return e.issues.length===0}}})},YI,Se;var zT=h(()=>{Re();Re();y();YI=$("ZodError",GI),Se=$("ZodError",GI,{Parent:Error})});var uc,cc,dc,oc,gc,lc,Ec,ac,Tc,fc,$c,vc;var MT=h(()=>{Re();zT();uc=nn(Se),cc=_n(Se),dc=un(Se),oc=cn(Se),gc=ou(Se),lc=gu(Se),Ec=lu(Se),ac=Eu(Se),Tc=au(Se),fc=Tu(Se),$c=fu(Se),vc=$u(Se)});var hi={};Qe(hi,{xor:()=>xf,xid:()=>tf,void:()=>Rf,uuidv7:()=>HT,uuidv6:()=>BT,uuidv4:()=>YT,uuid:()=>GT,url:()=>VT,unknown:()=>Mr,union:()=>pi,undefined:()=>mf,ulid:()=>rf,uint64:()=>bf,uint32:()=>Sf,tuple:()=>jc,transform:()=>r_,templateLiteral:()=>Hf,symbol:()=>Uf,superRefine:()=>od,success:()=>qf,stringbool:()=>t$,stringFormat:()=>Tf,string:()=>an,strictObject:()=>Xf,set:()=>Wf,refine:()=>dd,record:()=>Pc,readonly:()=>td,promise:()=>Vf,preprocess:()=>i$,prefault:()=>Hc,pipe:()=>Xi,partialRecord:()=>Pf,optional:()=>fn,object:()=>Af,number:()=>kc,nullish:()=>Cf,nullable:()=>$n,null:()=>bc,nonoptional:()=>Vc,never:()=>si,nativeEnum:()=>Jf,nanoid:()=>sT,nan:()=>Gf,meta:()=>e$,map:()=>Kf,mac:()=>uf,looseRecord:()=>Ff,looseObject:()=>yf,literal:()=>zf,lazy:()=>_d,ksuid:()=>nf,keyof:()=>wf,jwt:()=>af,json:()=>n$,ipv6:()=>cf,ipv4:()=>_f,invertCodec:()=>Bf,intersection:()=>yc,int64:()=>Lf,int32:()=>If,int:()=>Ai,instanceof:()=>r$,httpUrl:()=>QT,hostname:()=>ff,hex:()=>$f,hash:()=>vf,guid:()=>qT,function:()=>Qf,float64:()=>kf,float32:()=>Nf,file:()=>Mf,exactOptional:()=>Cc,enum:()=>e_,emoji:()=>ZT,email:()=>CT,e164:()=>Ef,discriminatedUnion:()=>jf,describe:()=>pf,date:()=>hf,custom:()=>sf,cuid2:()=>ef,cuid:()=>pT,codec:()=>Yf,cidrv6:()=>of,cidrv4:()=>df,check:()=>Zf,catch:()=>sc,boolean:()=>Ic,bigint:()=>Of,base64url:()=>lf,base64:()=>gf,array:()=>kn,any:()=>Df,_function:()=>Qf,_default:()=>Yc,_ZodString:()=>xi,ZodXor:()=>wc,ZodXID:()=>zi,ZodVoid:()=>Rc,ZodUnknown:()=>mc,ZodUnion:()=>Sn,ZodUndefined:()=>Oc,ZodUUID:()=>Be,ZodURL:()=>vn,ZodULID:()=>Ji,ZodType:()=>J,ZodTuple:()=>xc,ZodTransform:()=>zc,ZodTemplateLiteral:()=>nd,ZodSymbol:()=>Sc,ZodSuccess:()=>Qc,ZodStringFormat:()=>H,ZodString:()=>bt,ZodSet:()=>Kc,ZodRecord:()=>Ot,ZodReadonly:()=>rd,ZodPromise:()=>ud,ZodPreprocess:()=>ed,ZodPrefault:()=>Bc,ZodPipe:()=>On,ZodOptional:()=>t_,ZodObject:()=>In,ZodNumberFormat:()=>Cr,ZodNumber:()=>mt,ZodNullable:()=>qc,ZodNull:()=>Lc,ZodNonOptional:()=>n_,ZodNever:()=>Dc,ZodNanoID:()=>Fi,ZodNaN:()=>pc,ZodMap:()=>Fc,ZodMAC:()=>Nc,ZodLiteral:()=>Wc,ZodLazy:()=>id,ZodKSUID:()=>Mi,ZodJWT:()=>Qi,ZodIntersection:()=>Xc,ZodIPv6:()=>qi,ZodIPv4:()=>Ci,ZodGUID:()=>Tn,ZodFunction:()=>cd,ZodFile:()=>Jc,ZodExactOptional:()=>Mc,ZodEnum:()=>Lt,ZodEmoji:()=>Pi,ZodEmail:()=>ji,ZodE164:()=>Vi,ZodDiscriminatedUnion:()=>Ac,ZodDefault:()=>Gc,ZodDate:()=>Nn,ZodCustomStringFormat:()=>Ut,ZodCustom:()=>bn,ZodCodec:()=>Ln,ZodCatch:()=>Zc,ZodCUID2:()=>Wi,ZodCUID:()=>Ki,ZodCIDRv6:()=>Yi,ZodCIDRv4:()=>Gi,ZodBoolean:()=>Dt,ZodBigIntFormat:()=>Zi,ZodBigInt:()=>Rt,ZodBase64URL:()=>Hi,ZodBase64:()=>Bi,ZodArray:()=>hc,ZodAny:()=>Uc});function yi(e,r,t){let i=Object.getPrototypeOf(e),n=BI.get(i);if(!n)n=new Set,BI.set(i,n);if(n.has(r))return;n.add(r);for(let _ in t){let u=t[_];Object.defineProperty(i,_,{configurable:!0,enumerable:!1,get(){let c=u.bind(this);return Object.defineProperty(this,_,{configurable:!0,writable:!0,enumerable:!0,value:c}),c},set(c){Object.defineProperty(this,_,{configurable:!0,writable:!0,enumerable:!0,value:c})}})}}function an(e){return Ta(bt,e)}function CT(e){return xu(ji,e)}function qT(e){return Ti(Tn,e)}function GT(e){return ju(Be,e)}function YT(e){return Pu(Be,e)}function BT(e){return Fu(Be,e)}function HT(e){return Ku(Be,e)}function VT(e){return fi(vn,e)}function QT(e){return fi(vn,{protocol:be.httpProtocol,hostname:be.domain,...b.normalizeParams(e)})}function ZT(e){return Wu(Pi,e)}function sT(e){return Ju(Fi,e)}function pT(e){return zu(Ki,e)}function ef(e){return Mu(Wi,e)}function rf(e){return Cu(Ji,e)}function tf(e){return qu(zi,e)}function nf(e){return Gu(Mi,e)}function _f(e){return Yu(Ci,e)}function uf(e){return $a(Nc,e)}function cf(e){return Bu(qi,e)}function df(e){return Hu(Gi,e)}function of(e){return Vu(Yi,e)}function gf(e){return Qu(Bi,e)}function lf(e){return Zu(Hi,e)}function Ef(e){return su(Vi,e)}function af(e){return pu(Qi,e)}function Tf(e,r,t={}){return ln(Ut,e,r,t)}function ff(e){return ln(Ut,"hostname",be.hostname,e)}function $f(e){return ln(Ut,"hex",be.hex,e)}function vf(e,r){let t=r?.enc??"hex",i=`${e}_${t}`,n=be[i];if(!n)throw Error(`Unrecognized hash format: ${i}`);return ln(Ut,i,n,r)}function kc(e){return Sa(mt,e)}function Ai(e){return La(Cr,e)}function Nf(e){return ba(Cr,e)}function kf(e){return Ua(Cr,e)}function If(e){return ma(Cr,e)}function Sf(e){return Da(Cr,e)}function Ic(e){return Ra(Dt,e)}function Of(e){return wa(Rt,e)}function Lf(e){return Xa(Zi,e)}function bf(e){return ya(Zi,e)}function Uf(e){return xa(Sc,e)}function mf(e){return ja(Oc,e)}function bc(e){return Pa(Lc,e)}function Df(){return Fa(Uc)}function Mr(){return Ka(mc)}function si(e){return Wa(Dc,e)}function Rf(e){return Ja(Rc,e)}function hf(e){return za(Nn,e)}function kn(e,r){return qa(hc,e,r)}function wf(e){let r=e._zod.def.shape;return e_(Object.keys(r))}function Af(e,r){let t={type:"object",shape:e??{},...b.normalizeParams(r)};return new In(t)}function Xf(e,r){return new In({type:"object",shape:e,catchall:si(),...b.normalizeParams(r)})}function yf(e,r){return new In({type:"object",shape:e,catchall:Mr(),...b.normalizeParams(r)})}function pi(e,r){return new Sn({type:"union",options:e,...b.normalizeParams(r)})}function xf(e,r){return new wc({type:"union",options:e,inclusive:!1,...b.normalizeParams(r)})}function jf(e,r,t){return new Ac({type:"union",options:r,discriminator:e,...b.normalizeParams(t)})}function yc(e,r){return new Xc({type:"intersection",left:e,right:r})}function jc(e,r,t){let i=r instanceof F,n=i?t:r;return new xc({type:"tuple",items:e,rest:i?r:null,...b.normalizeParams(n)})}function Pc(e,r,t){if(!r||!r._zod)return new Ot({type:"record",keyType:an(),valueType:e,...b.normalizeParams(r)});return new Ot({type:"record",keyType:e,valueType:r,...b.normalizeParams(t)})}function Pf(e,r,t){let i=fe(e);return i._zod.values=void 0,new Ot({type:"record",keyType:i,valueType:r,...b.normalizeParams(t)})}function Ff(e,r,t){return new Ot({type:"record",keyType:e,valueType:r,mode:"loose",...b.normalizeParams(t)})}function Kf(e,r,t){return new Fc({type:"map",keyType:e,valueType:r,...b.normalizeParams(t)})}function Wf(e,r){return new Kc({type:"set",valueType:e,...b.normalizeParams(r)})}function e_(e,r){let t=Array.isArray(e)?Object.fromEntries(e.map((i)=>[i,i])):e;return new Lt({type:"enum",entries:t,...b.normalizeParams(r)})}function Jf(e,r){return new Lt({type:"enum",entries:e,...b.normalizeParams(r)})}function zf(e,r){return new Wc({type:"literal",values:Array.isArray(e)?e:[e],...b.normalizeParams(r)})}function Mf(e){return Ga(Jc,e)}function r_(e){return new zc({type:"transform",transform:e})}function fn(e){return new t_({type:"optional",innerType:e})}function Cc(e){return new Mc({type:"optional",innerType:e})}function $n(e){return new qc({type:"nullable",innerType:e})}function Cf(e){return fn($n(e))}function Yc(e,r){return new Gc({type:"default",innerType:e,get defaultValue(){return typeof r==="function"?r():b.shallowClone(r)}})}function Hc(e,r){return new Bc({type:"prefault",innerType:e,get defaultValue(){return typeof r==="function"?r():b.shallowClone(r)}})}function Vc(e,r){return new n_({type:"nonoptional",innerType:e,...b.normalizeParams(r)})}function qf(e){return new Qc({type:"success",innerType:e})}function sc(e,r){return new Zc({type:"catch",innerType:e,catchValue:typeof r==="function"?r:()=>r})}function Gf(e){return Ca(pc,e)}function Xi(e,r){return new On({type:"pipe",in:e,out:r})}function Yf(e,r,t){return new Ln({type:"pipe",in:e,out:r,transform:t.decode,reverseTransform:t.encode})}function Bf(e){let r=e._zod.def;return new Ln({type:"pipe",in:r.out,out:r.in,transform:r.reverseTransform,reverseTransform:r.transform})}function td(e){return new rd({type:"readonly",innerType:e})}function Hf(e,r){return new nd({type:"template_literal",parts:e,...b.normalizeParams(r)})}function _d(e){return new id({type:"lazy",getter:e})}function Vf(e){return new ud({type:"promise",innerType:e})}function Qf(e){return new cd({type:"function",input:Array.isArray(e?.input)?jc(e?.input):e?.input??kn(Mr()),output:e?.output??Mr()})}function Zf(e){let r=new Z({check:"custom"});return r._zod.check=e,r}function sf(e,r){return Ya(bn,e??(()=>!0),r)}function dd(e,r={}){return Ba(bn,e,r)}function od(e,r){return Ha(e,r)}function r$(e,r={}){let t=new bn({type:"custom",check:"custom",fn:(i)=>i instanceof e,abort:!0,...b.normalizeParams(r)});return t._zod.bag.Class=e,t._zod.check=(i)=>{if(!(i.value instanceof e))i.issues.push({code:"invalid_type",expected:e.name,input:i.value,inst:t,path:[...t._zod.def.path??[]]})},t}function n$(e){let r=_d(()=>{return pi([an(e),kc(),Ic(),bc(),kn(r),Pc(an(),r)])});return r}function i$(e,r){return new ed({type:"pipe",in:r_(e),out:r})}var BI,J,xi,bt,H,ji,Tn,Be,vn,Pi,Fi,Ki,Wi,Ji,zi,Mi,Ci,Nc,qi,Gi,Yi,Bi,Hi,Vi,Qi,Ut,mt,Cr,Dt,Rt,Zi,Sc,Oc,Lc,Uc,mc,Dc,Rc,Nn,hc,In,Sn,wc,Ac,Xc,xc,Ot,Fc,Kc,Lt,Wc,Jc,zc,t_,Mc,qc,Gc,Bc,n_,Qc,Zc,pc,On,Ln,ed,rd,nd,id,ud,cd,bn,pf,e$,t$=(...e)=>Za({Codec:Ln,Boolean:Dt,String:bt},...e);var wi=h(()=>{Re();Re();Li();Si();_c();Ri();MT();BI=new WeakMap;J=$("ZodType",(e,r)=>{return F.init(e,r),Object.assign(e["~standard"],{jsonSchema:{input:En(e,"input"),output:En(e,"output")}}),e.toJSONSchema=sa(e,{}),e.def=r,e.type=r.type,Object.defineProperty(e,"_def",{value:r}),e.parse=(t,i)=>uc(e,t,i,{callee:e.parse}),e.safeParse=(t,i)=>dc(e,t,i),e.parseAsync=async(t,i)=>cc(e,t,i,{callee:e.parseAsync}),e.safeParseAsync=async(t,i)=>oc(e,t,i),e.spa=e.safeParseAsync,e.encode=(t,i)=>gc(e,t,i),e.decode=(t,i)=>lc(e,t,i),e.encodeAsync=async(t,i)=>Ec(e,t,i),e.decodeAsync=async(t,i)=>ac(e,t,i),e.safeEncode=(t,i)=>Tc(e,t,i),e.safeDecode=(t,i)=>fc(e,t,i),e.safeEncodeAsync=async(t,i)=>$c(e,t,i),e.safeDecodeAsync=async(t,i)=>vc(e,t,i),yi(e,"ZodType",{check(...t){let i=this.def;return this.clone(b.mergeDefs(i,{checks:[...i.checks??[],...t.map((n)=>typeof n==="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0})},with(...t){return this.check(...t)},clone(t,i){return fe(this,t,i)},brand(){return this},register(t,i){return t.add(this,i),this},refine(t,i){return this.check(dd(t,i))},superRefine(t,i){return this.check(od(t,i))},overwrite(t){return this.check(Pe(t))},optional(){return fn(this)},exactOptional(){return Cc(this)},nullable(){return $n(this)},nullish(){return fn($n(this))},nonoptional(t){return Vc(this,t)},array(){return kn(this)},or(t){return pi([this,t])},and(t){return yc(this,t)},transform(t){return Xi(this,r_(t))},default(t){return Yc(this,t)},prefault(t){return Hc(this,t)},catch(t){return sc(this,t)},pipe(t){return Xi(this,t)},readonly(){return td(this)},describe(t){let i=this.clone();return ge.add(i,{description:t}),i},meta(...t){if(t.length===0)return ge.get(this);let i=this.clone();return ge.add(i,t[0]),i},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(t){return t(this)}}),Object.defineProperty(e,"description",{get(){return ge.get(e)?.description},configurable:!0}),e}),xi=$("_ZodString",(e,r)=>{dt.init(e,r),J.init(e,r),e._zod.processJSONSchema=(i,n,_)=>pa(e,i,n,_);let t=e._zod.bag;e.format=t.format??null,e.minLength=t.minimum??null,e.maxLength=t.maximum??null,yi(e,"_ZodString",{regex(...i){return this.check(ot(...i))},includes(...i){return this.check(Et(...i))},startsWith(...i){return this.check(at(...i))},endsWith(...i){return this.check(Tt(...i))},min(...i){return this.check(tr(...i))},max(...i){return this.check(Fr(...i))},length(...i){return this.check(Kr(...i))},nonempty(...i){return this.check(tr(1,...i))},lowercase(i){return this.check(gt(i))},uppercase(i){return this.check(lt(i))},trim(){return this.check(vt())},normalize(...i){return this.check($t(...i))},toLowerCase(){return this.check(Nt())},toUpperCase(){return this.check(kt())},slugify(){return this.check(It())}})}),bt=$("ZodString",(e,r)=>{dt.init(e,r),xi.init(e,r),e.email=(t)=>e.check(xu(ji,t)),e.url=(t)=>e.check(fi(vn,t)),e.jwt=(t)=>e.check(pu(Qi,t)),e.emoji=(t)=>e.check(Wu(Pi,t)),e.guid=(t)=>e.check(Ti(Tn,t)),e.uuid=(t)=>e.check(ju(Be,t)),e.uuidv4=(t)=>e.check(Pu(Be,t)),e.uuidv6=(t)=>e.check(Fu(Be,t)),e.uuidv7=(t)=>e.check(Ku(Be,t)),e.nanoid=(t)=>e.check(Ju(Fi,t)),e.guid=(t)=>e.check(Ti(Tn,t)),e.cuid=(t)=>e.check(zu(Ki,t)),e.cuid2=(t)=>e.check(Mu(Wi,t)),e.ulid=(t)=>e.check(Cu(Ji,t)),e.base64=(t)=>e.check(Qu(Bi,t)),e.base64url=(t)=>e.check(Zu(Hi,t)),e.xid=(t)=>e.check(qu(zi,t)),e.ksuid=(t)=>e.check(Gu(Mi,t)),e.ipv4=(t)=>e.check(Yu(Ci,t)),e.ipv6=(t)=>e.check(Bu(qi,t)),e.cidrv4=(t)=>e.check(Hu(Gi,t)),e.cidrv6=(t)=>e.check(Vu(Yi,t)),e.e164=(t)=>e.check(su(Vi,t)),e.datetime=(t)=>e.check(FT(t)),e.date=(t)=>e.check(KT(t)),e.time=(t)=>e.check(WT(t)),e.duration=(t)=>e.check(JT(t))});H=$("ZodStringFormat",(e,r)=>{Q.init(e,r),xi.init(e,r)}),ji=$("ZodEmail",(e,r)=>{ul.init(e,r),H.init(e,r)});Tn=$("ZodGUID",(e,r)=>{il.init(e,r),H.init(e,r)});Be=$("ZodUUID",(e,r)=>{_l.init(e,r),H.init(e,r)});vn=$("ZodURL",(e,r)=>{cl.init(e,r),H.init(e,r)});Pi=$("ZodEmoji",(e,r)=>{dl.init(e,r),H.init(e,r)});Fi=$("ZodNanoID",(e,r)=>{ol.init(e,r),H.init(e,r)});Ki=$("ZodCUID",(e,r)=>{gl.init(e,r),H.init(e,r)});Wi=$("ZodCUID2",(e,r)=>{ll.init(e,r),H.init(e,r)});Ji=$("ZodULID",(e,r)=>{El.init(e,r),H.init(e,r)});zi=$("ZodXID",(e,r)=>{al.init(e,r),H.init(e,r)});Mi=$("ZodKSUID",(e,r)=>{Tl.init(e,r),H.init(e,r)});Ci=$("ZodIPv4",(e,r)=>{kl.init(e,r),H.init(e,r)});Nc=$("ZodMAC",(e,r)=>{Sl.init(e,r),H.init(e,r)});qi=$("ZodIPv6",(e,r)=>{Il.init(e,r),H.init(e,r)});Gi=$("ZodCIDRv4",(e,r)=>{Ol.init(e,r),H.init(e,r)});Yi=$("ZodCIDRv6",(e,r)=>{Ll.init(e,r),H.init(e,r)});Bi=$("ZodBase64",(e,r)=>{Ul.init(e,r),H.init(e,r)});Hi=$("ZodBase64URL",(e,r)=>{ml.init(e,r),H.init(e,r)});Vi=$("ZodE164",(e,r)=>{Dl.init(e,r),H.init(e,r)});Qi=$("ZodJWT",(e,r)=>{Rl.init(e,r),H.init(e,r)});Ut=$("ZodCustomStringFormat",(e,r)=>{hl.init(e,r),H.init(e,r)});mt=$("ZodNumber",(e,r)=>{Du.init(e,r),J.init(e,r),e._zod.processJSONSchema=(i,n,_)=>eT(e,i,n,_),yi(e,"ZodNumber",{gt(i,n){return this.check(Ge(i,n))},gte(i,n){return this.check($e(i,n))},min(i,n){return this.check($e(i,n))},lt(i,n){return this.check(qe(i,n))},lte(i,n){return this.check(Ue(i,n))},max(i,n){return this.check(Ue(i,n))},int(i){return this.check(Ai(i))},safe(i){return this.check(Ai(i))},positive(i){return this.check(Ge(0,i))},nonnegative(i){return this.check($e(0,i))},negative(i){return this.check(qe(0,i))},nonpositive(i){return this.check(Ue(0,i))},multipleOf(i,n){return this.check($r(i,n))},step(i,n){return this.check($r(i,n))},finite(){return this}});let t=e._zod.bag;e.minValue=Math.max(t.minimum??Number.NEGATIVE_INFINITY,t.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(t.maximum??Number.POSITIVE_INFINITY,t.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(t.format??"").includes("int")||Number.isSafeInteger(t.multipleOf??0.5),e.isFinite=!0,e.format=t.format??null});Cr=$("ZodNumberFormat",(e,r)=>{wl.init(e,r),mt.init(e,r)});Dt=$("ZodBoolean",(e,r)=>{_i.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>rT(e,t,i,n)});Rt=$("ZodBigInt",(e,r)=>{Ru.init(e,r),J.init(e,r),e._zod.processJSONSchema=(i,n,_)=>tT(e,i,n,_),e.gte=(i,n)=>e.check($e(i,n)),e.min=(i,n)=>e.check($e(i,n)),e.gt=(i,n)=>e.check(Ge(i,n)),e.gte=(i,n)=>e.check($e(i,n)),e.min=(i,n)=>e.check($e(i,n)),e.lt=(i,n)=>e.check(qe(i,n)),e.lte=(i,n)=>e.check(Ue(i,n)),e.max=(i,n)=>e.check(Ue(i,n)),e.positive=(i)=>e.check(Ge(BigInt(0),i)),e.negative=(i)=>e.check(qe(BigInt(0),i)),e.nonpositive=(i)=>e.check(Ue(BigInt(0),i)),e.nonnegative=(i)=>e.check($e(BigInt(0),i)),e.multipleOf=(i,n)=>e.check($r(i,n));let t=e._zod.bag;e.minValue=t.minimum??null,e.maxValue=t.maximum??null,e.format=t.format??null});Zi=$("ZodBigIntFormat",(e,r)=>{Al.init(e,r),Rt.init(e,r)});Sc=$("ZodSymbol",(e,r)=>{Xl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>nT(e,t,i,n)});Oc=$("ZodUndefined",(e,r)=>{yl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>_T(e,t,i,n)});Lc=$("ZodNull",(e,r)=>{xl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>iT(e,t,i,n)});Uc=$("ZodAny",(e,r)=>{jl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>dT(e,t,i,n)});mc=$("ZodUnknown",(e,r)=>{Pl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>oT(e,t,i,n)});Dc=$("ZodNever",(e,r)=>{Fl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>cT(e,t,i,n)});Rc=$("ZodVoid",(e,r)=>{Kl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>uT(e,t,i,n)});Nn=$("ZodDate",(e,r)=>{Wl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(i,n,_)=>gT(e,i,n,_),e.min=(i,n)=>e.check($e(i,n)),e.max=(i,n)=>e.check(Ue(i,n));let t=e._zod.bag;e.minDate=t.minimum?new Date(t.minimum):null,e.maxDate=t.maximum?new Date(t.maximum):null});hc=$("ZodArray",(e,r)=>{Jl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>OT(e,t,i,n),e.element=r.element,yi(e,"ZodArray",{min(t,i){return this.check(tr(t,i))},nonempty(t){return this.check(tr(1,t))},max(t,i){return this.check(Fr(t,i))},length(t,i){return this.check(Kr(t,i))},unwrap(){return this.element}})});In=$("ZodObject",(e,r)=>{zl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>LT(e,t,i,n),b.defineLazy(e,"shape",()=>{return r.shape}),yi(e,"ZodObject",{keyof(){return e_(Object.keys(this._zod.def.shape))},catchall(t){return this.clone({...this._zod.def,catchall:t})},passthrough(){return this.clone({...this._zod.def,catchall:Mr()})},loose(){return this.clone({...this._zod.def,catchall:Mr()})},strict(){return this.clone({...this._zod.def,catchall:si()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(t){return b.extend(this,t)},safeExtend(t){return b.safeExtend(this,t)},merge(t){return b.merge(this,t)},pick(t){return b.pick(this,t)},omit(t){return b.omit(this,t)},partial(...t){return b.partial(t_,this,t[0])},required(...t){return b.required(n_,this,t[0])}})});Sn=$("ZodUnion",(e,r)=>{ui.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>tc(e,t,i,n),e.options=r.options});wc=$("ZodXor",(e,r)=>{Sn.init(e,r),Ml.init(e,r),e._zod.processJSONSchema=(t,i,n)=>tc(e,t,i,n),e.options=r.options});Ac=$("ZodDiscriminatedUnion",(e,r)=>{Sn.init(e,r),Cl.init(e,r)});Xc=$("ZodIntersection",(e,r)=>{ql.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>bT(e,t,i,n)});xc=$("ZodTuple",(e,r)=>{hu.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>UT(e,t,i,n),e.rest=(t)=>e.clone({...e._zod.def,rest:t})});Ot=$("ZodRecord",(e,r)=>{Gl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>mT(e,t,i,n),e.keyType=r.keyType,e.valueType=r.valueType});Fc=$("ZodMap",(e,r)=>{Yl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>IT(e,t,i,n),e.keyType=r.keyType,e.valueType=r.valueType,e.min=(...t)=>e.check(Ye(...t)),e.nonempty=(t)=>e.check(Ye(1,t)),e.max=(...t)=>e.check(vr(...t)),e.size=(...t)=>e.check(Pr(...t))});Kc=$("ZodSet",(e,r)=>{Bl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>ST(e,t,i,n),e.min=(...t)=>e.check(Ye(...t)),e.nonempty=(t)=>e.check(Ye(1,t)),e.max=(...t)=>e.check(vr(...t)),e.size=(...t)=>e.check(Pr(...t))});Lt=$("ZodEnum",(e,r)=>{Hl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(i,n,_)=>lT(e,i,n,_),e.enum=r.entries,e.options=Object.values(r.entries);let t=new Set(Object.keys(r.entries));e.extract=(i,n)=>{let _={};for(let u of i)if(t.has(u))_[u]=r.entries[u];else throw Error(`Key ${u} not found in enum`);return new Lt({...r,checks:[],...b.normalizeParams(n),entries:_})},e.exclude=(i,n)=>{let _={...r.entries};for(let u of i)if(t.has(u))delete _[u];else throw Error(`Key ${u} not found in enum`);return new Lt({...r,checks:[],...b.normalizeParams(n),entries:_})}});Wc=$("ZodLiteral",(e,r)=>{Vl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>ET(e,t,i,n),e.values=new Set(r.values),Object.defineProperty(e,"value",{get(){if(r.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return r.values[0]}})});Jc=$("ZodFile",(e,r)=>{Ql.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>fT(e,t,i,n),e.min=(t,i)=>e.check(Ye(t,i)),e.max=(t,i)=>e.check(vr(t,i)),e.mime=(t,i)=>e.check(ft(Array.isArray(t)?t:[t],i))});zc=$("ZodTransform",(e,r)=>{Zl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>kT(e,t,i,n),e._zod.parse=(t,i)=>{if(i.direction==="backward")throw new it(e.constructor.name);t.addIssue=(_)=>{if(typeof _==="string")t.issues.push(b.issue(_,t.value,r));else{let u=_;if(u.fatal)u.continue=!1;u.code??(u.code="custom"),u.input??(u.input=t.value),u.inst??(u.inst=e),t.issues.push(b.issue(u))}};let n=r.transform(t.value,t);if(n instanceof Promise)return n.then((_)=>{return t.value=_,t.fallback=!0,t});return t.value=n,t.fallback=!0,t}});t_=$("ZodOptional",(e,r)=>{wu.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>nc(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});Mc=$("ZodExactOptional",(e,r)=>{sl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>nc(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});qc=$("ZodNullable",(e,r)=>{pl.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>DT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});Gc=$("ZodDefault",(e,r)=>{eE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>hT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Bc=$("ZodPrefault",(e,r)=>{rE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>wT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});n_=$("ZodNonOptional",(e,r)=>{tE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>RT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});Qc=$("ZodSuccess",(e,r)=>{nE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>$T(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});Zc=$("ZodCatch",(e,r)=>{iE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>AT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});pc=$("ZodNaN",(e,r)=>{_E.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>aT(e,t,i,n)});On=$("ZodPipe",(e,r)=>{Au.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>XT(e,t,i,n),e.in=r.in,e.out=r.out});Ln=$("ZodCodec",(e,r)=>{On.init(e,r),ci.init(e,r)});ed=$("ZodPreprocess",(e,r)=>{On.init(e,r),uE.init(e,r)}),rd=$("ZodReadonly",(e,r)=>{cE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>yT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});nd=$("ZodTemplateLiteral",(e,r)=>{dE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>TT(e,t,i,n)});id=$("ZodLazy",(e,r)=>{lE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>jT(e,t,i,n),e.unwrap=()=>e._zod.def.getter()});ud=$("ZodPromise",(e,r)=>{gE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>xT(e,t,i,n),e.unwrap=()=>e._zod.def.innerType});cd=$("ZodFunction",(e,r)=>{oE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>NT(e,t,i,n)});bn=$("ZodCustom",(e,r)=>{EE.init(e,r),J.init(e,r),e._zod.processJSONSchema=(t,i,n)=>vT(e,t,i,n)});pf=Va,e$=Qa});function VI(e){ie({customError:e})}function QI(){return ie().customError}var HI,gd;var ZI=h(()=>{Re();HI={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};(function(e){})(gd||(gd={}))});function Tw(e,r){let t=e.$schema;if(t==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(t==="http://json-schema.org/draft-07/schema#")return"draft-7";if(t==="http://json-schema.org/draft-04/schema#")return"draft-4";return r??"draft-2020-12"}function fw(e,r){if(!e.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let t=e.slice(1).split("/").filter(Boolean);if(t.length===0)return r.rootSchema;let i=r.version==="draft-2020-12"?"$defs":"definitions";if(t[0]===i){let n=t[1];if(!n||!r.defs[n])throw Error(`Reference not found: ${e}`);return r.defs[n]}throw Error(`Reference not found: ${e}`)}function sI(e,r){if(e.not!==void 0){if(typeof e.not==="object"&&Object.keys(e.not).length===0)return w.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let n=e.$ref;if(r.refs.has(n))return r.refs.get(n);if(r.processing.has(n))return w.lazy(()=>{if(!r.refs.has(n))throw Error(`Circular reference not resolved: ${n}`);return r.refs.get(n)});r.processing.add(n);let _=fw(n,r),u=ve(_,r);return r.refs.set(n,u),r.processing.delete(n),u}if(e.enum!==void 0){let n=e.enum;if(r.version==="openapi-3.0"&&e.nullable===!0&&n.length===1&&n[0]===null)return w.null();if(n.length===0)return w.never();if(n.length===1)return w.literal(n[0]);if(n.every((u)=>typeof u==="string"))return w.enum(n);let _=n.map((u)=>w.literal(u));if(_.length<2)return _[0];return w.union([_[0],_[1],..._.slice(2)])}if(e.const!==void 0)return w.literal(e.const);let t=e.type;if(Array.isArray(t)){let n=t.map((_)=>{let u={...e,type:_};return sI(u,r)});if(n.length===0)return w.never();if(n.length===1)return n[0];return w.union(n)}if(!t)return w.any();let i;switch(t){case"string":{let n=w.string();if(e.format){let _=e.format;if(_==="email")n=n.check(w.email());else if(_==="uri"||_==="uri-reference")n=n.check(w.url());else if(_==="uuid"||_==="guid")n=n.check(w.uuid());else if(_==="date-time")n=n.check(w.iso.datetime());else if(_==="date")n=n.check(w.iso.date());else if(_==="time")n=n.check(w.iso.time());else if(_==="duration")n=n.check(w.iso.duration());else if(_==="ipv4")n=n.check(w.ipv4());else if(_==="ipv6")n=n.check(w.ipv6());else if(_==="mac")n=n.check(w.mac());else if(_==="cidr")n=n.check(w.cidrv4());else if(_==="cidr-v6")n=n.check(w.cidrv6());else if(_==="base64")n=n.check(w.base64());else if(_==="base64url")n=n.check(w.base64url());else if(_==="e164")n=n.check(w.e164());else if(_==="jwt")n=n.check(w.jwt());else if(_==="emoji")n=n.check(w.emoji());else if(_==="nanoid")n=n.check(w.nanoid());else if(_==="cuid")n=n.check(w.cuid());else if(_==="cuid2")n=n.check(w.cuid2());else if(_==="ulid")n=n.check(w.ulid());else if(_==="xid")n=n.check(w.xid());else if(_==="ksuid")n=n.check(w.ksuid())}if(typeof e.minLength==="number")n=n.min(e.minLength);if(typeof e.maxLength==="number")n=n.max(e.maxLength);if(e.pattern)n=n.regex(new RegExp(e.pattern));i=n;break}case"number":case"integer":{let n=t==="integer"?w.number().int():w.number();if(typeof e.minimum==="number")n=n.min(e.minimum);if(typeof e.maximum==="number")n=n.max(e.maximum);if(typeof e.exclusiveMinimum==="number")n=n.gt(e.exclusiveMinimum);else if(e.exclusiveMinimum===!0&&typeof e.minimum==="number")n=n.gt(e.minimum);if(typeof e.exclusiveMaximum==="number")n=n.lt(e.exclusiveMaximum);else if(e.exclusiveMaximum===!0&&typeof e.maximum==="number")n=n.lt(e.maximum);if(typeof e.multipleOf==="number")n=n.multipleOf(e.multipleOf);i=n;break}case"boolean":{i=w.boolean();break}case"null":{i=w.null();break}case"object":{let n={},_=e.properties||{},u=new Set(e.required||[]);for(let[d,o]of Object.entries(_)){let a=ve(o,r);n[d]=u.has(d)?a:a.optional()}if(e.propertyNames){let d=ve(e.propertyNames,r),o=e.additionalProperties&&typeof e.additionalProperties==="object"?ve(e.additionalProperties,r):w.any();if(Object.keys(n).length===0){i=w.record(d,o);break}let a=w.object(n).passthrough(),g=w.looseRecord(d,o);i=w.intersection(a,g);break}if(e.patternProperties){let d=e.patternProperties,o=Object.keys(d),a=[];for(let E of o){let l=ve(d[E],r),T=w.string().regex(new RegExp(E));a.push(w.looseRecord(T,l))}let g=[];if(Object.keys(n).length>0)g.push(w.object(n).passthrough());if(g.push(...a),g.length===0)i=w.object({}).passthrough();else if(g.length===1)i=g[0];else{let E=w.intersection(g[0],g[1]);for(let l=2;lve(d,r)),c=_&&typeof _==="object"&&!Array.isArray(_)?ve(_,r):void 0;if(c)i=w.tuple(u).rest(c);else i=w.tuple(u);if(typeof e.minItems==="number")i=i.check(w.minLength(e.minItems));if(typeof e.maxItems==="number")i=i.check(w.maxLength(e.maxItems))}else if(Array.isArray(_)){let u=_.map((d)=>ve(d,r)),c=e.additionalItems&&typeof e.additionalItems==="object"?ve(e.additionalItems,r):void 0;if(c)i=w.tuple(u).rest(c);else i=w.tuple(u);if(typeof e.minItems==="number")i=i.check(w.minLength(e.minItems));if(typeof e.maxItems==="number")i=i.check(w.maxLength(e.maxItems))}else if(_!==void 0){let u=ve(_,r),c=w.array(u);if(typeof e.minItems==="number")c=c.min(e.minItems);if(typeof e.maxItems==="number")c=c.max(e.maxItems);i=c}else i=w.array(w.any());break}default:throw Error(`Unsupported type: ${t}`)}return i}function ve(e,r){if(typeof e==="boolean")return e?w.any():w.never();let t=sI(e,r),i=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let c=e.anyOf.map((o)=>ve(o,r)),d=w.union(c);t=i?w.intersection(t,d):d}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map((o)=>ve(o,r)),d=w.xor(c);t=i?w.intersection(t,d):d}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)t=i?t:w.any();else{let c=i?t:ve(e.allOf[0],r),d=i?0:1;for(let o=d;o0)r.registry.add(t,n);if(e.description)t=t.describe(e.description);return t}function _$(e,r){if(typeof e==="boolean")return e?w.any():w.never();let t;try{t=JSON.parse(JSON.stringify(e))}catch{throw Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let i=Tw(t,r?.defaultTarget),n=t.$defs||t.definitions||{},_={version:i,defs:n,refs:new Map,processing:new Set,rootSchema:t,registry:r?.registry??ge};return ve(t,_)}var w,aw;var pI=h(()=>{ai();_c();Ri();wi();w={...hi,...ic,iso:St},aw=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"])});var ld={};Qe(ld,{string:()=>$w,number:()=>vw,date:()=>Iw,boolean:()=>Nw,bigint:()=>kw});function $w(e){return fa(bt,e)}function vw(e){return Oa(mt,e)}function Nw(e){return ha(Dt,e)}function kw(e){return Aa(Rt,e)}function Iw(e){return Ma(Nn,e)}var eS=h(()=>{Re();wi()});var Ed={};Qe(Ed,{xor:()=>xf,xid:()=>tf,void:()=>Rf,uuidv7:()=>HT,uuidv6:()=>BT,uuidv4:()=>YT,uuid:()=>GT,util:()=>b,url:()=>VT,uppercase:()=>lt,unknown:()=>Mr,union:()=>pi,undefined:()=>mf,ulid:()=>rf,uint64:()=>bf,uint32:()=>Sf,tuple:()=>jc,trim:()=>vt,treeifyError:()=>_u,transform:()=>r_,toUpperCase:()=>kt,toLowerCase:()=>Nt,toJSONSchema:()=>Oi,templateLiteral:()=>Hf,symbol:()=>Uf,superRefine:()=>od,success:()=>qf,stringbool:()=>t$,stringFormat:()=>Tf,string:()=>an,strictObject:()=>Xf,startsWith:()=>at,slugify:()=>It,size:()=>Pr,setErrorMap:()=>VI,set:()=>Wf,safeParseAsync:()=>oc,safeParse:()=>dc,safeEncodeAsync:()=>$c,safeEncode:()=>Tc,safeDecodeAsync:()=>vc,safeDecode:()=>fc,registry:()=>Ei,regexes:()=>be,regex:()=>ot,refine:()=>dd,record:()=>Pc,readonly:()=>td,property:()=>Ii,promise:()=>Vf,prettifyError:()=>uu,preprocess:()=>i$,prefault:()=>Hc,positive:()=>$i,pipe:()=>Xi,partialRecord:()=>Pf,parseAsync:()=>cc,parse:()=>uc,overwrite:()=>Pe,optional:()=>fn,object:()=>Af,number:()=>kc,nullish:()=>Cf,nullable:()=>$n,null:()=>bc,normalize:()=>$t,nonpositive:()=>Ni,nonoptional:()=>Vc,nonnegative:()=>ki,never:()=>si,negative:()=>vi,nativeEnum:()=>Jf,nanoid:()=>sT,nan:()=>Gf,multipleOf:()=>$r,minSize:()=>Ye,minLength:()=>tr,mime:()=>ft,meta:()=>e$,maxSize:()=>vr,maxLength:()=>Fr,map:()=>Kf,mac:()=>uf,lte:()=>Ue,lt:()=>qe,lowercase:()=>gt,looseRecord:()=>Ff,looseObject:()=>yf,locales:()=>gn,literal:()=>zf,length:()=>Kr,lazy:()=>_d,ksuid:()=>nf,keyof:()=>wf,jwt:()=>af,json:()=>n$,iso:()=>St,ipv6:()=>cf,ipv4:()=>_f,invertCodec:()=>Bf,intersection:()=>yc,int64:()=>Lf,int32:()=>If,int:()=>Ai,instanceof:()=>r$,includes:()=>Et,httpUrl:()=>QT,hostname:()=>ff,hex:()=>$f,hash:()=>vf,guid:()=>qT,gte:()=>$e,gt:()=>Ge,globalRegistry:()=>ge,getErrorMap:()=>QI,function:()=>Qf,fromJSONSchema:()=>_$,formatError:()=>tn,float64:()=>kf,float32:()=>Nf,flattenError:()=>rn,file:()=>Mf,exactOptional:()=>Cc,enum:()=>e_,endsWith:()=>Tt,encodeAsync:()=>Ec,encode:()=>gc,emoji:()=>ZT,email:()=>CT,e164:()=>Ef,discriminatedUnion:()=>jf,describe:()=>pf,decodeAsync:()=>ac,decode:()=>lc,date:()=>hf,custom:()=>sf,cuid2:()=>ef,cuid:()=>pT,core:()=>nr,config:()=>ie,coerce:()=>ld,codec:()=>Yf,clone:()=>fe,cidrv6:()=>of,cidrv4:()=>df,check:()=>Zf,catch:()=>sc,boolean:()=>Ic,bigint:()=>Of,base64url:()=>lf,base64:()=>gf,array:()=>kn,any:()=>Df,_function:()=>Qf,_default:()=>Yc,_ZodString:()=>xi,ZodXor:()=>wc,ZodXID:()=>zi,ZodVoid:()=>Rc,ZodUnknown:()=>mc,ZodUnion:()=>Sn,ZodUndefined:()=>Oc,ZodUUID:()=>Be,ZodURL:()=>vn,ZodULID:()=>Ji,ZodType:()=>J,ZodTuple:()=>xc,ZodTransform:()=>zc,ZodTemplateLiteral:()=>nd,ZodSymbol:()=>Sc,ZodSuccess:()=>Qc,ZodStringFormat:()=>H,ZodString:()=>bt,ZodSet:()=>Kc,ZodRecord:()=>Ot,ZodRealError:()=>Se,ZodReadonly:()=>rd,ZodPromise:()=>ud,ZodPreprocess:()=>ed,ZodPrefault:()=>Bc,ZodPipe:()=>On,ZodOptional:()=>t_,ZodObject:()=>In,ZodNumberFormat:()=>Cr,ZodNumber:()=>mt,ZodNullable:()=>qc,ZodNull:()=>Lc,ZodNonOptional:()=>n_,ZodNever:()=>Dc,ZodNanoID:()=>Fi,ZodNaN:()=>pc,ZodMap:()=>Fc,ZodMAC:()=>Nc,ZodLiteral:()=>Wc,ZodLazy:()=>id,ZodKSUID:()=>Mi,ZodJWT:()=>Qi,ZodIssueCode:()=>HI,ZodIntersection:()=>Xc,ZodISOTime:()=>mi,ZodISODuration:()=>Di,ZodISODateTime:()=>bi,ZodISODate:()=>Ui,ZodIPv6:()=>qi,ZodIPv4:()=>Ci,ZodGUID:()=>Tn,ZodFunction:()=>cd,ZodFirstPartyTypeKind:()=>gd,ZodFile:()=>Jc,ZodExactOptional:()=>Mc,ZodError:()=>YI,ZodEnum:()=>Lt,ZodEmoji:()=>Pi,ZodEmail:()=>ji,ZodE164:()=>Vi,ZodDiscriminatedUnion:()=>Ac,ZodDefault:()=>Gc,ZodDate:()=>Nn,ZodCustomStringFormat:()=>Ut,ZodCustom:()=>bn,ZodCodec:()=>Ln,ZodCatch:()=>Zc,ZodCUID2:()=>Wi,ZodCUID:()=>Ki,ZodCIDRv6:()=>Yi,ZodCIDRv4:()=>Gi,ZodBoolean:()=>Dt,ZodBigIntFormat:()=>Zi,ZodBigInt:()=>Rt,ZodBase64URL:()=>Hi,ZodBase64:()=>Bi,ZodArray:()=>hc,ZodAny:()=>Uc,TimePrecision:()=>ec,NEVER:()=>ru,$output:()=>Xu,$input:()=>yu,$brand:()=>tu});var u$=h(()=>{Re();Re();LE();Re();Li();pI();Ea();Ri();Ri();eS();wi();_c();zT();MT();ZI();ie(di())});var rS={};Qe(rS,{z:()=>Ed,xor:()=>xf,xid:()=>tf,void:()=>Rf,uuidv7:()=>HT,uuidv6:()=>BT,uuidv4:()=>YT,uuid:()=>GT,util:()=>b,url:()=>VT,uppercase:()=>lt,unknown:()=>Mr,union:()=>pi,undefined:()=>mf,ulid:()=>rf,uint64:()=>bf,uint32:()=>Sf,tuple:()=>jc,trim:()=>vt,treeifyError:()=>_u,transform:()=>r_,toUpperCase:()=>kt,toLowerCase:()=>Nt,toJSONSchema:()=>Oi,templateLiteral:()=>Hf,symbol:()=>Uf,superRefine:()=>od,success:()=>qf,stringbool:()=>t$,stringFormat:()=>Tf,string:()=>an,strictObject:()=>Xf,startsWith:()=>at,slugify:()=>It,size:()=>Pr,setErrorMap:()=>VI,set:()=>Wf,safeParseAsync:()=>oc,safeParse:()=>dc,safeEncodeAsync:()=>$c,safeEncode:()=>Tc,safeDecodeAsync:()=>vc,safeDecode:()=>fc,registry:()=>Ei,regexes:()=>be,regex:()=>ot,refine:()=>dd,record:()=>Pc,readonly:()=>td,property:()=>Ii,promise:()=>Vf,prettifyError:()=>uu,preprocess:()=>i$,prefault:()=>Hc,positive:()=>$i,pipe:()=>Xi,partialRecord:()=>Pf,parseAsync:()=>cc,parse:()=>uc,overwrite:()=>Pe,optional:()=>fn,object:()=>Af,number:()=>kc,nullish:()=>Cf,nullable:()=>$n,null:()=>bc,normalize:()=>$t,nonpositive:()=>Ni,nonoptional:()=>Vc,nonnegative:()=>ki,never:()=>si,negative:()=>vi,nativeEnum:()=>Jf,nanoid:()=>sT,nan:()=>Gf,multipleOf:()=>$r,minSize:()=>Ye,minLength:()=>tr,mime:()=>ft,meta:()=>e$,maxSize:()=>vr,maxLength:()=>Fr,map:()=>Kf,mac:()=>uf,lte:()=>Ue,lt:()=>qe,lowercase:()=>gt,looseRecord:()=>Ff,looseObject:()=>yf,locales:()=>gn,literal:()=>zf,length:()=>Kr,lazy:()=>_d,ksuid:()=>nf,keyof:()=>wf,jwt:()=>af,json:()=>n$,iso:()=>St,ipv6:()=>cf,ipv4:()=>_f,invertCodec:()=>Bf,intersection:()=>yc,int64:()=>Lf,int32:()=>If,int:()=>Ai,instanceof:()=>r$,includes:()=>Et,httpUrl:()=>QT,hostname:()=>ff,hex:()=>$f,hash:()=>vf,guid:()=>qT,gte:()=>$e,gt:()=>Ge,globalRegistry:()=>ge,getErrorMap:()=>QI,function:()=>Qf,fromJSONSchema:()=>_$,formatError:()=>tn,float64:()=>kf,float32:()=>Nf,flattenError:()=>rn,file:()=>Mf,exactOptional:()=>Cc,enum:()=>e_,endsWith:()=>Tt,encodeAsync:()=>Ec,encode:()=>gc,emoji:()=>ZT,email:()=>CT,e164:()=>Ef,discriminatedUnion:()=>jf,describe:()=>pf,default:()=>Sw,decodeAsync:()=>ac,decode:()=>lc,date:()=>hf,custom:()=>sf,cuid2:()=>ef,cuid:()=>pT,core:()=>nr,config:()=>ie,coerce:()=>ld,codec:()=>Yf,clone:()=>fe,cidrv6:()=>of,cidrv4:()=>df,check:()=>Zf,catch:()=>sc,boolean:()=>Ic,bigint:()=>Of,base64url:()=>lf,base64:()=>gf,array:()=>kn,any:()=>Df,_function:()=>Qf,_default:()=>Yc,_ZodString:()=>xi,ZodXor:()=>wc,ZodXID:()=>zi,ZodVoid:()=>Rc,ZodUnknown:()=>mc,ZodUnion:()=>Sn,ZodUndefined:()=>Oc,ZodUUID:()=>Be,ZodURL:()=>vn,ZodULID:()=>Ji,ZodType:()=>J,ZodTuple:()=>xc,ZodTransform:()=>zc,ZodTemplateLiteral:()=>nd,ZodSymbol:()=>Sc,ZodSuccess:()=>Qc,ZodStringFormat:()=>H,ZodString:()=>bt,ZodSet:()=>Kc,ZodRecord:()=>Ot,ZodRealError:()=>Se,ZodReadonly:()=>rd,ZodPromise:()=>ud,ZodPreprocess:()=>ed,ZodPrefault:()=>Bc,ZodPipe:()=>On,ZodOptional:()=>t_,ZodObject:()=>In,ZodNumberFormat:()=>Cr,ZodNumber:()=>mt,ZodNullable:()=>qc,ZodNull:()=>Lc,ZodNonOptional:()=>n_,ZodNever:()=>Dc,ZodNanoID:()=>Fi,ZodNaN:()=>pc,ZodMap:()=>Fc,ZodMAC:()=>Nc,ZodLiteral:()=>Wc,ZodLazy:()=>id,ZodKSUID:()=>Mi,ZodJWT:()=>Qi,ZodIssueCode:()=>HI,ZodIntersection:()=>Xc,ZodISOTime:()=>mi,ZodISODuration:()=>Di,ZodISODateTime:()=>bi,ZodISODate:()=>Ui,ZodIPv6:()=>qi,ZodIPv4:()=>Ci,ZodGUID:()=>Tn,ZodFunction:()=>cd,ZodFirstPartyTypeKind:()=>gd,ZodFile:()=>Jc,ZodExactOptional:()=>Mc,ZodError:()=>YI,ZodEnum:()=>Lt,ZodEmoji:()=>Pi,ZodEmail:()=>ji,ZodE164:()=>Vi,ZodDiscriminatedUnion:()=>Ac,ZodDefault:()=>Gc,ZodDate:()=>Nn,ZodCustomStringFormat:()=>Ut,ZodCustom:()=>bn,ZodCodec:()=>Ln,ZodCatch:()=>Zc,ZodCUID2:()=>Wi,ZodCUID:()=>Ki,ZodCIDRv6:()=>Yi,ZodCIDRv4:()=>Gi,ZodBoolean:()=>Dt,ZodBigIntFormat:()=>Zi,ZodBigInt:()=>Rt,ZodBase64URL:()=>Hi,ZodBase64:()=>Bi,ZodArray:()=>hc,ZodAny:()=>Uc,TimePrecision:()=>ec,NEVER:()=>ru,$output:()=>Xu,$input:()=>yu,$brand:()=>tu});var Sw;var tS=h(()=>{u$();u$();Sw=Ed});var f_=Hr((yX)=>{class G$ extends Error{constructor(e,r,t){super(t);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=e,this.nestedError=void 0}}class GO extends G${constructor(e){super(1,"commander.invalidArgument",e);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}yX.CommanderError=G$;yX.InvalidArgumentError=GO});var Hd=Hr((KX)=>{var{InvalidArgumentError:PX}=f_();class YO{constructor(e,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}if(this._name.length>3&&this._name.slice(-3)==="...")this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_concatValue(e,r){if(r===this.defaultValue||!Array.isArray(r))return[e];return r.concat(e)}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,t)=>{if(!this.argChoices.includes(r))throw new PX(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(r,t);return r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function FX(e){let r=e.name()+(e.variadic===!0?"...":"");return e.required?"<"+r+">":"["+r+"]"}KX.Argument=YO;KX.humanReadableArgName=FX});var Y$=Hr((MX)=>{var{humanReadableArgName:zX}=Hd();class BO{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let r=e.commands.filter((i)=>!i._hidden),t=e._getHelpCommand();if(t&&!t._hidden)r.push(t);if(this.sortSubcommands)r.sort((i,n)=>{return i.name().localeCompare(n.name())});return r}compareOptions(e,r){let t=(i)=>{return i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"")};return t(e).localeCompare(t(r))}visibleOptions(e){let r=e.options.filter((i)=>!i.hidden),t=e._getHelpOption();if(t&&!t.hidden){let i=t.short&&e._findOption(t.short),n=t.long&&e._findOption(t.long);if(!i&&!n)r.push(t);else if(t.long&&!n)r.push(e.createOption(t.long,t.description));else if(t.short&&!i)r.push(e.createOption(t.short,t.description))}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let r=[];for(let t=e.parent;t;t=t.parent){let i=t.options.filter((n)=>!n.hidden);r.push(...i)}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleArguments(e){if(e._argsDescription)e.registeredArguments.forEach((r)=>{r.description=r.description||e._argsDescription[r.name()]||""});if(e.registeredArguments.find((r)=>r.description))return e.registeredArguments;return[]}subcommandTerm(e){let r=e.registeredArguments.map((t)=>zX(t)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,r){return r.visibleCommands(e).reduce((t,i)=>{return Math.max(t,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(i))))},0)}longestOptionTermLength(e,r){return r.visibleOptions(e).reduce((t,i)=>{return Math.max(t,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestGlobalOptionTermLength(e,r){return r.visibleGlobalOptions(e).reduce((t,i)=>{return Math.max(t,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestArgumentTermLength(e,r){return r.visibleArguments(e).reduce((t,i)=>{return Math.max(t,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(i))))},0)}commandUsage(e){let r=e._name;if(e._aliases[0])r=r+"|"+e._aliases[0];let t="";for(let i=e.parent;i;i=i.parent)t=i.name()+" "+t;return t+r+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let r=[];if(e.argChoices)r.push(`choices: ${e.argChoices.map((t)=>JSON.stringify(t)).join(", ")}`);if(e.defaultValue!==void 0){if(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==="boolean")r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`)}if(e.presetArg!==void 0&&e.optional)r.push(`preset: ${JSON.stringify(e.presetArg)}`);if(e.envVar!==void 0)r.push(`env: ${e.envVar}`);if(r.length>0)return`${e.description} (${r.join(", ")})`;return e.description}argumentDescription(e){let r=[];if(e.argChoices)r.push(`choices: ${e.argChoices.map((t)=>JSON.stringify(t)).join(", ")}`);if(e.defaultValue!==void 0)r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`);if(r.length>0){let t=`(${r.join(", ")})`;if(e.description)return`${e.description} ${t}`;return t}return e.description}formatHelp(e,r){let t=r.padWidth(e,r),i=r.helpWidth??80;function n(a,g){return r.formatItem(a,t,g,r)}let _=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(e))}`,""],u=r.commandDescription(e);if(u.length>0)_=_.concat([r.boxWrap(r.styleCommandDescription(u),i),""]);let c=r.visibleArguments(e).map((a)=>{return n(r.styleArgumentTerm(r.argumentTerm(a)),r.styleArgumentDescription(r.argumentDescription(a)))});if(c.length>0)_=_.concat([r.styleTitle("Arguments:"),...c,""]);let d=r.visibleOptions(e).map((a)=>{return n(r.styleOptionTerm(r.optionTerm(a)),r.styleOptionDescription(r.optionDescription(a)))});if(d.length>0)_=_.concat([r.styleTitle("Options:"),...d,""]);if(r.showGlobalOptions){let a=r.visibleGlobalOptions(e).map((g)=>{return n(r.styleOptionTerm(r.optionTerm(g)),r.styleOptionDescription(r.optionDescription(g)))});if(a.length>0)_=_.concat([r.styleTitle("Global Options:"),...a,""])}let o=r.visibleCommands(e).map((a)=>{return n(r.styleSubcommandTerm(r.subcommandTerm(a)),r.styleSubcommandDescription(r.subcommandDescription(a)))});if(o.length>0)_=_.concat([r.styleTitle("Commands:"),...o,""]);return _.join(` -`)}displayWidth(e){return HO(e).length}styleTitle(e){return e}styleUsage(e){return e.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r==="[command]")return this.styleSubcommandText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleCommandText(r)}).join(" ")}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleSubcommandText(r)}).join(" ")}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,r){return Math.max(r.longestOptionTermLength(e,r),r.longestGlobalOptionTermLength(e,r),r.longestSubcommandTermLength(e,r),r.longestArgumentTermLength(e,r))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,r,t,i){let _=" ".repeat(2);if(!t)return _+e;let u=e.padEnd(r+e.length-i.displayWidth(e)),c=2,o=(this.helpWidth??80)-r-c-2,a;if(o{let u=_.match(i);if(u===null){n.push("");return}let c=[u.shift()],d=this.displayWidth(c[0]);u.forEach((o)=>{let a=this.displayWidth(o);if(d+a<=r){c.push(o),d+=a;return}n.push(c.join(""));let g=o.trimStart();c=[g],d=this.displayWidth(g)}),n.push(c.join(""))}),n.join(` -`)}}function HO(e){let r=/\x1b\[\d*(;\d*)*m/g;return e.replace(r,"")}MX.Help=BO;MX.stripColor=HO});var B$=Hr((BX)=>{var{InvalidArgumentError:GX}=f_();class QO{constructor(e,r){this.flags=e,this.description=r||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let t=YX(e);if(this.short=t.shortFlag,this.long=t.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let r=e;if(typeof e==="string")r={[e]:!0};return this.implied=Object.assign(this.implied||{},r),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,r){if(r===this.defaultValue||!Array.isArray(r))return[e];return r.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,t)=>{if(!this.argChoices.includes(r))throw new GX(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(r,t);return r},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return VO(this.name().replace(/^no-/,""));return VO(this.name())}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class ZO{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach((r)=>{if(r.negate)this.negativeOptions.set(r.attributeName(),r);else this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,t)=>{if(this.positiveOptions.has(t))this.dualOptions.add(t)})}valueFromOption(e,r){let t=r.attributeName();if(!this.dualOptions.has(t))return!0;let i=this.negativeOptions.get(t).presetArg,n=i!==void 0?i:!1;return r.negate===(n===e)}}function VO(e){return e.split("-").reduce((r,t)=>{return r+t[0].toUpperCase()+t.slice(1)})}function YX(e){let r,t,i=/^-[^-]$/,n=/^--[^-]/,_=e.split(/[ |,]+/).concat("guard");if(i.test(_[0]))r=_.shift();if(n.test(_[0]))t=_.shift();if(!r&&i.test(_[0]))r=_.shift();if(!r&&n.test(_[0]))r=t,t=_.shift();if(_[0].startsWith("-")){let u=_[0],c=`option creation failed due to '${u}' in option flags '${e}'`;if(/^-[^-][^-]/.test(u))throw Error(`${c} +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let _ of e.seen.entries()){let c=_[1];if(r===_[0]){u(_);continue}if(e.external){let g=e.external.registry.get(_[0])?.id;if(r!==_[0]&&g){u(_);continue}}if(e.metadataRegistry.get(_[0])?.id){u(_);continue}if(c.cycle){u(_);continue}if(c.count>1){if(e.reused==="ref"){u(_);continue}}}}function Wr(e,r){let n=e.seen.get(r);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let i=(c)=>{let d=e.seen.get(c);if(d.ref===null)return;let g=d.def??d.schema,f={...g},o=d.ref;if(d.ref=null,o){i(o);let l=e.seen.get(o),$=l.schema;if($.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"))g.allOf=g.allOf??[],g.allOf.push($);else Object.assign(g,$);if(Object.assign(g,f),c._zod.parent===o)for(let k in g){if(k==="$ref"||k==="allOf")continue;if(!(k in f))delete g[k]}if($.$ref&&l.def)for(let k in g){if(k==="$ref"||k==="allOf")continue;if(k in l.def&&JSON.stringify(g[k])===JSON.stringify(l.def[k]))delete g[k]}}let a=c._zod.parent;if(a&&a!==o){i(a);let l=e.seen.get(a);if(l?.schema.$ref){if(g.$ref=l.schema.$ref,l.def)for(let $ in g){if($==="$ref"||$==="allOf")continue;if($ in l.def&&JSON.stringify(g[$])===JSON.stringify(l.def[$]))delete g[$]}}}e.override({zodSchema:c,jsonSchema:g,path:d.path??[]})};for(let c of[...e.seen.entries()].reverse())i(c[0]);let t={};if(e.target==="draft-2020-12")t.$schema="https://json-schema.org/draft/2020-12/schema";else if(e.target==="draft-07")t.$schema="http://json-schema.org/draft-07/schema#";else if(e.target==="draft-04")t.$schema="http://json-schema.org/draft-04/schema#";else if(e.target==="openapi-3.0");if(e.external?.uri){let c=e.external.registry.get(r)?.id;if(!c)throw Error("Schema is missing an `id` property");t.$id=e.external.uri(c)}Object.assign(t,n.def??n.schema);let u=e.metadataRegistry.get(r)?.id;if(u!==void 0&&t.id===u)delete t.id;let _=e.external?.defs??{};for(let c of e.seen.entries()){let d=c[1];if(d.def&&d.defId){if(d.def.id===d.defId)delete d.def.id;_[d.defId]=d.def}}if(e.external);else if(Object.keys(_).length>0)if(e.target==="draft-2020-12")t.$defs=_;else t.definitions=_;try{let c=JSON.parse(JSON.stringify(t));return Object.defineProperty(c,"~standard",{value:{...r["~standard"],jsonSchema:{input:at(r,"input",e.processors),output:at(r,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch(c){throw Error("Error converting schema to JSON.")}}function Ne(e,r){let n=r??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let i=e._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return Ne(i.element,n);if(i.type==="set")return Ne(i.valueType,n);if(i.type==="lazy")return Ne(i.getter(),n);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return Ne(i.innerType,n);if(i.type==="intersection")return Ne(i.left,n)||Ne(i.right,n);if(i.type==="record"||i.type==="map")return Ne(i.keyType,n)||Ne(i.valueType,n);if(i.type==="pipe"){if(e._zod.traits.has("$ZodCodec"))return!0;return Ne(i.in,n)||Ne(i.out,n)}if(i.type==="object"){for(let t in i.shape)if(Ne(i.shape[t],n))return!0;return!1}if(i.type==="union"){for(let t of i.options)if(Ne(t,n))return!0;return!1}if(i.type==="tuple"){for(let t of i.items)if(Ne(t,n))return!0;if(i.rest&&Ne(i.rest,n))return!0;return!1}return!1}var pf=(e,r={})=>(n)=>{let i=Jr({...n,processors:r});return B(e,i),zr(i,e),Wr(i,e)},at=(e,r,n={})=>(i)=>{let{libraryOptions:t,target:u}=i??{},_=Jr({...t??{},target:u,io:r,processors:n});return B(e,_),zr(_,e),Wr(_,e)};var bi=R(()=>{fi()});function Ii(e,r){if("_idmap"in e){let i=e,t=Jr({...r,processors:rc}),u={};for(let d of i._idmap.entries()){let[g,f]=d;B(f,t)}let _={},c={registry:i,uri:r?.uri,defs:u};t.external=c;for(let d of i._idmap.entries()){let[g,f]=d;zr(t,f),_[g]=Wr(t,f)}if(Object.keys(u).length>0){let d=t.target==="draft-2020-12"?"$defs":"definitions";_.__shared={[d]:u}}return{schemas:_}}let n=Jr({...r,processors:rc});return B(e,n),zr(n,e),Wr(n,e)}var o0,e$=(e,r,n,i)=>{let t=n;t.type="string";let{minimum:u,maximum:_,format:c,patterns:d,contentEncoding:g}=e._zod.bag;if(typeof u==="number")t.minLength=u;if(typeof _==="number")t.maxLength=_;if(c){if(t.format=o0[c]??c,t.format==="")delete t.format;if(c==="time")delete t.format}if(g)t.contentEncoding=g;if(d&&d.size>0){let f=[...d];if(f.length===1)t.pattern=f[0].source;else if(f.length>1)t.allOf=[...f.map((o)=>({...r.target==="draft-07"||r.target==="draft-04"||r.target==="openapi-3.0"?{type:"string"}:{},pattern:o.source}))]}},r$=(e,r,n,i)=>{let t=n,{minimum:u,maximum:_,format:c,multipleOf:d,exclusiveMaximum:g,exclusiveMinimum:f}=e._zod.bag;if(typeof c==="string"&&c.includes("int"))t.type="integer";else t.type="number";let o=typeof f==="number"&&f>=(u??Number.NEGATIVE_INFINITY),a=typeof g==="number"&&g<=(_??Number.POSITIVE_INFINITY),l=r.target==="draft-04"||r.target==="openapi-3.0";if(o)if(l)t.minimum=f,t.exclusiveMinimum=!0;else t.exclusiveMinimum=f;else if(typeof u==="number")t.minimum=u;if(a)if(l)t.maximum=g,t.exclusiveMaximum=!0;else t.exclusiveMaximum=g;else if(typeof _==="number")t.maximum=_;if(typeof d==="number")t.multipleOf=d},n$=(e,r,n,i)=>{n.type="boolean"},t$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},i$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},u$=(e,r,n,i)=>{if(r.target==="openapi-3.0")n.type="string",n.nullable=!0,n.enum=[null];else n.type="null"},_$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},c$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},d$=(e,r,n,i)=>{n.not={}},g$=(e,r,n,i)=>{},o$=(e,r,n,i)=>{},l$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},a$=(e,r,n,i)=>{let t=e._zod.def,u=Qt(t.entries);if(u.every((_)=>typeof _==="number"))n.type="number";if(u.every((_)=>typeof _==="string"))n.type="string";n.enum=u},f$=(e,r,n,i)=>{let t=e._zod.def,u=[];for(let _ of t.values)if(_===void 0){if(r.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof _==="bigint")if(r.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else u.push(Number(_));else u.push(_);if(u.length===0);else if(u.length===1){let _=u[0];if(n.type=_===null?"null":typeof _,r.target==="draft-04"||r.target==="openapi-3.0")n.enum=[_];else n.const=_}else{if(u.every((_)=>typeof _==="number"))n.type="number";if(u.every((_)=>typeof _==="string"))n.type="string";if(u.every((_)=>typeof _==="boolean"))n.type="boolean";if(u.every((_)=>_===null))n.type="null";n.enum=u}},$$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},v$=(e,r,n,i)=>{let t=n,u=e._zod.pattern;if(!u)throw Error("Pattern not found in template literal");t.type="string",t.pattern=u.source},E$=(e,r,n,i)=>{let t=n,u={type:"string",format:"binary",contentEncoding:"binary"},{minimum:_,maximum:c,mime:d}=e._zod.bag;if(_!==void 0)u.minLength=_;if(c!==void 0)u.maxLength=c;if(d)if(d.length===1)u.contentMediaType=d[0],Object.assign(t,u);else Object.assign(t,u),t.anyOf=d.map((g)=>({contentMediaType:g}));else Object.assign(t,u)},k$=(e,r,n,i)=>{n.type="boolean"},T$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},S$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},N$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},b$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},I$=(e,r,n,i)=>{if(r.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},m$=(e,r,n,i)=>{let t=n,u=e._zod.def,{minimum:_,maximum:c}=e._zod.bag;if(typeof _==="number")t.minItems=_;if(typeof c==="number")t.maxItems=c;t.type="array",t.items=B(u.element,r,{...i,path:[...i.path,"items"]})},w$=(e,r,n,i)=>{let t=n,u=e._zod.def;t.type="object",t.properties={};let _=u.shape;for(let g in _)t.properties[g]=B(_[g],r,{...i,path:[...i.path,"properties",g]});let c=new Set(Object.keys(_)),d=new Set([...c].filter((g)=>{let f=u.shape[g]._zod;if(r.io==="input")return f.optin===void 0;else return f.optout===void 0}));if(d.size>0)t.required=Array.from(d);if(u.catchall?._zod.def.type==="never")t.additionalProperties=!1;else if(!u.catchall){if(r.io==="output")t.additionalProperties=!1}else if(u.catchall)t.additionalProperties=B(u.catchall,r,{...i,path:[...i.path,"additionalProperties"]})},nc=(e,r,n,i)=>{let t=e._zod.def,u=t.inclusive===!1,_=t.options.map((c,d)=>B(c,r,{...i,path:[...i.path,u?"oneOf":"anyOf",d]}));if(u)n.oneOf=_;else n.anyOf=_},D$=(e,r,n,i)=>{let t=e._zod.def,u=B(t.left,r,{...i,path:[...i.path,"allOf",0]}),_=B(t.right,r,{...i,path:[...i.path,"allOf",1]}),c=(g)=>("allOf"in g)&&Object.keys(g).length===1,d=[...c(u)?u.allOf:[u],...c(_)?_.allOf:[_]];n.allOf=d},U$=(e,r,n,i)=>{let t=n,u=e._zod.def;t.type="array";let _=r.target==="draft-2020-12"?"prefixItems":"items",c=r.target==="draft-2020-12"?"items":r.target==="openapi-3.0"?"items":"additionalItems",d=u.items.map((a,l)=>B(a,r,{...i,path:[...i.path,_,l]})),g=u.rest?B(u.rest,r,{...i,path:[...i.path,c,...r.target==="openapi-3.0"?[u.items.length]:[]]}):null;if(r.target==="draft-2020-12"){if(t.prefixItems=d,g)t.items=g}else if(r.target==="openapi-3.0"){if(t.items={anyOf:d},g)t.items.anyOf.push(g);if(t.minItems=d.length,!g)t.maxItems=d.length}else if(t.items=d,g)t.additionalItems=g;let{minimum:f,maximum:o}=e._zod.bag;if(typeof f==="number")t.minItems=f;if(typeof o==="number")t.maxItems=o},h$=(e,r,n,i)=>{let t=n,u=e._zod.def;t.type="object";let _=u.keyType,d=_._zod.bag?.patterns;if(u.mode==="loose"&&d&&d.size>0){let f=B(u.valueType,r,{...i,path:[...i.path,"patternProperties","*"]});t.patternProperties={};for(let o of d)t.patternProperties[o.source]=f}else{if(r.target==="draft-07"||r.target==="draft-2020-12")t.propertyNames=B(u.keyType,r,{...i,path:[...i.path,"propertyNames"]});t.additionalProperties=B(u.valueType,r,{...i,path:[...i.path,"additionalProperties"]})}let g=_._zod.values;if(g){let f=[...g].filter((o)=>typeof o==="string"||typeof o==="number");if(f.length>0)t.required=f}},O$=(e,r,n,i)=>{let t=e._zod.def,u=B(t.innerType,r,i),_=r.seen.get(e);if(r.target==="openapi-3.0")_.ref=t.innerType,n.nullable=!0;else n.anyOf=[u,{type:"null"}]},R$=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);u.ref=t.innerType},L$=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);u.ref=t.innerType,n.default=JSON.parse(JSON.stringify(t.defaultValue))},A$=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);if(u.ref=t.innerType,r.io==="input")n._prefault=JSON.parse(JSON.stringify(t.defaultValue))},y$=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);u.ref=t.innerType;let _;try{_=t.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}n.default=_},j$=(e,r,n,i)=>{let t=e._zod.def,u=t.in._zod.traits.has("$ZodTransform"),_=r.io==="input"?u?t.out:t.in:t.out;B(_,r,i);let c=r.seen.get(e);c.ref=_},P$=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);u.ref=t.innerType,n.readOnly=!0},x$=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);u.ref=t.innerType},tc=(e,r,n,i)=>{let t=e._zod.def;B(t.innerType,r,i);let u=r.seen.get(e);u.ref=t.innerType},X$=(e,r,n,i)=>{let t=e._zod.innerType;B(t,r,i);let u=r.seen.get(e);u.ref=t},rc;var mi=R(()=>{bi();j();o0={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},rc={string:e$,number:r$,boolean:n$,bigint:t$,symbol:i$,null:u$,undefined:_$,void:c$,never:d$,any:g$,unknown:o$,date:l$,enum:a$,literal:f$,nan:$$,template_literal:v$,file:E$,success:k$,custom:T$,function:S$,transform:N$,map:b$,set:I$,array:m$,object:w$,union:nc,intersection:D$,tuple:U$,record:h$,nullable:O$,nonoptional:R$,default:L$,prefault:A$,catch:y$,pipe:j$,readonly:P$,promise:x$,optional:tc,lazy:X$}});class K${get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(e){this.ctx.counter=e}get seen(){return this.ctx.seen}constructor(e){let r=e?.target??"draft-2020-12";if(r==="draft-4")r="draft-04";if(r==="draft-7")r="draft-07";this.ctx=Jr({processors:rc,target:r,...e?.metadata&&{metadata:e.metadata},...e?.unrepresentable&&{unrepresentable:e.unrepresentable},...e?.override&&{override:e.override},...e?.io&&{io:e.io}})}process(e,r={path:[],schemaPath:[]}){return B(e,this.ctx,r)}emit(e,r){if(r){if(r.cycles)this.ctx.cycles=r.cycles;if(r.reused)this.ctx.reused=r.reused;if(r.external)this.ctx.external=r.external}zr(this.ctx,e);let n=Wr(this.ctx,e),{"~standard":i,...t}=n;return t}}var MN=R(()=>{mi();bi()});var qN={};var GN=()=>{};var tr={};Qe(tr,{version:()=>rl,util:()=>w,treeifyError:()=>u_,toJSONSchema:()=>Ii,toDotPath:()=>$S,safeParseAsync:()=>uo,safeParse:()=>io,safeEncodeAsync:()=>fO,safeEncode:()=>lO,safeDecodeAsync:()=>$O,safeDecode:()=>aO,registry:()=>ai,regexes:()=>we,process:()=>B,prettifyError:()=>__,parseAsync:()=>d_,parse:()=>c_,meta:()=>Zf,locales:()=>ot,isValidJWT:()=>XS,isValidBase64URL:()=>xS,isValidBase64:()=>wl,initializeContext:()=>Jr,globalRegistry:()=>oe,globalConfig:()=>tn,formatError:()=>tt,flattenError:()=>nt,finalize:()=>Wr,extractDefs:()=>zr,encodeAsync:()=>gO,encode:()=>cO,describe:()=>Qf,decodeAsync:()=>oO,decode:()=>dO,createToJSONSchemaMethod:()=>pf,createStandardJSONSchemaMethod:()=>at,config:()=>ie,clone:()=>ve,_xor:()=>MR,_xid:()=>G_,_void:()=>Wf,_uuidv7:()=>F_,_uuidv6:()=>K_,_uuidv4:()=>X_,_uuid:()=>x_,_url:()=>vi,_uppercase:()=>an,_unknown:()=>Jf,_union:()=>WR,_undefined:()=>Xf,_ulid:()=>q_,_uint64:()=>Pf,_uint32:()=>Of,_tuple:()=>HR,_trim:()=>Tn,_transform:()=>sR,_toUpperCase:()=>Nn,_toLowerCase:()=>Sn,_templateLiteral:()=>c0,_symbol:()=>xf,_superRefine:()=>Vf,_success:()=>t0,_stringbool:()=>sf,_stringFormat:()=>lt,_string:()=>vf,_startsWith:()=>$n,_slugify:()=>bn,_size:()=>Xr,_set:()=>YR,_safeParseAsync:()=>ct,_safeParse:()=>_t,_safeEncodeAsync:()=>v_,_safeEncode:()=>f_,_safeDecodeAsync:()=>E_,_safeDecode:()=>$_,_regex:()=>on,_refine:()=>Yf,_record:()=>BR,_readonly:()=>_0,_property:()=>Ni,_promise:()=>g0,_positive:()=>Ei,_pipe:()=>u0,_parseAsync:()=>ut,_parse:()=>it,_overwrite:()=>Xe,_optional:()=>pR,_number:()=>If,_nullable:()=>e0,_null:()=>Kf,_normalize:()=>kn,_nonpositive:()=>Ti,_nonoptional:()=>n0,_nonnegative:()=>Si,_never:()=>zf,_negative:()=>ki,_nativeEnum:()=>QR,_nanoid:()=>z_,_nan:()=>Gf,_multipleOf:()=>Er,_minSize:()=>Be,_minLength:()=>nr,_min:()=>Ee,_mime:()=>En,_maxSize:()=>kr,_maxLength:()=>Kr,_max:()=>De,_map:()=>CR,_mac:()=>kf,_lte:()=>De,_lt:()=>Ge,_lowercase:()=>ln,_literal:()=>ZR,_length:()=>Fr,_lazy:()=>d0,_ksuid:()=>H_,_jwt:()=>p_,_isoTime:()=>Nf,_isoDuration:()=>bf,_isoDateTime:()=>Tf,_isoDate:()=>Sf,_ipv6:()=>C_,_ipv4:()=>B_,_intersection:()=>GR,_int64:()=>jf,_int32:()=>hf,_int:()=>wf,_includes:()=>fn,_guid:()=>$i,_gte:()=>Ee,_gt:()=>He,_float64:()=>Uf,_float32:()=>Df,_file:()=>Bf,_enum:()=>VR,_endsWith:()=>vn,_encodeAsync:()=>l_,_encode:()=>g_,_emoji:()=>J_,_email:()=>P_,_e164:()=>s_,_discriminatedUnion:()=>qR,_default:()=>r0,_decodeAsync:()=>a_,_decode:()=>o_,_date:()=>Mf,_custom:()=>Cf,_cuid2:()=>M_,_cuid:()=>W_,_coercedString:()=>Ef,_coercedNumber:()=>mf,_coercedDate:()=>qf,_coercedBoolean:()=>Lf,_coercedBigint:()=>yf,_cidrv6:()=>V_,_cidrv4:()=>Y_,_check:()=>zN,_catch:()=>i0,_boolean:()=>Rf,_bigint:()=>Af,_base64url:()=>Z_,_base64:()=>Q_,_array:()=>Hf,_any:()=>Ff,TimePrecision:()=>ec,NEVER:()=>r_,JSONSchemaGenerator:()=>K$,JSONSchema:()=>qN,Doc:()=>I_,$output:()=>y_,$input:()=>j_,$constructor:()=>E,$brand:()=>n_,$ZodXor:()=>Ml,$ZodXID:()=>fl,$ZodVoid:()=>Fl,$ZodUnknown:()=>Xl,$ZodUnion:()=>_i,$ZodUndefined:()=>jl,$ZodUUID:()=>ul,$ZodURL:()=>cl,$ZodULID:()=>al,$ZodType:()=>K,$ZodTuple:()=>R_,$ZodTransform:()=>Zl,$ZodTemplateLiteral:()=>da,$ZodSymbol:()=>yl,$ZodSuccess:()=>ta,$ZodStringFormat:()=>Q,$ZodString:()=>gn,$ZodSet:()=>Cl,$ZodRegistry:()=>$f,$ZodRecord:()=>Hl,$ZodRealError:()=>me,$ZodReadonly:()=>ca,$ZodPromise:()=>oa,$ZodPreprocess:()=>_a,$ZodPrefault:()=>ra,$ZodPipe:()=>A_,$ZodOptional:()=>L_,$ZodObjectJIT:()=>Wl,$ZodObject:()=>JS,$ZodNumberFormat:()=>Ll,$ZodNumber:()=>h_,$ZodNullable:()=>pl,$ZodNull:()=>Pl,$ZodNonOptional:()=>na,$ZodNever:()=>Kl,$ZodNanoID:()=>gl,$ZodNaN:()=>ua,$ZodMap:()=>Bl,$ZodMAC:()=>bl,$ZodLiteral:()=>Vl,$ZodLazy:()=>la,$ZodKSUID:()=>$l,$ZodJWT:()=>Ol,$ZodIntersection:()=>Gl,$ZodISOTime:()=>kl,$ZodISODuration:()=>Tl,$ZodISODateTime:()=>vl,$ZodISODate:()=>El,$ZodIPv6:()=>Nl,$ZodIPv4:()=>Sl,$ZodGUID:()=>il,$ZodFunction:()=>ga,$ZodFile:()=>Ql,$ZodExactOptional:()=>sl,$ZodError:()=>ri,$ZodEnum:()=>Yl,$ZodEncodeError:()=>un,$ZodEmoji:()=>dl,$ZodEmail:()=>_l,$ZodE164:()=>hl,$ZodDiscriminatedUnion:()=>ql,$ZodDefault:()=>ea,$ZodDate:()=>Jl,$ZodCustomStringFormat:()=>Rl,$ZodCustom:()=>aa,$ZodCodec:()=>ci,$ZodCheckUpperCase:()=>Yo,$ZodCheckStringFormat:()=>dt,$ZodCheckStartsWith:()=>Qo,$ZodCheckSizeEquals:()=>Mo,$ZodCheckRegex:()=>Bo,$ZodCheckProperty:()=>so,$ZodCheckOverwrite:()=>el,$ZodCheckNumberFormat:()=>Fo,$ZodCheckMultipleOf:()=>Ko,$ZodCheckMinSize:()=>Wo,$ZodCheckMinLength:()=>Go,$ZodCheckMimeType:()=>po,$ZodCheckMaxSize:()=>zo,$ZodCheckMaxLength:()=>qo,$ZodCheckLowerCase:()=>Co,$ZodCheckLessThan:()=>S_,$ZodCheckLengthEquals:()=>Ho,$ZodCheckIncludes:()=>Vo,$ZodCheckGreaterThan:()=>N_,$ZodCheckEndsWith:()=>Zo,$ZodCheckBigIntFormat:()=>Jo,$ZodCheck:()=>Z,$ZodCatch:()=>ia,$ZodCUID2:()=>ll,$ZodCUID:()=>ol,$ZodCIDRv6:()=>ml,$ZodCIDRv4:()=>Il,$ZodBoolean:()=>ui,$ZodBigIntFormat:()=>Al,$ZodBigInt:()=>O_,$ZodBase64URL:()=>Ul,$ZodBase64:()=>Dl,$ZodAsyncError:()=>rr,$ZodArray:()=>zl,$ZodAny:()=>xl});var Oe=R(()=>{j();T_();ff();mi();MN();GN();_n();_o();to();fa();b_();nl();fi();WN();bi()});var ic={};Qe(ic,{uppercase:()=>an,trim:()=>Tn,toUpperCase:()=>Nn,toLowerCase:()=>Sn,startsWith:()=>$n,slugify:()=>bn,size:()=>Xr,regex:()=>on,property:()=>Ni,positive:()=>Ei,overwrite:()=>Xe,normalize:()=>kn,nonpositive:()=>Ti,nonnegative:()=>Si,negative:()=>ki,multipleOf:()=>Er,minSize:()=>Be,minLength:()=>nr,mime:()=>En,maxSize:()=>kr,maxLength:()=>Kr,lte:()=>De,lt:()=>Ge,lowercase:()=>ln,length:()=>Fr,includes:()=>fn,gte:()=>Ee,gt:()=>He,endsWith:()=>vn});var uc=R(()=>{Oe()});var In={};Qe(In,{time:()=>z$,duration:()=>W$,datetime:()=>F$,date:()=>J$,ZodISOTime:()=>Ui,ZodISODuration:()=>hi,ZodISODateTime:()=>wi,ZodISODate:()=>Di});function F$(e){return Tf(wi,e)}function J$(e){return Sf(Di,e)}function z$(e){return Nf(Ui,e)}function W$(e){return bf(hi,e)}var wi,Di,Ui,hi;var Oi=R(()=>{Oe();Li();wi=E("ZodISODateTime",(e,r)=>{vl.init(e,r),Y.init(e,r)});Di=E("ZodISODate",(e,r)=>{El.init(e,r),Y.init(e,r)});Ui=E("ZodISOTime",(e,r)=>{kl.init(e,r),Y.init(e,r)});hi=E("ZodISODuration",(e,r)=>{Tl.init(e,r),Y.init(e,r)})});var HN=(e,r)=>{ri.init(e,r),e.name="ZodError",Object.defineProperties(e,{format:{value:(n)=>tt(e,n)},flatten:{value:(n)=>nt(e,n)},addIssue:{value:(n)=>{e.issues.push(n),e.message=JSON.stringify(e.issues,pn,2)}},addIssues:{value:(n)=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,pn,2)}},isEmpty:{get(){return e.issues.length===0}}})},BN,be;var M$=R(()=>{Oe();Oe();j();BN=E("ZodError",HN),be=E("ZodError",HN,{Parent:Error})});var _c,cc,dc,gc,oc,lc,ac,fc,$c,vc,Ec,kc;var q$=R(()=>{Oe();M$();_c=it(be),cc=ut(be),dc=_t(be),gc=ct(be),oc=g_(be),lc=o_(be),ac=l_(be),fc=a_(be),$c=f_(be),vc=$_(be),Ec=v_(be),kc=E_(be)});var Ri={};Qe(Ri,{xor:()=>Pv,xid:()=>tv,void:()=>Ov,uuidv7:()=>V$,uuidv6:()=>Y$,uuidv4:()=>C$,uuid:()=>B$,url:()=>Q$,unknown:()=>Mr,union:()=>pi,undefined:()=>Uv,ulid:()=>nv,uint64:()=>wv,uint32:()=>bv,tuple:()=>xc,transform:()=>ru,templateLiteral:()=>Yv,symbol:()=>Dv,superRefine:()=>gd,success:()=>Gv,stringbool:()=>nE,stringFormat:()=>$v,string:()=>ft,strictObject:()=>yv,set:()=>Jv,refine:()=>dd,record:()=>Xc,readonly:()=>nd,promise:()=>Vv,preprocess:()=>iE,prefault:()=>Yc,pipe:()=>yi,partialRecord:()=>Xv,optional:()=>vt,object:()=>Av,number:()=>Sc,nullish:()=>qv,nullable:()=>Et,null:()=>wc,nonoptional:()=>Vc,never:()=>si,nativeEnum:()=>zv,nanoid:()=>p$,nan:()=>Hv,meta:()=>eE,map:()=>Fv,mac:()=>_v,looseRecord:()=>Kv,looseObject:()=>jv,literal:()=>Wv,lazy:()=>ud,ksuid:()=>iv,keyof:()=>Lv,jwt:()=>fv,json:()=>tE,ipv6:()=>cv,ipv4:()=>uv,invertCodec:()=>Cv,intersection:()=>jc,int64:()=>mv,int32:()=>Nv,int:()=>Ai,instanceof:()=>rE,httpUrl:()=>Z$,hostname:()=>vv,hex:()=>Ev,hash:()=>kv,guid:()=>H$,function:()=>Qv,float64:()=>Sv,float32:()=>Tv,file:()=>Mv,exactOptional:()=>qc,enum:()=>eu,emoji:()=>s$,email:()=>G$,e164:()=>av,discriminatedUnion:()=>xv,describe:()=>pv,date:()=>Rv,custom:()=>sv,cuid2:()=>rv,cuid:()=>ev,codec:()=>Bv,cidrv6:()=>gv,cidrv4:()=>dv,check:()=>Zv,catch:()=>sc,boolean:()=>Nc,bigint:()=>Iv,base64url:()=>lv,base64:()=>ov,array:()=>St,any:()=>hv,_function:()=>Qv,_default:()=>Bc,_ZodString:()=>Pi,ZodXor:()=>Lc,ZodXID:()=>Wi,ZodVoid:()=>Oc,ZodUnknown:()=>Uc,ZodUnion:()=>bt,ZodUndefined:()=>Ic,ZodUUID:()=>Ce,ZodURL:()=>kt,ZodULID:()=>zi,ZodType:()=>z,ZodTuple:()=>Pc,ZodTransform:()=>Wc,ZodTemplateLiteral:()=>td,ZodSymbol:()=>bc,ZodSuccess:()=>Qc,ZodStringFormat:()=>Y,ZodString:()=>Dn,ZodSet:()=>Fc,ZodRecord:()=>mn,ZodReadonly:()=>rd,ZodPromise:()=>_d,ZodPreprocess:()=>ed,ZodPrefault:()=>Cc,ZodPipe:()=>It,ZodOptional:()=>nu,ZodObject:()=>Nt,ZodNumberFormat:()=>qr,ZodNumber:()=>hn,ZodNullable:()=>Gc,ZodNull:()=>mc,ZodNonOptional:()=>tu,ZodNever:()=>hc,ZodNanoID:()=>Ki,ZodNaN:()=>pc,ZodMap:()=>Kc,ZodMAC:()=>Tc,ZodLiteral:()=>Jc,ZodLazy:()=>id,ZodKSUID:()=>Mi,ZodJWT:()=>Qi,ZodIntersection:()=>yc,ZodIPv6:()=>Gi,ZodIPv4:()=>qi,ZodGUID:()=>$t,ZodFunction:()=>cd,ZodFile:()=>zc,ZodExactOptional:()=>Mc,ZodEnum:()=>wn,ZodEmoji:()=>Xi,ZodEmail:()=>xi,ZodE164:()=>Vi,ZodDiscriminatedUnion:()=>Ac,ZodDefault:()=>Hc,ZodDate:()=>Tt,ZodCustomStringFormat:()=>Un,ZodCustom:()=>wt,ZodCodec:()=>mt,ZodCatch:()=>Zc,ZodCUID2:()=>Ji,ZodCUID:()=>Fi,ZodCIDRv6:()=>Bi,ZodCIDRv4:()=>Hi,ZodBoolean:()=>On,ZodBigIntFormat:()=>Zi,ZodBigInt:()=>Rn,ZodBase64URL:()=>Yi,ZodBase64:()=>Ci,ZodArray:()=>Rc,ZodAny:()=>Dc});function ji(e,r,n){let i=Object.getPrototypeOf(e),t=CN.get(i);if(!t)t=new Set,CN.set(i,t);if(t.has(r))return;t.add(r);for(let u in n){let _=n[u];Object.defineProperty(i,u,{configurable:!0,enumerable:!1,get(){let c=_.bind(this);return Object.defineProperty(this,u,{configurable:!0,writable:!0,enumerable:!0,value:c}),c},set(c){Object.defineProperty(this,u,{configurable:!0,writable:!0,enumerable:!0,value:c})}})}}function ft(e){return vf(Dn,e)}function G$(e){return P_(xi,e)}function H$(e){return $i($t,e)}function B$(e){return x_(Ce,e)}function C$(e){return X_(Ce,e)}function Y$(e){return K_(Ce,e)}function V$(e){return F_(Ce,e)}function Q$(e){return vi(kt,e)}function Z$(e){return vi(kt,{protocol:we.httpProtocol,hostname:we.domain,...w.normalizeParams(e)})}function s$(e){return J_(Xi,e)}function p$(e){return z_(Ki,e)}function ev(e){return W_(Fi,e)}function rv(e){return M_(Ji,e)}function nv(e){return q_(zi,e)}function tv(e){return G_(Wi,e)}function iv(e){return H_(Mi,e)}function uv(e){return B_(qi,e)}function _v(e){return kf(Tc,e)}function cv(e){return C_(Gi,e)}function dv(e){return Y_(Hi,e)}function gv(e){return V_(Bi,e)}function ov(e){return Q_(Ci,e)}function lv(e){return Z_(Yi,e)}function av(e){return s_(Vi,e)}function fv(e){return p_(Qi,e)}function $v(e,r,n={}){return lt(Un,e,r,n)}function vv(e){return lt(Un,"hostname",we.hostname,e)}function Ev(e){return lt(Un,"hex",we.hex,e)}function kv(e,r){let n=r?.enc??"hex",i=`${e}_${n}`,t=we[i];if(!t)throw Error(`Unrecognized hash format: ${i}`);return lt(Un,i,t,r)}function Sc(e){return If(hn,e)}function Ai(e){return wf(qr,e)}function Tv(e){return Df(qr,e)}function Sv(e){return Uf(qr,e)}function Nv(e){return hf(qr,e)}function bv(e){return Of(qr,e)}function Nc(e){return Rf(On,e)}function Iv(e){return Af(Rn,e)}function mv(e){return jf(Zi,e)}function wv(e){return Pf(Zi,e)}function Dv(e){return xf(bc,e)}function Uv(e){return Xf(Ic,e)}function wc(e){return Kf(mc,e)}function hv(){return Ff(Dc)}function Mr(){return Jf(Uc)}function si(e){return zf(hc,e)}function Ov(e){return Wf(Oc,e)}function Rv(e){return Mf(Tt,e)}function St(e,r){return Hf(Rc,e,r)}function Lv(e){let r=e._zod.def.shape;return eu(Object.keys(r))}function Av(e,r){let n={type:"object",shape:e??{},...w.normalizeParams(r)};return new Nt(n)}function yv(e,r){return new Nt({type:"object",shape:e,catchall:si(),...w.normalizeParams(r)})}function jv(e,r){return new Nt({type:"object",shape:e,catchall:Mr(),...w.normalizeParams(r)})}function pi(e,r){return new bt({type:"union",options:e,...w.normalizeParams(r)})}function Pv(e,r){return new Lc({type:"union",options:e,inclusive:!1,...w.normalizeParams(r)})}function xv(e,r,n){return new Ac({type:"union",options:r,discriminator:e,...w.normalizeParams(n)})}function jc(e,r){return new yc({type:"intersection",left:e,right:r})}function xc(e,r,n){let i=r instanceof K,t=i?n:r;return new Pc({type:"tuple",items:e,rest:i?r:null,...w.normalizeParams(t)})}function Xc(e,r,n){if(!r||!r._zod)return new mn({type:"record",keyType:ft(),valueType:e,...w.normalizeParams(r)});return new mn({type:"record",keyType:e,valueType:r,...w.normalizeParams(n)})}function Xv(e,r,n){let i=ve(e);return i._zod.values=void 0,new mn({type:"record",keyType:i,valueType:r,...w.normalizeParams(n)})}function Kv(e,r,n){return new mn({type:"record",keyType:e,valueType:r,mode:"loose",...w.normalizeParams(n)})}function Fv(e,r,n){return new Kc({type:"map",keyType:e,valueType:r,...w.normalizeParams(n)})}function Jv(e,r){return new Fc({type:"set",valueType:e,...w.normalizeParams(r)})}function eu(e,r){let n=Array.isArray(e)?Object.fromEntries(e.map((i)=>[i,i])):e;return new wn({type:"enum",entries:n,...w.normalizeParams(r)})}function zv(e,r){return new wn({type:"enum",entries:e,...w.normalizeParams(r)})}function Wv(e,r){return new Jc({type:"literal",values:Array.isArray(e)?e:[e],...w.normalizeParams(r)})}function Mv(e){return Bf(zc,e)}function ru(e){return new Wc({type:"transform",transform:e})}function vt(e){return new nu({type:"optional",innerType:e})}function qc(e){return new Mc({type:"optional",innerType:e})}function Et(e){return new Gc({type:"nullable",innerType:e})}function qv(e){return vt(Et(e))}function Bc(e,r){return new Hc({type:"default",innerType:e,get defaultValue(){return typeof r==="function"?r():w.shallowClone(r)}})}function Yc(e,r){return new Cc({type:"prefault",innerType:e,get defaultValue(){return typeof r==="function"?r():w.shallowClone(r)}})}function Vc(e,r){return new tu({type:"nonoptional",innerType:e,...w.normalizeParams(r)})}function Gv(e){return new Qc({type:"success",innerType:e})}function sc(e,r){return new Zc({type:"catch",innerType:e,catchValue:typeof r==="function"?r:()=>r})}function Hv(e){return Gf(pc,e)}function yi(e,r){return new It({type:"pipe",in:e,out:r})}function Bv(e,r,n){return new mt({type:"pipe",in:e,out:r,transform:n.decode,reverseTransform:n.encode})}function Cv(e){let r=e._zod.def;return new mt({type:"pipe",in:r.out,out:r.in,transform:r.reverseTransform,reverseTransform:r.transform})}function nd(e){return new rd({type:"readonly",innerType:e})}function Yv(e,r){return new td({type:"template_literal",parts:e,...w.normalizeParams(r)})}function ud(e){return new id({type:"lazy",getter:e})}function Vv(e){return new _d({type:"promise",innerType:e})}function Qv(e){return new cd({type:"function",input:Array.isArray(e?.input)?xc(e?.input):e?.input??St(Mr()),output:e?.output??Mr()})}function Zv(e){let r=new Z({check:"custom"});return r._zod.check=e,r}function sv(e,r){return Cf(wt,e??(()=>!0),r)}function dd(e,r={}){return Yf(wt,e,r)}function gd(e,r){return Vf(e,r)}function rE(e,r={}){let n=new wt({type:"custom",check:"custom",fn:(i)=>i instanceof e,abort:!0,...w.normalizeParams(r)});return n._zod.bag.Class=e,n._zod.check=(i)=>{if(!(i.value instanceof e))i.issues.push({code:"invalid_type",expected:e.name,input:i.value,inst:n,path:[...n._zod.def.path??[]]})},n}function tE(e){let r=ud(()=>{return pi([ft(e),Sc(),Nc(),wc(),St(r),Xc(ft(),r)])});return r}function iE(e,r){return new ed({type:"pipe",in:ru(e),out:r})}var CN,z,Pi,Dn,Y,xi,$t,Ce,kt,Xi,Ki,Fi,Ji,zi,Wi,Mi,qi,Tc,Gi,Hi,Bi,Ci,Yi,Vi,Qi,Un,hn,qr,On,Rn,Zi,bc,Ic,mc,Dc,Uc,hc,Oc,Tt,Rc,Nt,bt,Lc,Ac,yc,Pc,mn,Kc,Fc,wn,Jc,zc,Wc,nu,Mc,Gc,Hc,Cc,tu,Qc,Zc,pc,It,mt,ed,rd,td,id,_d,cd,wt,pv,eE,nE=(...e)=>sf({Codec:mt,Boolean:On,String:Dn},...e);var Li=R(()=>{Oe();Oe();mi();bi();uc();Oi();q$();CN=new WeakMap;z=E("ZodType",(e,r)=>{return K.init(e,r),Object.assign(e["~standard"],{jsonSchema:{input:at(e,"input"),output:at(e,"output")}}),e.toJSONSchema=pf(e,{}),e.def=r,e.type=r.type,Object.defineProperty(e,"_def",{value:r}),e.parse=(n,i)=>_c(e,n,i,{callee:e.parse}),e.safeParse=(n,i)=>dc(e,n,i),e.parseAsync=async(n,i)=>cc(e,n,i,{callee:e.parseAsync}),e.safeParseAsync=async(n,i)=>gc(e,n,i),e.spa=e.safeParseAsync,e.encode=(n,i)=>oc(e,n,i),e.decode=(n,i)=>lc(e,n,i),e.encodeAsync=async(n,i)=>ac(e,n,i),e.decodeAsync=async(n,i)=>fc(e,n,i),e.safeEncode=(n,i)=>$c(e,n,i),e.safeDecode=(n,i)=>vc(e,n,i),e.safeEncodeAsync=async(n,i)=>Ec(e,n,i),e.safeDecodeAsync=async(n,i)=>kc(e,n,i),ji(e,"ZodType",{check(...n){let i=this.def;return this.clone(w.mergeDefs(i,{checks:[...i.checks??[],...n.map((t)=>typeof t==="function"?{_zod:{check:t,def:{check:"custom"},onattach:[]}}:t)]}),{parent:!0})},with(...n){return this.check(...n)},clone(n,i){return ve(this,n,i)},brand(){return this},register(n,i){return n.add(this,i),this},refine(n,i){return this.check(dd(n,i))},superRefine(n,i){return this.check(gd(n,i))},overwrite(n){return this.check(Xe(n))},optional(){return vt(this)},exactOptional(){return qc(this)},nullable(){return Et(this)},nullish(){return vt(Et(this))},nonoptional(n){return Vc(this,n)},array(){return St(this)},or(n){return pi([this,n])},and(n){return jc(this,n)},transform(n){return yi(this,ru(n))},default(n){return Bc(this,n)},prefault(n){return Yc(this,n)},catch(n){return sc(this,n)},pipe(n){return yi(this,n)},readonly(){return nd(this)},describe(n){let i=this.clone();return oe.add(i,{description:n}),i},meta(...n){if(n.length===0)return oe.get(this);let i=this.clone();return oe.add(i,n[0]),i},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(n){return n(this)}}),Object.defineProperty(e,"description",{get(){return oe.get(e)?.description},configurable:!0}),e}),Pi=E("_ZodString",(e,r)=>{gn.init(e,r),z.init(e,r),e._zod.processJSONSchema=(i,t,u)=>e$(e,i,t,u);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,ji(e,"_ZodString",{regex(...i){return this.check(on(...i))},includes(...i){return this.check(fn(...i))},startsWith(...i){return this.check($n(...i))},endsWith(...i){return this.check(vn(...i))},min(...i){return this.check(nr(...i))},max(...i){return this.check(Kr(...i))},length(...i){return this.check(Fr(...i))},nonempty(...i){return this.check(nr(1,...i))},lowercase(i){return this.check(ln(i))},uppercase(i){return this.check(an(i))},trim(){return this.check(Tn())},normalize(...i){return this.check(kn(...i))},toLowerCase(){return this.check(Sn())},toUpperCase(){return this.check(Nn())},slugify(){return this.check(bn())}})}),Dn=E("ZodString",(e,r)=>{gn.init(e,r),Pi.init(e,r),e.email=(n)=>e.check(P_(xi,n)),e.url=(n)=>e.check(vi(kt,n)),e.jwt=(n)=>e.check(p_(Qi,n)),e.emoji=(n)=>e.check(J_(Xi,n)),e.guid=(n)=>e.check($i($t,n)),e.uuid=(n)=>e.check(x_(Ce,n)),e.uuidv4=(n)=>e.check(X_(Ce,n)),e.uuidv6=(n)=>e.check(K_(Ce,n)),e.uuidv7=(n)=>e.check(F_(Ce,n)),e.nanoid=(n)=>e.check(z_(Ki,n)),e.guid=(n)=>e.check($i($t,n)),e.cuid=(n)=>e.check(W_(Fi,n)),e.cuid2=(n)=>e.check(M_(Ji,n)),e.ulid=(n)=>e.check(q_(zi,n)),e.base64=(n)=>e.check(Q_(Ci,n)),e.base64url=(n)=>e.check(Z_(Yi,n)),e.xid=(n)=>e.check(G_(Wi,n)),e.ksuid=(n)=>e.check(H_(Mi,n)),e.ipv4=(n)=>e.check(B_(qi,n)),e.ipv6=(n)=>e.check(C_(Gi,n)),e.cidrv4=(n)=>e.check(Y_(Hi,n)),e.cidrv6=(n)=>e.check(V_(Bi,n)),e.e164=(n)=>e.check(s_(Vi,n)),e.datetime=(n)=>e.check(F$(n)),e.date=(n)=>e.check(J$(n)),e.time=(n)=>e.check(z$(n)),e.duration=(n)=>e.check(W$(n))});Y=E("ZodStringFormat",(e,r)=>{Q.init(e,r),Pi.init(e,r)}),xi=E("ZodEmail",(e,r)=>{_l.init(e,r),Y.init(e,r)});$t=E("ZodGUID",(e,r)=>{il.init(e,r),Y.init(e,r)});Ce=E("ZodUUID",(e,r)=>{ul.init(e,r),Y.init(e,r)});kt=E("ZodURL",(e,r)=>{cl.init(e,r),Y.init(e,r)});Xi=E("ZodEmoji",(e,r)=>{dl.init(e,r),Y.init(e,r)});Ki=E("ZodNanoID",(e,r)=>{gl.init(e,r),Y.init(e,r)});Fi=E("ZodCUID",(e,r)=>{ol.init(e,r),Y.init(e,r)});Ji=E("ZodCUID2",(e,r)=>{ll.init(e,r),Y.init(e,r)});zi=E("ZodULID",(e,r)=>{al.init(e,r),Y.init(e,r)});Wi=E("ZodXID",(e,r)=>{fl.init(e,r),Y.init(e,r)});Mi=E("ZodKSUID",(e,r)=>{$l.init(e,r),Y.init(e,r)});qi=E("ZodIPv4",(e,r)=>{Sl.init(e,r),Y.init(e,r)});Tc=E("ZodMAC",(e,r)=>{bl.init(e,r),Y.init(e,r)});Gi=E("ZodIPv6",(e,r)=>{Nl.init(e,r),Y.init(e,r)});Hi=E("ZodCIDRv4",(e,r)=>{Il.init(e,r),Y.init(e,r)});Bi=E("ZodCIDRv6",(e,r)=>{ml.init(e,r),Y.init(e,r)});Ci=E("ZodBase64",(e,r)=>{Dl.init(e,r),Y.init(e,r)});Yi=E("ZodBase64URL",(e,r)=>{Ul.init(e,r),Y.init(e,r)});Vi=E("ZodE164",(e,r)=>{hl.init(e,r),Y.init(e,r)});Qi=E("ZodJWT",(e,r)=>{Ol.init(e,r),Y.init(e,r)});Un=E("ZodCustomStringFormat",(e,r)=>{Rl.init(e,r),Y.init(e,r)});hn=E("ZodNumber",(e,r)=>{h_.init(e,r),z.init(e,r),e._zod.processJSONSchema=(i,t,u)=>r$(e,i,t,u),ji(e,"ZodNumber",{gt(i,t){return this.check(He(i,t))},gte(i,t){return this.check(Ee(i,t))},min(i,t){return this.check(Ee(i,t))},lt(i,t){return this.check(Ge(i,t))},lte(i,t){return this.check(De(i,t))},max(i,t){return this.check(De(i,t))},int(i){return this.check(Ai(i))},safe(i){return this.check(Ai(i))},positive(i){return this.check(He(0,i))},nonnegative(i){return this.check(Ee(0,i))},negative(i){return this.check(Ge(0,i))},nonpositive(i){return this.check(De(0,i))},multipleOf(i,t){return this.check(Er(i,t))},step(i,t){return this.check(Er(i,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??0.5),e.isFinite=!0,e.format=n.format??null});qr=E("ZodNumberFormat",(e,r)=>{Ll.init(e,r),hn.init(e,r)});On=E("ZodBoolean",(e,r)=>{ui.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>n$(e,n,i,t)});Rn=E("ZodBigInt",(e,r)=>{O_.init(e,r),z.init(e,r),e._zod.processJSONSchema=(i,t,u)=>t$(e,i,t,u),e.gte=(i,t)=>e.check(Ee(i,t)),e.min=(i,t)=>e.check(Ee(i,t)),e.gt=(i,t)=>e.check(He(i,t)),e.gte=(i,t)=>e.check(Ee(i,t)),e.min=(i,t)=>e.check(Ee(i,t)),e.lt=(i,t)=>e.check(Ge(i,t)),e.lte=(i,t)=>e.check(De(i,t)),e.max=(i,t)=>e.check(De(i,t)),e.positive=(i)=>e.check(He(BigInt(0),i)),e.negative=(i)=>e.check(Ge(BigInt(0),i)),e.nonpositive=(i)=>e.check(De(BigInt(0),i)),e.nonnegative=(i)=>e.check(Ee(BigInt(0),i)),e.multipleOf=(i,t)=>e.check(Er(i,t));let n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});Zi=E("ZodBigIntFormat",(e,r)=>{Al.init(e,r),Rn.init(e,r)});bc=E("ZodSymbol",(e,r)=>{yl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>i$(e,n,i,t)});Ic=E("ZodUndefined",(e,r)=>{jl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>_$(e,n,i,t)});mc=E("ZodNull",(e,r)=>{Pl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>u$(e,n,i,t)});Dc=E("ZodAny",(e,r)=>{xl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>g$(e,n,i,t)});Uc=E("ZodUnknown",(e,r)=>{Xl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>o$(e,n,i,t)});hc=E("ZodNever",(e,r)=>{Kl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>d$(e,n,i,t)});Oc=E("ZodVoid",(e,r)=>{Fl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>c$(e,n,i,t)});Tt=E("ZodDate",(e,r)=>{Jl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(i,t,u)=>l$(e,i,t,u),e.min=(i,t)=>e.check(Ee(i,t)),e.max=(i,t)=>e.check(De(i,t));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});Rc=E("ZodArray",(e,r)=>{zl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>m$(e,n,i,t),e.element=r.element,ji(e,"ZodArray",{min(n,i){return this.check(nr(n,i))},nonempty(n){return this.check(nr(1,n))},max(n,i){return this.check(Kr(n,i))},length(n,i){return this.check(Fr(n,i))},unwrap(){return this.element}})});Nt=E("ZodObject",(e,r)=>{Wl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>w$(e,n,i,t),w.defineLazy(e,"shape",()=>{return r.shape}),ji(e,"ZodObject",{keyof(){return eu(Object.keys(this._zod.def.shape))},catchall(n){return this.clone({...this._zod.def,catchall:n})},passthrough(){return this.clone({...this._zod.def,catchall:Mr()})},loose(){return this.clone({...this._zod.def,catchall:Mr()})},strict(){return this.clone({...this._zod.def,catchall:si()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(n){return w.extend(this,n)},safeExtend(n){return w.safeExtend(this,n)},merge(n){return w.merge(this,n)},pick(n){return w.pick(this,n)},omit(n){return w.omit(this,n)},partial(...n){return w.partial(nu,this,n[0])},required(...n){return w.required(tu,this,n[0])}})});bt=E("ZodUnion",(e,r)=>{_i.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>nc(e,n,i,t),e.options=r.options});Lc=E("ZodXor",(e,r)=>{bt.init(e,r),Ml.init(e,r),e._zod.processJSONSchema=(n,i,t)=>nc(e,n,i,t),e.options=r.options});Ac=E("ZodDiscriminatedUnion",(e,r)=>{bt.init(e,r),ql.init(e,r)});yc=E("ZodIntersection",(e,r)=>{Gl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>D$(e,n,i,t)});Pc=E("ZodTuple",(e,r)=>{R_.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>U$(e,n,i,t),e.rest=(n)=>e.clone({...e._zod.def,rest:n})});mn=E("ZodRecord",(e,r)=>{Hl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>h$(e,n,i,t),e.keyType=r.keyType,e.valueType=r.valueType});Kc=E("ZodMap",(e,r)=>{Bl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>b$(e,n,i,t),e.keyType=r.keyType,e.valueType=r.valueType,e.min=(...n)=>e.check(Be(...n)),e.nonempty=(n)=>e.check(Be(1,n)),e.max=(...n)=>e.check(kr(...n)),e.size=(...n)=>e.check(Xr(...n))});Fc=E("ZodSet",(e,r)=>{Cl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>I$(e,n,i,t),e.min=(...n)=>e.check(Be(...n)),e.nonempty=(n)=>e.check(Be(1,n)),e.max=(...n)=>e.check(kr(...n)),e.size=(...n)=>e.check(Xr(...n))});wn=E("ZodEnum",(e,r)=>{Yl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(i,t,u)=>a$(e,i,t,u),e.enum=r.entries,e.options=Object.values(r.entries);let n=new Set(Object.keys(r.entries));e.extract=(i,t)=>{let u={};for(let _ of i)if(n.has(_))u[_]=r.entries[_];else throw Error(`Key ${_} not found in enum`);return new wn({...r,checks:[],...w.normalizeParams(t),entries:u})},e.exclude=(i,t)=>{let u={...r.entries};for(let _ of i)if(n.has(_))delete u[_];else throw Error(`Key ${_} not found in enum`);return new wn({...r,checks:[],...w.normalizeParams(t),entries:u})}});Jc=E("ZodLiteral",(e,r)=>{Vl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>f$(e,n,i,t),e.values=new Set(r.values),Object.defineProperty(e,"value",{get(){if(r.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return r.values[0]}})});zc=E("ZodFile",(e,r)=>{Ql.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>E$(e,n,i,t),e.min=(n,i)=>e.check(Be(n,i)),e.max=(n,i)=>e.check(kr(n,i)),e.mime=(n,i)=>e.check(En(Array.isArray(n)?n:[n],i))});Wc=E("ZodTransform",(e,r)=>{Zl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>N$(e,n,i,t),e._zod.parse=(n,i)=>{if(i.direction==="backward")throw new un(e.constructor.name);n.addIssue=(u)=>{if(typeof u==="string")n.issues.push(w.issue(u,n.value,r));else{let _=u;if(_.fatal)_.continue=!1;_.code??(_.code="custom"),_.input??(_.input=n.value),_.inst??(_.inst=e),n.issues.push(w.issue(_))}};let t=r.transform(n.value,n);if(t instanceof Promise)return t.then((u)=>{return n.value=u,n.fallback=!0,n});return n.value=t,n.fallback=!0,n}});nu=E("ZodOptional",(e,r)=>{L_.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>tc(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});Mc=E("ZodExactOptional",(e,r)=>{sl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>tc(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});Gc=E("ZodNullable",(e,r)=>{pl.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>O$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});Hc=E("ZodDefault",(e,r)=>{ea.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>L$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Cc=E("ZodPrefault",(e,r)=>{ra.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>A$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});tu=E("ZodNonOptional",(e,r)=>{na.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>R$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});Qc=E("ZodSuccess",(e,r)=>{ta.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>k$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});Zc=E("ZodCatch",(e,r)=>{ia.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>y$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});pc=E("ZodNaN",(e,r)=>{ua.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>$$(e,n,i,t)});It=E("ZodPipe",(e,r)=>{A_.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>j$(e,n,i,t),e.in=r.in,e.out=r.out});mt=E("ZodCodec",(e,r)=>{It.init(e,r),ci.init(e,r)});ed=E("ZodPreprocess",(e,r)=>{It.init(e,r),_a.init(e,r)}),rd=E("ZodReadonly",(e,r)=>{ca.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>P$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});td=E("ZodTemplateLiteral",(e,r)=>{da.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>v$(e,n,i,t)});id=E("ZodLazy",(e,r)=>{la.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>X$(e,n,i,t),e.unwrap=()=>e._zod.def.getter()});_d=E("ZodPromise",(e,r)=>{oa.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>x$(e,n,i,t),e.unwrap=()=>e._zod.def.innerType});cd=E("ZodFunction",(e,r)=>{ga.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>S$(e,n,i,t)});wt=E("ZodCustom",(e,r)=>{aa.init(e,r),z.init(e,r),e._zod.processJSONSchema=(n,i,t)=>T$(e,n,i,t)});pv=Qf,eE=Zf});function VN(e){ie({customError:e})}function QN(){return ie().customError}var YN,od;var ZN=R(()=>{Oe();YN={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};(function(e){})(od||(od={}))});function $0(e,r){let n=e.$schema;if(n==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(n==="http://json-schema.org/draft-07/schema#")return"draft-7";if(n==="http://json-schema.org/draft-04/schema#")return"draft-4";return r??"draft-2020-12"}function v0(e,r){if(!e.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let n=e.slice(1).split("/").filter(Boolean);if(n.length===0)return r.rootSchema;let i=r.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===i){let t=n[1];if(!t||!r.defs[t])throw Error(`Reference not found: ${e}`);return r.defs[t]}throw Error(`Reference not found: ${e}`)}function sN(e,r){if(e.not!==void 0){if(typeof e.not==="object"&&Object.keys(e.not).length===0)return L.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let t=e.$ref;if(r.refs.has(t))return r.refs.get(t);if(r.processing.has(t))return L.lazy(()=>{if(!r.refs.has(t))throw Error(`Circular reference not resolved: ${t}`);return r.refs.get(t)});r.processing.add(t);let u=v0(t,r),_=ke(u,r);return r.refs.set(t,_),r.processing.delete(t),_}if(e.enum!==void 0){let t=e.enum;if(r.version==="openapi-3.0"&&e.nullable===!0&&t.length===1&&t[0]===null)return L.null();if(t.length===0)return L.never();if(t.length===1)return L.literal(t[0]);if(t.every((_)=>typeof _==="string"))return L.enum(t);let u=t.map((_)=>L.literal(_));if(u.length<2)return u[0];return L.union([u[0],u[1],...u.slice(2)])}if(e.const!==void 0)return L.literal(e.const);let n=e.type;if(Array.isArray(n)){let t=n.map((u)=>{let _={...e,type:u};return sN(_,r)});if(t.length===0)return L.never();if(t.length===1)return t[0];return L.union(t)}if(!n)return L.any();let i;switch(n){case"string":{let t=L.string();if(e.format){let u=e.format;if(u==="email")t=t.check(L.email());else if(u==="uri"||u==="uri-reference")t=t.check(L.url());else if(u==="uuid"||u==="guid")t=t.check(L.uuid());else if(u==="date-time")t=t.check(L.iso.datetime());else if(u==="date")t=t.check(L.iso.date());else if(u==="time")t=t.check(L.iso.time());else if(u==="duration")t=t.check(L.iso.duration());else if(u==="ipv4")t=t.check(L.ipv4());else if(u==="ipv6")t=t.check(L.ipv6());else if(u==="mac")t=t.check(L.mac());else if(u==="cidr")t=t.check(L.cidrv4());else if(u==="cidr-v6")t=t.check(L.cidrv6());else if(u==="base64")t=t.check(L.base64());else if(u==="base64url")t=t.check(L.base64url());else if(u==="e164")t=t.check(L.e164());else if(u==="jwt")t=t.check(L.jwt());else if(u==="emoji")t=t.check(L.emoji());else if(u==="nanoid")t=t.check(L.nanoid());else if(u==="cuid")t=t.check(L.cuid());else if(u==="cuid2")t=t.check(L.cuid2());else if(u==="ulid")t=t.check(L.ulid());else if(u==="xid")t=t.check(L.xid());else if(u==="ksuid")t=t.check(L.ksuid())}if(typeof e.minLength==="number")t=t.min(e.minLength);if(typeof e.maxLength==="number")t=t.max(e.maxLength);if(e.pattern)t=t.regex(new RegExp(e.pattern));i=t;break}case"number":case"integer":{let t=n==="integer"?L.number().int():L.number();if(typeof e.minimum==="number")t=t.min(e.minimum);if(typeof e.maximum==="number")t=t.max(e.maximum);if(typeof e.exclusiveMinimum==="number")t=t.gt(e.exclusiveMinimum);else if(e.exclusiveMinimum===!0&&typeof e.minimum==="number")t=t.gt(e.minimum);if(typeof e.exclusiveMaximum==="number")t=t.lt(e.exclusiveMaximum);else if(e.exclusiveMaximum===!0&&typeof e.maximum==="number")t=t.lt(e.maximum);if(typeof e.multipleOf==="number")t=t.multipleOf(e.multipleOf);i=t;break}case"boolean":{i=L.boolean();break}case"null":{i=L.null();break}case"object":{let t={},u=e.properties||{},_=new Set(e.required||[]);for(let[d,g]of Object.entries(u)){let f=ke(g,r);t[d]=_.has(d)?f:f.optional()}if(e.propertyNames){let d=ke(e.propertyNames,r),g=e.additionalProperties&&typeof e.additionalProperties==="object"?ke(e.additionalProperties,r):L.any();if(Object.keys(t).length===0){i=L.record(d,g);break}let f=L.object(t).passthrough(),o=L.looseRecord(d,g);i=L.intersection(f,o);break}if(e.patternProperties){let d=e.patternProperties,g=Object.keys(d),f=[];for(let a of g){let l=ke(d[a],r),$=L.string().regex(new RegExp(a));f.push(L.looseRecord($,l))}let o=[];if(Object.keys(t).length>0)o.push(L.object(t).passthrough());if(o.push(...f),o.length===0)i=L.object({}).passthrough();else if(o.length===1)i=o[0];else{let a=L.intersection(o[0],o[1]);for(let l=2;lke(d,r)),c=u&&typeof u==="object"&&!Array.isArray(u)?ke(u,r):void 0;if(c)i=L.tuple(_).rest(c);else i=L.tuple(_);if(typeof e.minItems==="number")i=i.check(L.minLength(e.minItems));if(typeof e.maxItems==="number")i=i.check(L.maxLength(e.maxItems))}else if(Array.isArray(u)){let _=u.map((d)=>ke(d,r)),c=e.additionalItems&&typeof e.additionalItems==="object"?ke(e.additionalItems,r):void 0;if(c)i=L.tuple(_).rest(c);else i=L.tuple(_);if(typeof e.minItems==="number")i=i.check(L.minLength(e.minItems));if(typeof e.maxItems==="number")i=i.check(L.maxLength(e.maxItems))}else if(u!==void 0){let _=ke(u,r),c=L.array(_);if(typeof e.minItems==="number")c=c.min(e.minItems);if(typeof e.maxItems==="number")c=c.max(e.maxItems);i=c}else i=L.array(L.any());break}default:throw Error(`Unsupported type: ${n}`)}return i}function ke(e,r){if(typeof e==="boolean")return e?L.any():L.never();let n=sN(e,r),i=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let c=e.anyOf.map((g)=>ke(g,r)),d=L.union(c);n=i?L.intersection(n,d):d}if(e.oneOf&&Array.isArray(e.oneOf)){let c=e.oneOf.map((g)=>ke(g,r)),d=L.xor(c);n=i?L.intersection(n,d):d}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)n=i?n:L.any();else{let c=i?n:ke(e.allOf[0],r),d=i?0:1;for(let g=d;g0)r.registry.add(n,t);if(e.description)n=n.describe(e.description);return n}function uE(e,r){if(typeof e==="boolean")return e?L.any():L.never();let n;try{n=JSON.parse(JSON.stringify(e))}catch{throw Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let i=$0(n,r?.defaultTarget),t=n.$defs||n.definitions||{},u={version:i,defs:t,refs:new Map,processing:new Set,rootSchema:n,registry:r?.registry??oe};return ke(n,u)}var L,f0;var pN=R(()=>{fi();uc();Oi();Li();L={...Ri,...ic,iso:In},f0=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"])});var ld={};Qe(ld,{string:()=>E0,number:()=>k0,date:()=>N0,boolean:()=>T0,bigint:()=>S0});function E0(e){return Ef(Dn,e)}function k0(e){return mf(hn,e)}function T0(e){return Lf(On,e)}function S0(e){return yf(Rn,e)}function N0(e){return qf(Tt,e)}var eb=R(()=>{Oe();Li()});var ad={};Qe(ad,{xor:()=>Pv,xid:()=>tv,void:()=>Ov,uuidv7:()=>V$,uuidv6:()=>Y$,uuidv4:()=>C$,uuid:()=>B$,util:()=>w,url:()=>Q$,uppercase:()=>an,unknown:()=>Mr,union:()=>pi,undefined:()=>Uv,ulid:()=>nv,uint64:()=>wv,uint32:()=>bv,tuple:()=>xc,trim:()=>Tn,treeifyError:()=>u_,transform:()=>ru,toUpperCase:()=>Nn,toLowerCase:()=>Sn,toJSONSchema:()=>Ii,templateLiteral:()=>Yv,symbol:()=>Dv,superRefine:()=>gd,success:()=>Gv,stringbool:()=>nE,stringFormat:()=>$v,string:()=>ft,strictObject:()=>yv,startsWith:()=>$n,slugify:()=>bn,size:()=>Xr,setErrorMap:()=>VN,set:()=>Jv,safeParseAsync:()=>gc,safeParse:()=>dc,safeEncodeAsync:()=>Ec,safeEncode:()=>$c,safeDecodeAsync:()=>kc,safeDecode:()=>vc,registry:()=>ai,regexes:()=>we,regex:()=>on,refine:()=>dd,record:()=>Xc,readonly:()=>nd,property:()=>Ni,promise:()=>Vv,prettifyError:()=>__,preprocess:()=>iE,prefault:()=>Yc,positive:()=>Ei,pipe:()=>yi,partialRecord:()=>Xv,parseAsync:()=>cc,parse:()=>_c,overwrite:()=>Xe,optional:()=>vt,object:()=>Av,number:()=>Sc,nullish:()=>qv,nullable:()=>Et,null:()=>wc,normalize:()=>kn,nonpositive:()=>Ti,nonoptional:()=>Vc,nonnegative:()=>Si,never:()=>si,negative:()=>ki,nativeEnum:()=>zv,nanoid:()=>p$,nan:()=>Hv,multipleOf:()=>Er,minSize:()=>Be,minLength:()=>nr,mime:()=>En,meta:()=>eE,maxSize:()=>kr,maxLength:()=>Kr,map:()=>Fv,mac:()=>_v,lte:()=>De,lt:()=>Ge,lowercase:()=>ln,looseRecord:()=>Kv,looseObject:()=>jv,locales:()=>ot,literal:()=>Wv,length:()=>Fr,lazy:()=>ud,ksuid:()=>iv,keyof:()=>Lv,jwt:()=>fv,json:()=>tE,iso:()=>In,ipv6:()=>cv,ipv4:()=>uv,invertCodec:()=>Cv,intersection:()=>jc,int64:()=>mv,int32:()=>Nv,int:()=>Ai,instanceof:()=>rE,includes:()=>fn,httpUrl:()=>Z$,hostname:()=>vv,hex:()=>Ev,hash:()=>kv,guid:()=>H$,gte:()=>Ee,gt:()=>He,globalRegistry:()=>oe,getErrorMap:()=>QN,function:()=>Qv,fromJSONSchema:()=>uE,formatError:()=>tt,float64:()=>Sv,float32:()=>Tv,flattenError:()=>nt,file:()=>Mv,exactOptional:()=>qc,enum:()=>eu,endsWith:()=>vn,encodeAsync:()=>ac,encode:()=>oc,emoji:()=>s$,email:()=>G$,e164:()=>av,discriminatedUnion:()=>xv,describe:()=>pv,decodeAsync:()=>fc,decode:()=>lc,date:()=>Rv,custom:()=>sv,cuid2:()=>rv,cuid:()=>ev,core:()=>tr,config:()=>ie,coerce:()=>ld,codec:()=>Bv,clone:()=>ve,cidrv6:()=>gv,cidrv4:()=>dv,check:()=>Zv,catch:()=>sc,boolean:()=>Nc,bigint:()=>Iv,base64url:()=>lv,base64:()=>ov,array:()=>St,any:()=>hv,_function:()=>Qv,_default:()=>Bc,_ZodString:()=>Pi,ZodXor:()=>Lc,ZodXID:()=>Wi,ZodVoid:()=>Oc,ZodUnknown:()=>Uc,ZodUnion:()=>bt,ZodUndefined:()=>Ic,ZodUUID:()=>Ce,ZodURL:()=>kt,ZodULID:()=>zi,ZodType:()=>z,ZodTuple:()=>Pc,ZodTransform:()=>Wc,ZodTemplateLiteral:()=>td,ZodSymbol:()=>bc,ZodSuccess:()=>Qc,ZodStringFormat:()=>Y,ZodString:()=>Dn,ZodSet:()=>Fc,ZodRecord:()=>mn,ZodRealError:()=>be,ZodReadonly:()=>rd,ZodPromise:()=>_d,ZodPreprocess:()=>ed,ZodPrefault:()=>Cc,ZodPipe:()=>It,ZodOptional:()=>nu,ZodObject:()=>Nt,ZodNumberFormat:()=>qr,ZodNumber:()=>hn,ZodNullable:()=>Gc,ZodNull:()=>mc,ZodNonOptional:()=>tu,ZodNever:()=>hc,ZodNanoID:()=>Ki,ZodNaN:()=>pc,ZodMap:()=>Kc,ZodMAC:()=>Tc,ZodLiteral:()=>Jc,ZodLazy:()=>id,ZodKSUID:()=>Mi,ZodJWT:()=>Qi,ZodIssueCode:()=>YN,ZodIntersection:()=>yc,ZodISOTime:()=>Ui,ZodISODuration:()=>hi,ZodISODateTime:()=>wi,ZodISODate:()=>Di,ZodIPv6:()=>Gi,ZodIPv4:()=>qi,ZodGUID:()=>$t,ZodFunction:()=>cd,ZodFirstPartyTypeKind:()=>od,ZodFile:()=>zc,ZodExactOptional:()=>Mc,ZodError:()=>BN,ZodEnum:()=>wn,ZodEmoji:()=>Xi,ZodEmail:()=>xi,ZodE164:()=>Vi,ZodDiscriminatedUnion:()=>Ac,ZodDefault:()=>Hc,ZodDate:()=>Tt,ZodCustomStringFormat:()=>Un,ZodCustom:()=>wt,ZodCodec:()=>mt,ZodCatch:()=>Zc,ZodCUID2:()=>Ji,ZodCUID:()=>Fi,ZodCIDRv6:()=>Bi,ZodCIDRv4:()=>Hi,ZodBoolean:()=>On,ZodBigIntFormat:()=>Zi,ZodBigInt:()=>Rn,ZodBase64URL:()=>Yi,ZodBase64:()=>Ci,ZodArray:()=>Rc,ZodAny:()=>Dc,TimePrecision:()=>ec,NEVER:()=>r_,$output:()=>y_,$input:()=>j_,$brand:()=>n_});var _E=R(()=>{Oe();Oe();ma();Oe();mi();pN();ff();Oi();Oi();eb();Li();uc();M$();q$();ZN();ie(di())});var rb={};Qe(rb,{z:()=>ad,xor:()=>Pv,xid:()=>tv,void:()=>Ov,uuidv7:()=>V$,uuidv6:()=>Y$,uuidv4:()=>C$,uuid:()=>B$,util:()=>w,url:()=>Q$,uppercase:()=>an,unknown:()=>Mr,union:()=>pi,undefined:()=>Uv,ulid:()=>nv,uint64:()=>wv,uint32:()=>bv,tuple:()=>xc,trim:()=>Tn,treeifyError:()=>u_,transform:()=>ru,toUpperCase:()=>Nn,toLowerCase:()=>Sn,toJSONSchema:()=>Ii,templateLiteral:()=>Yv,symbol:()=>Dv,superRefine:()=>gd,success:()=>Gv,stringbool:()=>nE,stringFormat:()=>$v,string:()=>ft,strictObject:()=>yv,startsWith:()=>$n,slugify:()=>bn,size:()=>Xr,setErrorMap:()=>VN,set:()=>Jv,safeParseAsync:()=>gc,safeParse:()=>dc,safeEncodeAsync:()=>Ec,safeEncode:()=>$c,safeDecodeAsync:()=>kc,safeDecode:()=>vc,registry:()=>ai,regexes:()=>we,regex:()=>on,refine:()=>dd,record:()=>Xc,readonly:()=>nd,property:()=>Ni,promise:()=>Vv,prettifyError:()=>__,preprocess:()=>iE,prefault:()=>Yc,positive:()=>Ei,pipe:()=>yi,partialRecord:()=>Xv,parseAsync:()=>cc,parse:()=>_c,overwrite:()=>Xe,optional:()=>vt,object:()=>Av,number:()=>Sc,nullish:()=>qv,nullable:()=>Et,null:()=>wc,normalize:()=>kn,nonpositive:()=>Ti,nonoptional:()=>Vc,nonnegative:()=>Si,never:()=>si,negative:()=>ki,nativeEnum:()=>zv,nanoid:()=>p$,nan:()=>Hv,multipleOf:()=>Er,minSize:()=>Be,minLength:()=>nr,mime:()=>En,meta:()=>eE,maxSize:()=>kr,maxLength:()=>Kr,map:()=>Fv,mac:()=>_v,lte:()=>De,lt:()=>Ge,lowercase:()=>ln,looseRecord:()=>Kv,looseObject:()=>jv,locales:()=>ot,literal:()=>Wv,length:()=>Fr,lazy:()=>ud,ksuid:()=>iv,keyof:()=>Lv,jwt:()=>fv,json:()=>tE,iso:()=>In,ipv6:()=>cv,ipv4:()=>uv,invertCodec:()=>Cv,intersection:()=>jc,int64:()=>mv,int32:()=>Nv,int:()=>Ai,instanceof:()=>rE,includes:()=>fn,httpUrl:()=>Z$,hostname:()=>vv,hex:()=>Ev,hash:()=>kv,guid:()=>H$,gte:()=>Ee,gt:()=>He,globalRegistry:()=>oe,getErrorMap:()=>QN,function:()=>Qv,fromJSONSchema:()=>uE,formatError:()=>tt,float64:()=>Sv,float32:()=>Tv,flattenError:()=>nt,file:()=>Mv,exactOptional:()=>qc,enum:()=>eu,endsWith:()=>vn,encodeAsync:()=>ac,encode:()=>oc,emoji:()=>s$,email:()=>G$,e164:()=>av,discriminatedUnion:()=>xv,describe:()=>pv,default:()=>b0,decodeAsync:()=>fc,decode:()=>lc,date:()=>Rv,custom:()=>sv,cuid2:()=>rv,cuid:()=>ev,core:()=>tr,config:()=>ie,coerce:()=>ld,codec:()=>Bv,clone:()=>ve,cidrv6:()=>gv,cidrv4:()=>dv,check:()=>Zv,catch:()=>sc,boolean:()=>Nc,bigint:()=>Iv,base64url:()=>lv,base64:()=>ov,array:()=>St,any:()=>hv,_function:()=>Qv,_default:()=>Bc,_ZodString:()=>Pi,ZodXor:()=>Lc,ZodXID:()=>Wi,ZodVoid:()=>Oc,ZodUnknown:()=>Uc,ZodUnion:()=>bt,ZodUndefined:()=>Ic,ZodUUID:()=>Ce,ZodURL:()=>kt,ZodULID:()=>zi,ZodType:()=>z,ZodTuple:()=>Pc,ZodTransform:()=>Wc,ZodTemplateLiteral:()=>td,ZodSymbol:()=>bc,ZodSuccess:()=>Qc,ZodStringFormat:()=>Y,ZodString:()=>Dn,ZodSet:()=>Fc,ZodRecord:()=>mn,ZodRealError:()=>be,ZodReadonly:()=>rd,ZodPromise:()=>_d,ZodPreprocess:()=>ed,ZodPrefault:()=>Cc,ZodPipe:()=>It,ZodOptional:()=>nu,ZodObject:()=>Nt,ZodNumberFormat:()=>qr,ZodNumber:()=>hn,ZodNullable:()=>Gc,ZodNull:()=>mc,ZodNonOptional:()=>tu,ZodNever:()=>hc,ZodNanoID:()=>Ki,ZodNaN:()=>pc,ZodMap:()=>Kc,ZodMAC:()=>Tc,ZodLiteral:()=>Jc,ZodLazy:()=>id,ZodKSUID:()=>Mi,ZodJWT:()=>Qi,ZodIssueCode:()=>YN,ZodIntersection:()=>yc,ZodISOTime:()=>Ui,ZodISODuration:()=>hi,ZodISODateTime:()=>wi,ZodISODate:()=>Di,ZodIPv6:()=>Gi,ZodIPv4:()=>qi,ZodGUID:()=>$t,ZodFunction:()=>cd,ZodFirstPartyTypeKind:()=>od,ZodFile:()=>zc,ZodExactOptional:()=>Mc,ZodError:()=>BN,ZodEnum:()=>wn,ZodEmoji:()=>Xi,ZodEmail:()=>xi,ZodE164:()=>Vi,ZodDiscriminatedUnion:()=>Ac,ZodDefault:()=>Hc,ZodDate:()=>Tt,ZodCustomStringFormat:()=>Un,ZodCustom:()=>wt,ZodCodec:()=>mt,ZodCatch:()=>Zc,ZodCUID2:()=>Ji,ZodCUID:()=>Fi,ZodCIDRv6:()=>Bi,ZodCIDRv4:()=>Hi,ZodBoolean:()=>On,ZodBigIntFormat:()=>Zi,ZodBigInt:()=>Rn,ZodBase64URL:()=>Yi,ZodBase64:()=>Ci,ZodArray:()=>Rc,ZodAny:()=>Dc,TimePrecision:()=>ec,NEVER:()=>r_,$output:()=>y_,$input:()=>j_,$brand:()=>n_});var b0;var nb=R(()=>{_E();_E();b0=ad});var vu=Yr((j6)=>{class HE extends Error{constructor(e,r,n){super(n);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=e,this.nestedError=void 0}}class HI extends HE{constructor(e){super(1,"commander.invalidArgument",e);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}j6.CommanderError=HE;j6.InvalidArgumentError=HI});var Yd=Yr((F6)=>{var{InvalidArgumentError:X6}=vu();class BI{constructor(e,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}if(this._name.length>3&&this._name.slice(-3)==="...")this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_concatValue(e,r){if(r===this.defaultValue||!Array.isArray(r))return[e];return r.concat(e)}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,n)=>{if(!this.argChoices.includes(r))throw new X6(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(r,n);return r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function K6(e){let r=e.name()+(e.variadic===!0?"...":"");return e.required?"<"+r+">":"["+r+"]"}F6.Argument=BI;F6.humanReadableArgName=K6});var BE=Yr((M6)=>{var{humanReadableArgName:W6}=Yd();class CI{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let r=e.commands.filter((i)=>!i._hidden),n=e._getHelpCommand();if(n&&!n._hidden)r.push(n);if(this.sortSubcommands)r.sort((i,t)=>{return i.name().localeCompare(t.name())});return r}compareOptions(e,r){let n=(i)=>{return i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"")};return n(e).localeCompare(n(r))}visibleOptions(e){let r=e.options.filter((i)=>!i.hidden),n=e._getHelpOption();if(n&&!n.hidden){let i=n.short&&e._findOption(n.short),t=n.long&&e._findOption(n.long);if(!i&&!t)r.push(n);else if(n.long&&!t)r.push(e.createOption(n.long,n.description));else if(n.short&&!i)r.push(e.createOption(n.short,n.description))}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let r=[];for(let n=e.parent;n;n=n.parent){let i=n.options.filter((t)=>!t.hidden);r.push(...i)}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleArguments(e){if(e._argsDescription)e.registeredArguments.forEach((r)=>{r.description=r.description||e._argsDescription[r.name()]||""});if(e.registeredArguments.find((r)=>r.description))return e.registeredArguments;return[]}subcommandTerm(e){let r=e.registeredArguments.map((n)=>W6(n)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,r){return r.visibleCommands(e).reduce((n,i)=>{return Math.max(n,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(i))))},0)}longestOptionTermLength(e,r){return r.visibleOptions(e).reduce((n,i)=>{return Math.max(n,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestGlobalOptionTermLength(e,r){return r.visibleGlobalOptions(e).reduce((n,i)=>{return Math.max(n,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestArgumentTermLength(e,r){return r.visibleArguments(e).reduce((n,i)=>{return Math.max(n,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(i))))},0)}commandUsage(e){let r=e._name;if(e._aliases[0])r=r+"|"+e._aliases[0];let n="";for(let i=e.parent;i;i=i.parent)n=i.name()+" "+n;return n+r+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let r=[];if(e.argChoices)r.push(`choices: ${e.argChoices.map((n)=>JSON.stringify(n)).join(", ")}`);if(e.defaultValue!==void 0){if(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==="boolean")r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`)}if(e.presetArg!==void 0&&e.optional)r.push(`preset: ${JSON.stringify(e.presetArg)}`);if(e.envVar!==void 0)r.push(`env: ${e.envVar}`);if(r.length>0)return`${e.description} (${r.join(", ")})`;return e.description}argumentDescription(e){let r=[];if(e.argChoices)r.push(`choices: ${e.argChoices.map((n)=>JSON.stringify(n)).join(", ")}`);if(e.defaultValue!==void 0)r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`);if(r.length>0){let n=`(${r.join(", ")})`;if(e.description)return`${e.description} ${n}`;return n}return e.description}formatHelp(e,r){let n=r.padWidth(e,r),i=r.helpWidth??80;function t(f,o){return r.formatItem(f,n,o,r)}let u=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(e))}`,""],_=r.commandDescription(e);if(_.length>0)u=u.concat([r.boxWrap(r.styleCommandDescription(_),i),""]);let c=r.visibleArguments(e).map((f)=>{return t(r.styleArgumentTerm(r.argumentTerm(f)),r.styleArgumentDescription(r.argumentDescription(f)))});if(c.length>0)u=u.concat([r.styleTitle("Arguments:"),...c,""]);let d=r.visibleOptions(e).map((f)=>{return t(r.styleOptionTerm(r.optionTerm(f)),r.styleOptionDescription(r.optionDescription(f)))});if(d.length>0)u=u.concat([r.styleTitle("Options:"),...d,""]);if(r.showGlobalOptions){let f=r.visibleGlobalOptions(e).map((o)=>{return t(r.styleOptionTerm(r.optionTerm(o)),r.styleOptionDescription(r.optionDescription(o)))});if(f.length>0)u=u.concat([r.styleTitle("Global Options:"),...f,""])}let g=r.visibleCommands(e).map((f)=>{return t(r.styleSubcommandTerm(r.subcommandTerm(f)),r.styleSubcommandDescription(r.subcommandDescription(f)))});if(g.length>0)u=u.concat([r.styleTitle("Commands:"),...g,""]);return u.join(` +`)}displayWidth(e){return YI(e).length}styleTitle(e){return e}styleUsage(e){return e.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r==="[command]")return this.styleSubcommandText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleCommandText(r)}).join(" ")}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleSubcommandText(r)}).join(" ")}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,r){return Math.max(r.longestOptionTermLength(e,r),r.longestGlobalOptionTermLength(e,r),r.longestSubcommandTermLength(e,r),r.longestArgumentTermLength(e,r))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,r,n,i){let u=" ".repeat(2);if(!n)return u+e;let _=e.padEnd(r+e.length-i.displayWidth(e)),c=2,g=(this.helpWidth??80)-r-c-2,f;if(g{let _=u.match(i);if(_===null){t.push("");return}let c=[_.shift()],d=this.displayWidth(c[0]);_.forEach((g)=>{let f=this.displayWidth(g);if(d+f<=r){c.push(g),d+=f;return}t.push(c.join(""));let o=g.trimStart();c=[o],d=this.displayWidth(o)}),t.push(c.join(""))}),t.join(` +`)}}function YI(e){let r=/\x1b\[\d*(;\d*)*m/g;return e.replace(r,"")}M6.Help=CI;M6.stripColor=YI});var CE=Yr((C6)=>{var{InvalidArgumentError:H6}=vu();class QI{constructor(e,r){this.flags=e,this.description=r||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=B6(e);if(this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let r=e;if(typeof e==="string")r={[e]:!0};return this.implied=Object.assign(this.implied||{},r),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,r){if(r===this.defaultValue||!Array.isArray(r))return[e];return r.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,n)=>{if(!this.argChoices.includes(r))throw new H6(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(r,n);return r},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return VI(this.name().replace(/^no-/,""));return VI(this.name())}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class ZI{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach((r)=>{if(r.negate)this.negativeOptions.set(r.attributeName(),r);else this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,n)=>{if(this.positiveOptions.has(n))this.dualOptions.add(n)})}valueFromOption(e,r){let n=r.attributeName();if(!this.dualOptions.has(n))return!0;let i=this.negativeOptions.get(n).presetArg,t=i!==void 0?i:!1;return r.negate===(t===e)}}function VI(e){return e.split("-").reduce((r,n)=>{return r+n[0].toUpperCase()+n.slice(1)})}function B6(e){let r,n,i=/^-[^-]$/,t=/^--[^-]/,u=e.split(/[ |,]+/).concat("guard");if(i.test(u[0]))r=u.shift();if(t.test(u[0]))n=u.shift();if(!r&&i.test(u[0]))r=u.shift();if(!r&&t.test(u[0]))r=n,n=u.shift();if(u[0].startsWith("-")){let _=u[0],c=`option creation failed due to '${_}' in option flags '${e}'`;if(/^-[^-][^-]/.test(_))throw Error(`${c} - a short flag is a single dash and a single character - either use a single dash and a single character (for a short flag) - - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(i.test(u))throw Error(`${c} -- too many short flags`);if(n.test(u))throw Error(`${c} + - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(i.test(_))throw Error(`${c} +- too many short flags`);if(t.test(_))throw Error(`${c} - too many long flags`);throw Error(`${c} -- unrecognised flag format`)}if(r===void 0&&t===void 0)throw Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:r,longFlag:t}}BX.Option=QO;BX.DualOptions=ZO});var sO=Hr((sX)=>{function QX(e,r){if(Math.abs(e.length-r.length)>3)return Math.max(e.length,r.length);let t=[];for(let i=0;i<=e.length;i++)t[i]=[i];for(let i=0;i<=r.length;i++)t[0][i]=i;for(let i=1;i<=r.length;i++)for(let n=1;n<=e.length;n++){let _=1;if(e[n-1]===r[i-1])_=0;else _=1;if(t[n][i]=Math.min(t[n-1][i]+1,t[n][i-1]+1,t[n-1][i-1]+_),n>1&&i>1&&e[n-1]===r[i-2]&&e[n-2]===r[i-1])t[n][i]=Math.min(t[n][i],t[n-2][i-2]+1)}return t[e.length][r.length]}function ZX(e,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));let t=e.startsWith("--");if(t)e=e.slice(2),r=r.map((u)=>u.slice(2));let i=[],n=3,_=0.4;if(r.forEach((u)=>{if(u.length<=1)return;let c=QX(e,u),d=Math.max(e.length,u.length);if((d-c)/d>_){if(cu.localeCompare(c)),t)i=i.map((u)=>`--${u}`);if(i.length>1)return` +- unrecognised flag format`)}if(r===void 0&&n===void 0)throw Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:r,longFlag:n}}C6.Option=QI;C6.DualOptions=ZI});var sI=Yr((s6)=>{function Q6(e,r){if(Math.abs(e.length-r.length)>3)return Math.max(e.length,r.length);let n=[];for(let i=0;i<=e.length;i++)n[i]=[i];for(let i=0;i<=r.length;i++)n[0][i]=i;for(let i=1;i<=r.length;i++)for(let t=1;t<=e.length;t++){let u=1;if(e[t-1]===r[i-1])u=0;else u=1;if(n[t][i]=Math.min(n[t-1][i]+1,n[t][i-1]+1,n[t-1][i-1]+u),t>1&&i>1&&e[t-1]===r[i-2]&&e[t-2]===r[i-1])n[t][i]=Math.min(n[t][i],n[t-2][i-2]+1)}return n[e.length][r.length]}function Z6(e,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));let n=e.startsWith("--");if(n)e=e.slice(2),r=r.map((_)=>_.slice(2));let i=[],t=3,u=0.4;if(r.forEach((_)=>{if(_.length<=1)return;let c=Q6(e,_),d=Math.max(e.length,_.length);if((d-c)/d>u){if(c_.localeCompare(c)),n)i=i.map((_)=>`--${_}`);if(i.length>1)return` (Did you mean one of ${i.join(", ")}?)`;if(i.length===1)return` -(Did you mean ${i[0]}?)`;return""}sX.suggestSimilar=ZX});var tL=Hr((uy)=>{var ey=B("events").EventEmitter,H$=B("child_process"),Lr=B("path"),Vd=B("fs"),G=B("process"),{Argument:ry,humanReadableArgName:ty}=Hd(),{CommanderError:V$}=f_(),{Help:ny,stripColor:iy}=Y$(),{Option:pO,DualOptions:_y}=B$(),{suggestSimilar:eL}=sO();class Z$ extends ey{constructor(e){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(r)=>G.stdout.write(r),writeErr:(r)=>G.stderr.write(r),outputError:(r,t)=>t(r),getOutHelpWidth:()=>G.stdout.isTTY?G.stdout.columns:void 0,getErrHelpWidth:()=>G.stderr.isTTY?G.stderr.columns:void 0,getOutHasColors:()=>Q$()??(G.stdout.isTTY&&G.stdout.hasColors?.()),getErrHasColors:()=>Q$()??(G.stderr.isTTY&&G.stderr.hasColors?.()),stripColor:(r)=>iy(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let r=this;r;r=r.parent)e.push(r);return e}command(e,r,t){let i=r,n=t;if(typeof i==="object"&&i!==null)n=i,i=null;n=n||{};let[,_,u]=e.match(/([^ ]+) *(.*)/),c=this.createCommand(_);if(i)c.description(i),c._executableHandler=!0;if(n.isDefault)this._defaultCommandName=c._name;if(c._hidden=!!(n.noHelp||n.hidden),c._executableFile=n.executableFile||null,u)c.arguments(u);if(this._registerCommand(c),c.parent=this,c.copyInheritedSettings(this),i)return this;return c}createCommand(e){return new Z$(e)}createHelp(){return Object.assign(new ny,this.configureHelp())}configureHelp(e){if(e===void 0)return this._helpConfiguration;return this._helpConfiguration=e,this}configureOutput(e){if(e===void 0)return this._outputConfiguration;return Object.assign(this._outputConfiguration,e),this}showHelpAfterError(e=!0){if(typeof e!=="string")e=!!e;return this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,r){if(!e._name)throw Error(`Command passed to .addCommand() must have a name -- specify the name in Command constructor or using .name()`);if(r=r||{},r.isDefault)this._defaultCommandName=e._name;if(r.noHelp||r.hidden)e._hidden=!0;return this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,r){return new ry(e,r)}argument(e,r,t,i){let n=this.createArgument(e,r);if(typeof t==="function")n.default(i).argParser(t);else n.default(t);return this.addArgument(n),this}arguments(e){return e.trim().split(/ +/).forEach((r)=>{this.argument(r)}),this}addArgument(e){let r=this.registeredArguments.slice(-1)[0];if(r&&r.variadic)throw Error(`only the last argument can be variadic '${r.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,r){if(typeof e==="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,t,i]=e.match(/([^ ]+) *(.*)/),n=r??"display help for command",_=this.createCommand(t);if(_.helpOption(!1),i)_.arguments(i);if(n)_.description(n);return this._addImplicitHelpCommand=!0,this._helpCommand=_,this}addHelpCommand(e,r){if(typeof e!=="object")return this.helpCommand(e,r),this;return this._addImplicitHelpCommand=!0,this._helpCommand=e,this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(e,r){let t=["preSubcommand","preAction","postAction"];if(!t.includes(e))throw Error(`Unexpected value for event passed to hook : '${e}'. -Expecting one of '${t.join("', '")}'`);if(this._lifeCycleHooks[e])this._lifeCycleHooks[e].push(r);else this._lifeCycleHooks[e]=[r];return this}exitOverride(e){if(e)this._exitCallback=e;else this._exitCallback=(r)=>{if(r.code!=="commander.executeSubCommandAsync")throw r};return this}_exit(e,r,t){if(this._exitCallback)this._exitCallback(new V$(e,r,t));G.exit(e)}action(e){let r=(t)=>{let i=this.registeredArguments.length,n=t.slice(0,i);if(this._storeOptionsAsProperties)n[i]=this;else n[i]=this.opts();return n.push(this),e.apply(this,n)};return this._actionHandler=r,this}createOption(e,r){return new pO(e,r)}_callParseArg(e,r,t,i){try{return e.parseArg(r,t)}catch(n){if(n.code==="commander.invalidArgument"){let _=`${i} ${n.message}`;this.error(_,{exitCode:n.exitCode,code:n.code})}throw n}}_registerOption(e){let r=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(r){let t=e.long&&this._findOption(e.long)?e.long:e.short;throw Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${t}' -- already used by option '${r.flags}'`)}this.options.push(e)}_registerCommand(e){let r=(i)=>{return[i.name()].concat(i.aliases())},t=r(e).find((i)=>this._findCommand(i));if(t){let i=r(this._findCommand(t)).join("|"),n=r(e).join("|");throw Error(`cannot add command '${n}' as already have command '${i}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let r=e.name(),t=e.attributeName();if(e.negate){let n=e.long.replace(/^--no-/,"--");if(!this._findOption(n))this.setOptionValueWithSource(t,e.defaultValue===void 0?!0:e.defaultValue,"default")}else if(e.defaultValue!==void 0)this.setOptionValueWithSource(t,e.defaultValue,"default");let i=(n,_,u)=>{if(n==null&&e.presetArg!==void 0)n=e.presetArg;let c=this.getOptionValue(t);if(n!==null&&e.parseArg)n=this._callParseArg(e,n,c,_);else if(n!==null&&e.variadic)n=e._concatValue(n,c);if(n==null)if(e.negate)n=!1;else if(e.isBoolean()||e.optional)n=!0;else n="";this.setOptionValueWithSource(t,n,u)};if(this.on("option:"+r,(n)=>{let _=`error: option '${e.flags}' argument '${n}' is invalid.`;i(n,_,"cli")}),e.envVar)this.on("optionEnv:"+r,(n)=>{let _=`error: option '${e.flags}' value '${n}' from env '${e.envVar}' is invalid.`;i(n,_,"env")});return this}_optionEx(e,r,t,i,n){if(typeof r==="object"&&r instanceof pO)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let _=this.createOption(r,t);if(_.makeOptionMandatory(!!e.mandatory),typeof i==="function")_.default(n).argParser(i);else if(i instanceof RegExp){let u=i;i=(c,d)=>{let o=u.exec(c);return o?o[0]:d},_.default(n).argParser(i)}else _.default(i);return this.addOption(_)}option(e,r,t,i){return this._optionEx({},e,r,t,i)}requiredOption(e,r,t,i){return this._optionEx({mandatory:!0},e,r,t,i)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(e=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!e,this}getOptionValue(e){if(this._storeOptionsAsProperties)return this[e];return this._optionValues[e]}setOptionValue(e,r){return this.setOptionValueWithSource(e,r,void 0)}setOptionValueWithSource(e,r,t){if(this._storeOptionsAsProperties)this[e]=r;else this._optionValues[e]=r;return this._optionValueSources[e]=t,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let r;return this._getCommandAndAncestors().forEach((t)=>{if(t.getOptionValueSource(e)!==void 0)r=t.getOptionValueSource(e)}),r}_prepareUserArgs(e,r){if(e!==void 0&&!Array.isArray(e))throw Error("first parameter to parse must be array or undefined");if(r=r||{},e===void 0&&r.from===void 0){if(G.versions?.electron)r.from="electron";let i=G.execArgv??[];if(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))r.from="eval"}if(e===void 0)e=G.argv;this.rawArgs=e.slice();let t;switch(r.from){case void 0:case"node":this._scriptPath=e[1],t=e.slice(2);break;case"electron":if(G.defaultApp)this._scriptPath=e[1],t=e.slice(2);else t=e.slice(1);break;case"user":t=e.slice(0);break;case"eval":t=e.slice(1);break;default:throw Error(`unexpected parse option { from: '${r.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",t}parse(e,r){this._prepareForParse();let t=this._prepareUserArgs(e,r);return this._parseCommand([],t),this}async parseAsync(e,r){this._prepareForParse();let t=this._prepareUserArgs(e,r);return await this._parseCommand([],t),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true. -- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(e,r,t){if(Vd.existsSync(e))return;let i=r?`searched for local subcommand relative to directory '${r}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",n=`'${e}' does not exist - - if '${t}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead +(Did you mean ${i[0]}?)`;return""}s6.suggestSimilar=Z6});var nm=Yr((_y)=>{var ey=C("events").EventEmitter,YE=C("child_process"),mr=C("path"),Vd=C("fs"),H=C("process"),{Argument:ry,humanReadableArgName:ny}=Yd(),{CommanderError:VE}=vu(),{Help:ty,stripColor:iy}=BE(),{Option:pI,DualOptions:uy}=CE(),{suggestSimilar:em}=sI();class ZE extends ey{constructor(e){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(r)=>H.stdout.write(r),writeErr:(r)=>H.stderr.write(r),outputError:(r,n)=>n(r),getOutHelpWidth:()=>H.stdout.isTTY?H.stdout.columns:void 0,getErrHelpWidth:()=>H.stderr.isTTY?H.stderr.columns:void 0,getOutHasColors:()=>QE()??(H.stdout.isTTY&&H.stdout.hasColors?.()),getErrHasColors:()=>QE()??(H.stderr.isTTY&&H.stderr.hasColors?.()),stripColor:(r)=>iy(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let r=this;r;r=r.parent)e.push(r);return e}command(e,r,n){let i=r,t=n;if(typeof i==="object"&&i!==null)t=i,i=null;t=t||{};let[,u,_]=e.match(/([^ ]+) *(.*)/),c=this.createCommand(u);if(i)c.description(i),c._executableHandler=!0;if(t.isDefault)this._defaultCommandName=c._name;if(c._hidden=!!(t.noHelp||t.hidden),c._executableFile=t.executableFile||null,_)c.arguments(_);if(this._registerCommand(c),c.parent=this,c.copyInheritedSettings(this),i)return this;return c}createCommand(e){return new ZE(e)}createHelp(){return Object.assign(new ty,this.configureHelp())}configureHelp(e){if(e===void 0)return this._helpConfiguration;return this._helpConfiguration=e,this}configureOutput(e){if(e===void 0)return this._outputConfiguration;return Object.assign(this._outputConfiguration,e),this}showHelpAfterError(e=!0){if(typeof e!=="string")e=!!e;return this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,r){if(!e._name)throw Error(`Command passed to .addCommand() must have a name +- specify the name in Command constructor or using .name()`);if(r=r||{},r.isDefault)this._defaultCommandName=e._name;if(r.noHelp||r.hidden)e._hidden=!0;return this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,r){return new ry(e,r)}argument(e,r,n,i){let t=this.createArgument(e,r);if(typeof n==="function")t.default(i).argParser(n);else t.default(n);return this.addArgument(t),this}arguments(e){return e.trim().split(/ +/).forEach((r)=>{this.argument(r)}),this}addArgument(e){let r=this.registeredArguments.slice(-1)[0];if(r&&r.variadic)throw Error(`only the last argument can be variadic '${r.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,r){if(typeof e==="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,n,i]=e.match(/([^ ]+) *(.*)/),t=r??"display help for command",u=this.createCommand(n);if(u.helpOption(!1),i)u.arguments(i);if(t)u.description(t);return this._addImplicitHelpCommand=!0,this._helpCommand=u,this}addHelpCommand(e,r){if(typeof e!=="object")return this.helpCommand(e,r),this;return this._addImplicitHelpCommand=!0,this._helpCommand=e,this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(e,r){let n=["preSubcommand","preAction","postAction"];if(!n.includes(e))throw Error(`Unexpected value for event passed to hook : '${e}'. +Expecting one of '${n.join("', '")}'`);if(this._lifeCycleHooks[e])this._lifeCycleHooks[e].push(r);else this._lifeCycleHooks[e]=[r];return this}exitOverride(e){if(e)this._exitCallback=e;else this._exitCallback=(r)=>{if(r.code!=="commander.executeSubCommandAsync")throw r};return this}_exit(e,r,n){if(this._exitCallback)this._exitCallback(new VE(e,r,n));H.exit(e)}action(e){let r=(n)=>{let i=this.registeredArguments.length,t=n.slice(0,i);if(this._storeOptionsAsProperties)t[i]=this;else t[i]=this.opts();return t.push(this),e.apply(this,t)};return this._actionHandler=r,this}createOption(e,r){return new pI(e,r)}_callParseArg(e,r,n,i){try{return e.parseArg(r,n)}catch(t){if(t.code==="commander.invalidArgument"){let u=`${i} ${t.message}`;this.error(u,{exitCode:t.exitCode,code:t.code})}throw t}}_registerOption(e){let r=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(r){let n=e.long&&this._findOption(e.long)?e.long:e.short;throw Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${n}' +- already used by option '${r.flags}'`)}this.options.push(e)}_registerCommand(e){let r=(i)=>{return[i.name()].concat(i.aliases())},n=r(e).find((i)=>this._findCommand(i));if(n){let i=r(this._findCommand(n)).join("|"),t=r(e).join("|");throw Error(`cannot add command '${t}' as already have command '${i}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let r=e.name(),n=e.attributeName();if(e.negate){let t=e.long.replace(/^--no-/,"--");if(!this._findOption(t))this.setOptionValueWithSource(n,e.defaultValue===void 0?!0:e.defaultValue,"default")}else if(e.defaultValue!==void 0)this.setOptionValueWithSource(n,e.defaultValue,"default");let i=(t,u,_)=>{if(t==null&&e.presetArg!==void 0)t=e.presetArg;let c=this.getOptionValue(n);if(t!==null&&e.parseArg)t=this._callParseArg(e,t,c,u);else if(t!==null&&e.variadic)t=e._concatValue(t,c);if(t==null)if(e.negate)t=!1;else if(e.isBoolean()||e.optional)t=!0;else t="";this.setOptionValueWithSource(n,t,_)};if(this.on("option:"+r,(t)=>{let u=`error: option '${e.flags}' argument '${t}' is invalid.`;i(t,u,"cli")}),e.envVar)this.on("optionEnv:"+r,(t)=>{let u=`error: option '${e.flags}' value '${t}' from env '${e.envVar}' is invalid.`;i(t,u,"env")});return this}_optionEx(e,r,n,i,t){if(typeof r==="object"&&r instanceof pI)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let u=this.createOption(r,n);if(u.makeOptionMandatory(!!e.mandatory),typeof i==="function")u.default(t).argParser(i);else if(i instanceof RegExp){let _=i;i=(c,d)=>{let g=_.exec(c);return g?g[0]:d},u.default(t).argParser(i)}else u.default(i);return this.addOption(u)}option(e,r,n,i){return this._optionEx({},e,r,n,i)}requiredOption(e,r,n,i){return this._optionEx({mandatory:!0},e,r,n,i)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(e=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!e,this}getOptionValue(e){if(this._storeOptionsAsProperties)return this[e];return this._optionValues[e]}setOptionValue(e,r){return this.setOptionValueWithSource(e,r,void 0)}setOptionValueWithSource(e,r,n){if(this._storeOptionsAsProperties)this[e]=r;else this._optionValues[e]=r;return this._optionValueSources[e]=n,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let r;return this._getCommandAndAncestors().forEach((n)=>{if(n.getOptionValueSource(e)!==void 0)r=n.getOptionValueSource(e)}),r}_prepareUserArgs(e,r){if(e!==void 0&&!Array.isArray(e))throw Error("first parameter to parse must be array or undefined");if(r=r||{},e===void 0&&r.from===void 0){if(H.versions?.electron)r.from="electron";let i=H.execArgv??[];if(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))r.from="eval"}if(e===void 0)e=H.argv;this.rawArgs=e.slice();let n;switch(r.from){case void 0:case"node":this._scriptPath=e[1],n=e.slice(2);break;case"electron":if(H.defaultApp)this._scriptPath=e[1],n=e.slice(2);else n=e.slice(1);break;case"user":n=e.slice(0);break;case"eval":n=e.slice(1);break;default:throw Error(`unexpected parse option { from: '${r.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",n}parse(e,r){this._prepareForParse();let n=this._prepareUserArgs(e,r);return this._parseCommand([],n),this}async parseAsync(e,r){this._prepareForParse();let n=this._prepareUserArgs(e,r);return await this._parseCommand([],n),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true. +- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(e,r,n){if(Vd.existsSync(e))return;let i=r?`searched for local subcommand relative to directory '${r}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",t=`'${e}' does not exist + - if '${n}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead - if the default executable name is not suitable, use the executableFile option to supply a custom name or path - - ${i}`;throw Error(n)}_executeSubCommand(e,r){r=r.slice();let t=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function n(o,a){let g=Lr.resolve(o,a);if(Vd.existsSync(g))return g;if(i.includes(Lr.extname(a)))return;let E=i.find((l)=>Vd.existsSync(`${g}${l}`));if(E)return`${g}${E}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let _=e._executableFile||`${this._name}-${e._name}`,u=this._executableDir||"";if(this._scriptPath){let o;try{o=Vd.realpathSync(this._scriptPath)}catch{o=this._scriptPath}u=Lr.resolve(Lr.dirname(o),u)}if(u){let o=n(u,_);if(!o&&!e._executableFile&&this._scriptPath){let a=Lr.basename(this._scriptPath,Lr.extname(this._scriptPath));if(a!==this._name)o=n(u,`${a}-${e._name}`)}_=o||_}t=i.includes(Lr.extname(_));let c;if(G.platform!=="win32")if(t)r.unshift(_),r=rL(G.execArgv).concat(r),c=H$.spawn(G.argv[0],r,{stdio:"inherit"});else c=H$.spawn(_,r,{stdio:"inherit"});else this._checkForMissingExecutable(_,u,e._name),r.unshift(_),r=rL(G.execArgv).concat(r),c=H$.spawn(G.execPath,r,{stdio:"inherit"});if(!c.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((a)=>{G.on(a,()=>{if(c.killed===!1&&c.exitCode===null)c.kill(a)})});let d=this._exitCallback;c.on("close",(o)=>{if(o=o??1,!d)G.exit(o);else d(new V$(o,"commander.executeSubCommandAsync","(close)"))}),c.on("error",(o)=>{if(o.code==="ENOENT")this._checkForMissingExecutable(_,u,e._name);else if(o.code==="EACCES")throw Error(`'${_}' not executable`);if(!d)G.exit(1);else{let a=new V$(1,"commander.executeSubCommandAsync","(error)");a.nestedError=o,d(a)}}),this.runningCommand=c}_dispatchSubcommand(e,r,t){let i=this._findCommand(e);if(!i)this.help({error:!0});i._prepareForParse();let n;return n=this._chainOrCallSubCommandHook(n,i,"preSubcommand"),n=this._chainOrCall(n,()=>{if(i._executableHandler)this._executeSubCommand(i,r.concat(t));else return i._parseCommand(r,t)}),n}_dispatchHelpCommand(e){if(!e)this.help();let r=this._findCommand(e);if(r&&!r._executableHandler)r.help();return this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((e,r)=>{if(e.required&&this.args[r]==null)this.missingArgument(e.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let e=(t,i,n)=>{let _=i;if(i!==null&&t.parseArg){let u=`error: command-argument value '${i}' is invalid for argument '${t.name()}'.`;_=this._callParseArg(t,i,n,u)}return _};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((t,i)=>{let n=t.defaultValue;if(t.variadic){if(i{return e(t,u,_)},t.defaultValue)}else if(n===void 0)n=[]}else if(ir());return r()}_chainOrCallHooks(e,r){let t=e,i=[];if(this._getCommandAndAncestors().reverse().filter((n)=>n._lifeCycleHooks[r]!==void 0).forEach((n)=>{n._lifeCycleHooks[r].forEach((_)=>{i.push({hookedCommand:n,callback:_})})}),r==="postAction")i.reverse();return i.forEach((n)=>{t=this._chainOrCall(t,()=>{return n.callback(n.hookedCommand,this)})}),t}_chainOrCallSubCommandHook(e,r,t){let i=e;if(this._lifeCycleHooks[t]!==void 0)this._lifeCycleHooks[t].forEach((n)=>{i=this._chainOrCall(i,()=>{return n(this,r)})});return i}_parseCommand(e,r){let t=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(t.operands),r=t.unknown,this.args=e.concat(r),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),r);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,e,r);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(t.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{if(t.unknown.length>0)this.unknownOption(t.unknown[0])},n=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let _;if(_=this._chainOrCallHooks(_,"preAction"),_=this._chainOrCall(_,()=>this._actionHandler(this.processedArgs)),this.parent)_=this._chainOrCall(_,()=>{this.parent.emit(n,e,r)});return _=this._chainOrCallHooks(_,"postAction"),_}if(this.parent&&this.parent.listenerCount(n))i(),this._processArguments(),this.parent.emit(n,e,r);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,r);if(this.listenerCount("command:*"))this.emit("command:*",e,r);else if(this.commands.length)this.unknownCommand();else i(),this._processArguments()}else if(this.commands.length)i(),this.help({error:!0});else i(),this._processArguments()}_findCommand(e){if(!e)return;return this.commands.find((r)=>r._name===e||r._aliases.includes(e))}_findOption(e){return this.options.find((r)=>r.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((e)=>{e.options.forEach((r)=>{if(r.mandatory&&e.getOptionValue(r.attributeName())===void 0)e.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let e=this.options.filter((t)=>{let i=t.attributeName();if(this.getOptionValue(i)===void 0)return!1;return this.getOptionValueSource(i)!=="default"});e.filter((t)=>t.conflictsWith.length>0).forEach((t)=>{let i=e.find((n)=>t.conflictsWith.includes(n.attributeName()));if(i)this._conflictingOption(t,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((e)=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let r=[],t=[],i=r,n=e.slice();function _(c){return c.length>1&&c[0]==="-"}let u=null;while(n.length){let c=n.shift();if(c==="--"){if(i===t)i.push(c);i.push(...n);break}if(u&&!_(c)){this.emit(`option:${u.name()}`,c);continue}if(u=null,_(c)){let d=this._findOption(c);if(d){if(d.required){let o=n.shift();if(o===void 0)this.optionMissingArgument(d);this.emit(`option:${d.name()}`,o)}else if(d.optional){let o=null;if(n.length>0&&!_(n[0]))o=n.shift();this.emit(`option:${d.name()}`,o)}else this.emit(`option:${d.name()}`);u=d.variadic?d:null;continue}}if(c.length>2&&c[0]==="-"&&c[1]!=="-"){let d=this._findOption(`-${c[1]}`);if(d){if(d.required||d.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${d.name()}`,c.slice(2));else this.emit(`option:${d.name()}`),n.unshift(`-${c.slice(2)}`);continue}}if(/^--[^=]+=/.test(c)){let d=c.indexOf("="),o=this._findOption(c.slice(0,d));if(o&&(o.required||o.optional)){this.emit(`option:${o.name()}`,c.slice(d+1));continue}}if(_(c))i=t;if((this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&t.length===0){if(this._findCommand(c)){if(r.push(c),n.length>0)t.push(...n);break}else if(this._getHelpCommand()&&c===this._getHelpCommand().name()){if(r.push(c),n.length>0)r.push(...n);break}else if(this._defaultCommandName){if(t.push(c),n.length>0)t.push(...n);break}}if(this._passThroughOptions){if(i.push(c),n.length>0)i.push(...n);break}i.push(c)}return{operands:r,unknown:t}}opts(){if(this._storeOptionsAsProperties){let e={},r=this.options.length;for(let t=0;tObject.assign(e,r.opts()),{})}error(e,r){if(this._outputConfiguration.outputError(`${e} + - ${i}`;throw Error(t)}_executeSubCommand(e,r){r=r.slice();let n=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function t(g,f){let o=mr.resolve(g,f);if(Vd.existsSync(o))return o;if(i.includes(mr.extname(f)))return;let a=i.find((l)=>Vd.existsSync(`${o}${l}`));if(a)return`${o}${a}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let u=e._executableFile||`${this._name}-${e._name}`,_=this._executableDir||"";if(this._scriptPath){let g;try{g=Vd.realpathSync(this._scriptPath)}catch{g=this._scriptPath}_=mr.resolve(mr.dirname(g),_)}if(_){let g=t(_,u);if(!g&&!e._executableFile&&this._scriptPath){let f=mr.basename(this._scriptPath,mr.extname(this._scriptPath));if(f!==this._name)g=t(_,`${f}-${e._name}`)}u=g||u}n=i.includes(mr.extname(u));let c;if(H.platform!=="win32")if(n)r.unshift(u),r=rm(H.execArgv).concat(r),c=YE.spawn(H.argv[0],r,{stdio:"inherit"});else c=YE.spawn(u,r,{stdio:"inherit"});else this._checkForMissingExecutable(u,_,e._name),r.unshift(u),r=rm(H.execArgv).concat(r),c=YE.spawn(H.execPath,r,{stdio:"inherit"});if(!c.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((f)=>{H.on(f,()=>{if(c.killed===!1&&c.exitCode===null)c.kill(f)})});let d=this._exitCallback;c.on("close",(g)=>{if(g=g??1,!d)H.exit(g);else d(new VE(g,"commander.executeSubCommandAsync","(close)"))}),c.on("error",(g)=>{if(g.code==="ENOENT")this._checkForMissingExecutable(u,_,e._name);else if(g.code==="EACCES")throw Error(`'${u}' not executable`);if(!d)H.exit(1);else{let f=new VE(1,"commander.executeSubCommandAsync","(error)");f.nestedError=g,d(f)}}),this.runningCommand=c}_dispatchSubcommand(e,r,n){let i=this._findCommand(e);if(!i)this.help({error:!0});i._prepareForParse();let t;return t=this._chainOrCallSubCommandHook(t,i,"preSubcommand"),t=this._chainOrCall(t,()=>{if(i._executableHandler)this._executeSubCommand(i,r.concat(n));else return i._parseCommand(r,n)}),t}_dispatchHelpCommand(e){if(!e)this.help();let r=this._findCommand(e);if(r&&!r._executableHandler)r.help();return this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((e,r)=>{if(e.required&&this.args[r]==null)this.missingArgument(e.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let e=(n,i,t)=>{let u=i;if(i!==null&&n.parseArg){let _=`error: command-argument value '${i}' is invalid for argument '${n.name()}'.`;u=this._callParseArg(n,i,t,_)}return u};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((n,i)=>{let t=n.defaultValue;if(n.variadic){if(i{return e(n,_,u)},n.defaultValue)}else if(t===void 0)t=[]}else if(ir());return r()}_chainOrCallHooks(e,r){let n=e,i=[];if(this._getCommandAndAncestors().reverse().filter((t)=>t._lifeCycleHooks[r]!==void 0).forEach((t)=>{t._lifeCycleHooks[r].forEach((u)=>{i.push({hookedCommand:t,callback:u})})}),r==="postAction")i.reverse();return i.forEach((t)=>{n=this._chainOrCall(n,()=>{return t.callback(t.hookedCommand,this)})}),n}_chainOrCallSubCommandHook(e,r,n){let i=e;if(this._lifeCycleHooks[n]!==void 0)this._lifeCycleHooks[n].forEach((t)=>{i=this._chainOrCall(i,()=>{return t(this,r)})});return i}_parseCommand(e,r){let n=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),r=n.unknown,this.args=e.concat(r),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),r);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,e,r);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{if(n.unknown.length>0)this.unknownOption(n.unknown[0])},t=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let u;if(u=this._chainOrCallHooks(u,"preAction"),u=this._chainOrCall(u,()=>this._actionHandler(this.processedArgs)),this.parent)u=this._chainOrCall(u,()=>{this.parent.emit(t,e,r)});return u=this._chainOrCallHooks(u,"postAction"),u}if(this.parent&&this.parent.listenerCount(t))i(),this._processArguments(),this.parent.emit(t,e,r);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,r);if(this.listenerCount("command:*"))this.emit("command:*",e,r);else if(this.commands.length)this.unknownCommand();else i(),this._processArguments()}else if(this.commands.length)i(),this.help({error:!0});else i(),this._processArguments()}_findCommand(e){if(!e)return;return this.commands.find((r)=>r._name===e||r._aliases.includes(e))}_findOption(e){return this.options.find((r)=>r.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((e)=>{e.options.forEach((r)=>{if(r.mandatory&&e.getOptionValue(r.attributeName())===void 0)e.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let e=this.options.filter((n)=>{let i=n.attributeName();if(this.getOptionValue(i)===void 0)return!1;return this.getOptionValueSource(i)!=="default"});e.filter((n)=>n.conflictsWith.length>0).forEach((n)=>{let i=e.find((t)=>n.conflictsWith.includes(t.attributeName()));if(i)this._conflictingOption(n,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((e)=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let r=[],n=[],i=r,t=e.slice();function u(c){return c.length>1&&c[0]==="-"}let _=null;while(t.length){let c=t.shift();if(c==="--"){if(i===n)i.push(c);i.push(...t);break}if(_&&!u(c)){this.emit(`option:${_.name()}`,c);continue}if(_=null,u(c)){let d=this._findOption(c);if(d){if(d.required){let g=t.shift();if(g===void 0)this.optionMissingArgument(d);this.emit(`option:${d.name()}`,g)}else if(d.optional){let g=null;if(t.length>0&&!u(t[0]))g=t.shift();this.emit(`option:${d.name()}`,g)}else this.emit(`option:${d.name()}`);_=d.variadic?d:null;continue}}if(c.length>2&&c[0]==="-"&&c[1]!=="-"){let d=this._findOption(`-${c[1]}`);if(d){if(d.required||d.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${d.name()}`,c.slice(2));else this.emit(`option:${d.name()}`),t.unshift(`-${c.slice(2)}`);continue}}if(/^--[^=]+=/.test(c)){let d=c.indexOf("="),g=this._findOption(c.slice(0,d));if(g&&(g.required||g.optional)){this.emit(`option:${g.name()}`,c.slice(d+1));continue}}if(u(c))i=n;if((this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&n.length===0){if(this._findCommand(c)){if(r.push(c),t.length>0)n.push(...t);break}else if(this._getHelpCommand()&&c===this._getHelpCommand().name()){if(r.push(c),t.length>0)r.push(...t);break}else if(this._defaultCommandName){if(n.push(c),t.length>0)n.push(...t);break}}if(this._passThroughOptions){if(i.push(c),t.length>0)i.push(...t);break}i.push(c)}return{operands:r,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},r=this.options.length;for(let n=0;nObject.assign(e,r.opts()),{})}error(e,r){if(this._outputConfiguration.outputError(`${e} `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError} `);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(` -`),this.outputHelp({error:!0});let t=r||{},i=t.exitCode||1,n=t.code||"commander.error";this._exit(i,n,e)}_parseOptionsEnv(){this.options.forEach((e)=>{if(e.envVar&&e.envVar in G.env){let r=e.attributeName();if(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))if(e.required||e.optional)this.emit(`optionEnv:${e.name()}`,G.env[e.envVar]);else this.emit(`optionEnv:${e.name()}`)}})}_parseOptionsImplied(){let e=new _y(this.options),r=(t)=>{return this.getOptionValue(t)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(t))};this.options.filter((t)=>t.implied!==void 0&&r(t.attributeName())&&e.valueFromOption(this.getOptionValue(t.attributeName()),t)).forEach((t)=>{Object.keys(t.implied).filter((i)=>!r(i)).forEach((i)=>{this.setOptionValueWithSource(i,t.implied[i],"implied")})})}missingArgument(e){let r=`error: missing required argument '${e}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(e){let r=`error: option '${e.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let r=`error: required option '${e.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,r){let t=(_)=>{let u=_.attributeName(),c=this.getOptionValue(u),d=this.options.find((a)=>a.negate&&u===a.attributeName()),o=this.options.find((a)=>!a.negate&&u===a.attributeName());if(d&&(d.presetArg===void 0&&c===!1||d.presetArg!==void 0&&c===d.presetArg))return d;return o||_},i=(_)=>{let u=t(_),c=u.attributeName();if(this.getOptionValueSource(c)==="env")return`environment variable '${u.envVar}'`;return`option '${u.flags}'`},n=`error: ${i(e)} cannot be used with ${i(r)}`;this.error(n,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let r="";if(e.startsWith("--")&&this._showSuggestionAfterError){let i=[],n=this;do{let _=n.createHelp().visibleOptions(n).filter((u)=>u.long).map((u)=>u.long);i=i.concat(_),n=n.parent}while(n&&!n._enablePositionalOptions);r=eL(e,i)}let t=`error: unknown option '${e}'${r}`;this.error(t,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,t=r===1?"":"s",n=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${t} but got ${e.length}.`;this.error(n,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],r="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach((n)=>{if(i.push(n.name()),n.alias())i.push(n.alias())}),r=eL(e,i)}let t=`error: unknown command '${e}'${r}`;this.error(t,{code:"commander.unknownCommand"})}version(e,r,t){if(e===void 0)return this._version;this._version=e,r=r||"-V, --version",t=t||"output the version number";let i=this.createOption(r,t);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${e} -`),this._exit(0,"commander.version",e)}),this}description(e,r){if(e===void 0&&r===void 0)return this._description;if(this._description=e,r)this._argsDescription=r;return this}summary(e){if(e===void 0)return this._summary;return this._summary=e,this}alias(e){if(e===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)r=this.commands[this.commands.length-1];if(e===r._name)throw Error("Command alias can't be the same as its name");let t=this.parent?._findCommand(e);if(t){let i=[t.name()].concat(t.aliases()).join("|");throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${i}'`)}return r._aliases.push(e),this}aliases(e){if(e===void 0)return this._aliases;return e.forEach((r)=>this.alias(r)),this}usage(e){if(e===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map((t)=>{return ty(t)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=e,this}name(e){if(e===void 0)return this._name;return this._name=e,this}nameFromFilename(e){return this._name=Lr.basename(e,Lr.extname(e)),this}executableDir(e){if(e===void 0)return this._executableDir;return this._executableDir=e,this}helpInformation(e){let r=this.createHelp(),t=this._getOutputContext(e);r.prepareContext({error:t.error,helpWidth:t.helpWidth,outputHasColors:t.hasColors});let i=r.formatHelp(this,r);if(t.hasColors)return i;return this._outputConfiguration.stripColor(i)}_getOutputContext(e){e=e||{};let r=!!e.error,t,i,n;if(r)t=(u)=>this._outputConfiguration.writeErr(u),i=this._outputConfiguration.getErrHasColors(),n=this._outputConfiguration.getErrHelpWidth();else t=(u)=>this._outputConfiguration.writeOut(u),i=this._outputConfiguration.getOutHasColors(),n=this._outputConfiguration.getOutHelpWidth();return{error:r,write:(u)=>{if(!i)u=this._outputConfiguration.stripColor(u);return t(u)},hasColors:i,helpWidth:n}}outputHelp(e){let r;if(typeof e==="function")r=e,e=void 0;let t=this._getOutputContext(e),i={error:t.error,write:t.write,command:this};this._getCommandAndAncestors().reverse().forEach((_)=>_.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let n=this.helpInformation({error:t.error});if(r){if(n=r(n),typeof n!=="string"&&!Buffer.isBuffer(n))throw Error("outputHelp callback must return a string or a Buffer")}if(t.write(n),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",i),this._getCommandAndAncestors().forEach((_)=>_.emit("afterAllHelp",i))}helpOption(e,r){if(typeof e==="boolean"){if(e)this._helpOption=this._helpOption??void 0;else this._helpOption=null;return this}return e=e??"-h, --help",r=r??"display help for command",this._helpOption=this.createOption(e,r),this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let r=Number(G.exitCode??0);if(r===0&&e&&typeof e!=="function"&&e.error)r=1;this._exit(r,"commander.help","(outputHelp)")}addHelpText(e,r){let t=["beforeAll","before","after","afterAll"];if(!t.includes(e))throw Error(`Unexpected value for position to addHelpText. -Expecting one of '${t.join("', '")}'`);let i=`${e}Help`;return this.on(i,(n)=>{let _;if(typeof r==="function")_=r({error:n.error,command:n.command});else _=r;if(_)n.write(`${_} -`)}),this}_outputHelpIfRequested(e){let r=this._getHelpOption();if(r&&e.find((i)=>r.is(i)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function rL(e){return e.map((r)=>{if(!r.startsWith("--inspect"))return r;let t,i="127.0.0.1",n="9229",_;if((_=r.match(/^(--inspect(-brk)?)$/))!==null)t=_[1];else if((_=r.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(t=_[1],/^\d+$/.test(_[3]))n=_[3];else i=_[3];else if((_=r.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)t=_[1],i=_[3],n=_[4];if(t&&n!=="0")return`${t}=${i}:${parseInt(n)+1}`;return r})}function Q$(){if(G.env.NO_COLOR||G.env.FORCE_COLOR==="0"||G.env.FORCE_COLOR==="false")return!1;if(G.env.FORCE_COLOR||G.env.CLICOLOR_FORCE!==void 0)return!0;return}uy.Command=Z$;uy.useColor=Q$});var uL=Hr((ly)=>{var{Argument:nL}=Hd(),{Command:s$}=tL(),{CommanderError:oy,InvalidArgumentError:iL}=f_(),{Help:gy}=Y$(),{Option:_L}=B$();ly.program=new s$;ly.createCommand=(e)=>new s$(e);ly.createOption=(e,r)=>new _L(e,r);ly.createArgument=(e,r)=>new nL(e,r);ly.Command=s$;ly.Option=_L;ly.Argument=nL;ly.Help=gy;ly.CommanderError=oy;ly.InvalidArgumentError=iL;ly.InvalidOptionArgumentError=iL});import{readFileSync as Pn,writeFileSync as S_,existsSync as jn,renameSync as FL,unlinkSync as av}from"fs";import{randomUUID as Tv}from"crypto";import{existsSync as XL,mkdirSync as to,readFileSync as yL,writeFileSync as cv}from"fs";import{homedir as no}from"os";import{dirname as xL,join as ae,resolve as dv}from"path";var cr=ae(".hasna","knowledge"),ov=ae(".hasna","apps","knowledge"),ee={division:"xyz",app_type:"opensource",app:"knowledge",env:"prod",local_path:cr,s3:{bucket:"example-knowledge-prod",region:"us-east-1",profile:"example-infra",prefix:".hasna/knowledge",server_side_encryption:"AES256"},secrets:{env:"example/knowledge/prod/env",aws:"example/knowledge/prod/aws",s3:"example/knowledge/prod/s3",rds:null,future_rds:"example/knowledge/prod/rds"},source_owner:"open-files",evidence_doc:"docs/canonical-secrets-bootstrap-2026-06-08.md"};function gv(){return{type:"s3",artifacts_root:"artifacts",s3:{bucket:ee.s3.bucket,prefix:ee.s3.prefix,region:ee.s3.region,profile:ee.s3.profile,server_side_encryption:ee.s3.server_side_encryption}}}function yn(){return ae(no(),".open-knowledge","db.json")}function io(){return ae(no(),".hasna","knowledge")}function _o(e=process.cwd()){return dv(e,cr)}function jL(){return ae(no(),ov)}function PL(e=process.cwd()){return dv(e,ov)}function lv(e,r=process.cwd()){if(e==="project"||e==="local")return We(PL(r));return We(jL())}function We(e){return{home:e,configPath:ae(e,"config.json"),jsonStorePath:ae(e,"db.json"),knowledgeDbPath:ae(e,"knowledge.db"),artifactsDir:ae(e,"artifacts"),cacheDir:ae(e,"cache"),exportsDir:ae(e,"exports"),indexesDir:ae(e,"indexes"),logsDir:ae(e,"logs"),runsDir:ae(e,"runs"),schemasDir:ae(e,"schemas"),wikiDir:ae(e,"wiki")}}function xn(){return{version:1,mode:"local",hosted:{api_url:"https://knowledge.hasna.xyz"},storage:{type:"local",artifacts_root:"artifacts"},sources:{preferred_ref:"open-files",allowed_schemes:["open-files","s3","file","https","http"]},providers:{default_model:"openai:gpt-5.2",aliases:{fast:"openai:gpt-5-mini",reasoning:"anthropic:claude-opus-4-6",sonnet:"anthropic:claude-sonnet-4-6",deepseek:"deepseek:deepseek-chat","deepseek-reasoning":"deepseek:deepseek-reasoner"},openai:{api_key_env:"OPENAI_API_KEY",default_model:"gpt-5.2"},anthropic:{api_key_env:"ANTHROPIC_API_KEY",default_model:"claude-sonnet-4-6"},deepseek:{api_key_env:"DEEPSEEK_API_KEY",default_model:"deepseek-chat"}},embeddings:{default_model:"openai:text-embedding-3-small",dimensions:1536,batch_size:64,max_parallel_calls:4},safety:{network:{web_search_enabled:!1,s3_reads_enabled:!1,allowed_s3_buckets:[]},redaction:{enabled:!0},approvals:{generated_writes_require_approval:!0}}}}function Kt(e){let r=We(e);to(r.home,{recursive:!0});for(let t of[r.artifactsDir,r.cacheDir,r.exportsDir,r.indexesDir,r.logsDir,r.runsDir,r.schemasDir,r.wikiDir])to(t,{recursive:!0});if(!XL(r.configPath))cv(r.configPath,`${JSON.stringify(xn(),null,2)} -`);return r}function I_(e,r=process.cwd()){if(e==="project"||e==="local")return We(_o(r));return We(io())}function Wt(e){to(xL(e),{recursive:!0})}function uo(e){let r=yL(e,"utf8");return JSON.parse(r)}function Ev(e,r){Wt(e),cv(e,`${JSON.stringify(r,null,2)} -`)}function co(){return We(io()).jsonStorePath}function Fn(e){if(!jn(e))if(Wt(e),e===co()&&jn(yn()))S_(e,Pn(yn(),"utf8"));else S_(e,JSON.stringify({items:[]},null,2))}function br(e){if(!jn(e))return{exists:!1,items:[]};let r=Pn(e,"utf8"),t=JSON.parse(r);if(!t||!Array.isArray(t.items))return{exists:!0,items:[]};return{exists:!0,items:t.items}}function KL(e){return`${e}.lock`}function WL(e,r){let n=Date.now();while(Date.now()-n<5000){try{if(!jn(e)){S_(e,JSON.stringify({owner:r,ts:Date.now()}));return}let u=JSON.parse(Pn(e,"utf8"));if(Date.now()-u.ts>1e4)av(e)}catch{}let _=Date.now();while(Date.now()-_<50);}throw Error(`Could not acquire lock on ${e} after 5000ms`)}function JL(e,r){try{if(jn(e)){if(JSON.parse(Pn(e,"utf8")).owner===r)av(e)}}catch{}}function dr(e){Fn(e);let r=Pn(e,"utf8"),t=JSON.parse(r);if(!t||!Array.isArray(t.items))return{items:[]};return t}function Ae(e,r){let t=`${e}.tmp.${Tv()}`;S_(t,JSON.stringify(r,null,2)),FL(t,e)}function Je(e,r,t={}){let i=Tv(),n=KL(e);if(t.createParent)Wt(n);WL(n,i);try{return r()}finally{JL(n,i)}}function oo(){return`k_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function fv(e){return e.replace(/^k_/,"").slice(0,12)}import{Database as zL}from"bun:sqlite";var $v=` +`),this.outputHelp({error:!0});let n=r||{},i=n.exitCode||1,t=n.code||"commander.error";this._exit(i,t,e)}_parseOptionsEnv(){this.options.forEach((e)=>{if(e.envVar&&e.envVar in H.env){let r=e.attributeName();if(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))if(e.required||e.optional)this.emit(`optionEnv:${e.name()}`,H.env[e.envVar]);else this.emit(`optionEnv:${e.name()}`)}})}_parseOptionsImplied(){let e=new uy(this.options),r=(n)=>{return this.getOptionValue(n)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(n))};this.options.filter((n)=>n.implied!==void 0&&r(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach((n)=>{Object.keys(n.implied).filter((i)=>!r(i)).forEach((i)=>{this.setOptionValueWithSource(i,n.implied[i],"implied")})})}missingArgument(e){let r=`error: missing required argument '${e}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(e){let r=`error: option '${e.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let r=`error: required option '${e.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,r){let n=(u)=>{let _=u.attributeName(),c=this.getOptionValue(_),d=this.options.find((f)=>f.negate&&_===f.attributeName()),g=this.options.find((f)=>!f.negate&&_===f.attributeName());if(d&&(d.presetArg===void 0&&c===!1||d.presetArg!==void 0&&c===d.presetArg))return d;return g||u},i=(u)=>{let _=n(u),c=_.attributeName();if(this.getOptionValueSource(c)==="env")return`environment variable '${_.envVar}'`;return`option '${_.flags}'`},t=`error: ${i(e)} cannot be used with ${i(r)}`;this.error(t,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let r="";if(e.startsWith("--")&&this._showSuggestionAfterError){let i=[],t=this;do{let u=t.createHelp().visibleOptions(t).filter((_)=>_.long).map((_)=>_.long);i=i.concat(u),t=t.parent}while(t&&!t._enablePositionalOptions);r=em(e,i)}let n=`error: unknown option '${e}'${r}`;this.error(n,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,n=r===1?"":"s",t=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${n} but got ${e.length}.`;this.error(t,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],r="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach((t)=>{if(i.push(t.name()),t.alias())i.push(t.alias())}),r=em(e,i)}let n=`error: unknown command '${e}'${r}`;this.error(n,{code:"commander.unknownCommand"})}version(e,r,n){if(e===void 0)return this._version;this._version=e,r=r||"-V, --version",n=n||"output the version number";let i=this.createOption(r,n);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${e} +`),this._exit(0,"commander.version",e)}),this}description(e,r){if(e===void 0&&r===void 0)return this._description;if(this._description=e,r)this._argsDescription=r;return this}summary(e){if(e===void 0)return this._summary;return this._summary=e,this}alias(e){if(e===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)r=this.commands[this.commands.length-1];if(e===r._name)throw Error("Command alias can't be the same as its name");let n=this.parent?._findCommand(e);if(n){let i=[n.name()].concat(n.aliases()).join("|");throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${i}'`)}return r._aliases.push(e),this}aliases(e){if(e===void 0)return this._aliases;return e.forEach((r)=>this.alias(r)),this}usage(e){if(e===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map((n)=>{return ny(n)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=e,this}name(e){if(e===void 0)return this._name;return this._name=e,this}nameFromFilename(e){return this._name=mr.basename(e,mr.extname(e)),this}executableDir(e){if(e===void 0)return this._executableDir;return this._executableDir=e,this}helpInformation(e){let r=this.createHelp(),n=this._getOutputContext(e);r.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let i=r.formatHelp(this,r);if(n.hasColors)return i;return this._outputConfiguration.stripColor(i)}_getOutputContext(e){e=e||{};let r=!!e.error,n,i,t;if(r)n=(_)=>this._outputConfiguration.writeErr(_),i=this._outputConfiguration.getErrHasColors(),t=this._outputConfiguration.getErrHelpWidth();else n=(_)=>this._outputConfiguration.writeOut(_),i=this._outputConfiguration.getOutHasColors(),t=this._outputConfiguration.getOutHelpWidth();return{error:r,write:(_)=>{if(!i)_=this._outputConfiguration.stripColor(_);return n(_)},hasColors:i,helpWidth:t}}outputHelp(e){let r;if(typeof e==="function")r=e,e=void 0;let n=this._getOutputContext(e),i={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach((u)=>u.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let t=this.helpInformation({error:n.error});if(r){if(t=r(t),typeof t!=="string"&&!Buffer.isBuffer(t))throw Error("outputHelp callback must return a string or a Buffer")}if(n.write(t),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",i),this._getCommandAndAncestors().forEach((u)=>u.emit("afterAllHelp",i))}helpOption(e,r){if(typeof e==="boolean"){if(e)this._helpOption=this._helpOption??void 0;else this._helpOption=null;return this}return e=e??"-h, --help",r=r??"display help for command",this._helpOption=this.createOption(e,r),this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let r=Number(H.exitCode??0);if(r===0&&e&&typeof e!=="function"&&e.error)r=1;this._exit(r,"commander.help","(outputHelp)")}addHelpText(e,r){let n=["beforeAll","before","after","afterAll"];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText. +Expecting one of '${n.join("', '")}'`);let i=`${e}Help`;return this.on(i,(t)=>{let u;if(typeof r==="function")u=r({error:t.error,command:t.command});else u=r;if(u)t.write(`${u} +`)}),this}_outputHelpIfRequested(e){let r=this._getHelpOption();if(r&&e.find((i)=>r.is(i)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function rm(e){return e.map((r)=>{if(!r.startsWith("--inspect"))return r;let n,i="127.0.0.1",t="9229",u;if((u=r.match(/^(--inspect(-brk)?)$/))!==null)n=u[1];else if((u=r.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(n=u[1],/^\d+$/.test(u[3]))t=u[3];else i=u[3];else if((u=r.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)n=u[1],i=u[3],t=u[4];if(n&&t!=="0")return`${n}=${i}:${parseInt(t)+1}`;return r})}function QE(){if(H.env.NO_COLOR||H.env.FORCE_COLOR==="0"||H.env.FORCE_COLOR==="false")return!1;if(H.env.FORCE_COLOR||H.env.CLICOLOR_FORCE!==void 0)return!0;return}_y.Command=ZE;_y.useColor=QE});var _m=Yr((ly)=>{var{Argument:tm}=Yd(),{Command:sE}=nm(),{CommanderError:gy,InvalidArgumentError:im}=vu(),{Help:oy}=BE(),{Option:um}=CE();ly.program=new sE;ly.createCommand=(e)=>new sE(e);ly.createOption=(e,r)=>new um(e,r);ly.createArgument=(e,r)=>new tm(e,r);ly.Command=sE;ly.Option=um;ly.Argument=tm;ly.Help=oy;ly.CommanderError=gy;ly.InvalidArgumentError=im;ly.InvalidOptionArgumentError=im});import{readFileSync as Xt,writeFileSync as bu,existsSync as xt,renameSync as Km,unlinkSync as fk}from"fs";import{randomUUID as $k}from"crypto";import{existsSync as ym,mkdirSync as ng,readFileSync as jm,writeFileSync as ck}from"fs";import{homedir as tg}from"os";import{dirname as Pm,join as fe,resolve as dk}from"path";var cr=fe(".hasna","knowledge"),gk=fe(".hasna","apps","knowledge"),ee={division:"xyz",app_type:"opensource",app:"knowledge",env:"prod",local_path:cr,s3:{bucket:"example-knowledge-prod",region:"us-east-1",profile:"example-infra",prefix:".hasna/knowledge",server_side_encryption:"AES256"},secrets:{env:"example/knowledge/prod/env",aws:"example/knowledge/prod/aws",s3:"example/knowledge/prod/s3",rds:null,future_rds:"example/knowledge/prod/rds"},source_owner:"open-files",evidence_doc:"docs/canonical-secrets-bootstrap-2026-06-08.md"};function ok(){return{type:"s3",artifacts_root:"artifacts",s3:{bucket:ee.s3.bucket,prefix:ee.s3.prefix,region:ee.s3.region,profile:ee.s3.profile,server_side_encryption:ee.s3.server_side_encryption}}}function jt(){return fe(tg(),".open-knowledge","db.json")}function ig(){return fe(tg(),".hasna","knowledge")}function ug(e=process.cwd()){return dk(e,cr)}function xm(){return fe(tg(),gk)}function Xm(e=process.cwd()){return dk(e,gk)}function lk(e,r=process.cwd()){if(e==="project"||e==="local")return Je(Xm(r));return Je(xm())}function Je(e){return{home:e,configPath:fe(e,"config.json"),jsonStorePath:fe(e,"db.json"),knowledgeDbPath:fe(e,"knowledge.db"),artifactsDir:fe(e,"artifacts"),cacheDir:fe(e,"cache"),exportsDir:fe(e,"exports"),indexesDir:fe(e,"indexes"),logsDir:fe(e,"logs"),runsDir:fe(e,"runs"),schemasDir:fe(e,"schemas"),wikiDir:fe(e,"wiki")}}function Pt(){return{version:1,mode:"local",hosted:{api_url:"https://knowledge.hasna.xyz"},storage:{type:"local",artifacts_root:"artifacts"},sources:{preferred_ref:"open-files",allowed_schemes:["open-files","s3","file","https","http"]},providers:{default_model:"openai:gpt-5.2",aliases:{fast:"openai:gpt-5-mini",reasoning:"anthropic:claude-opus-4-6",sonnet:"anthropic:claude-sonnet-4-6",deepseek:"deepseek:deepseek-chat","deepseek-reasoning":"deepseek:deepseek-reasoner"},openai:{api_key_env:"OPENAI_API_KEY",default_model:"gpt-5.2"},anthropic:{api_key_env:"ANTHROPIC_API_KEY",default_model:"claude-sonnet-4-6"},deepseek:{api_key_env:"DEEPSEEK_API_KEY",default_model:"deepseek-chat"}},embeddings:{default_model:"openai:text-embedding-3-small",dimensions:1536,batch_size:64,max_parallel_calls:4},safety:{network:{web_search_enabled:!1,s3_reads_enabled:!1,allowed_s3_buckets:[]},redaction:{enabled:!0},approvals:{generated_writes_require_approval:!0}}}}function Jn(e){let r=Je(e);ng(r.home,{recursive:!0});for(let n of[r.artifactsDir,r.cacheDir,r.exportsDir,r.indexesDir,r.logsDir,r.runsDir,r.schemasDir,r.wikiDir])ng(n,{recursive:!0});if(!ym(r.configPath))ck(r.configPath,`${JSON.stringify(Pt(),null,2)} +`);return r}function Nu(e,r=process.cwd()){if(e==="project"||e==="local")return Je(ug(r));return Je(ig())}function zn(e){ng(Pm(e),{recursive:!0})}function _g(e){let r=jm(e,"utf8");return JSON.parse(r)}function ak(e,r){zn(e),ck(e,`${JSON.stringify(r,null,2)} +`)}function cg(){return Je(ig()).jsonStorePath}function Kt(e){if(!xt(e))if(zn(e),e===cg()&&xt(jt()))bu(e,Xt(jt(),"utf8"));else bu(e,JSON.stringify({items:[]},null,2))}function wr(e){if(!xt(e))return{exists:!1,items:[]};let r=Xt(e,"utf8"),n=JSON.parse(r);if(!n||!Array.isArray(n.items))return{exists:!0,items:[]};return{exists:!0,items:n.items}}function Fm(e){return`${e}.lock`}function Jm(e,r){let t=Date.now();while(Date.now()-t<5000){try{if(!xt(e)){bu(e,JSON.stringify({owner:r,ts:Date.now()}));return}let _=JSON.parse(Xt(e,"utf8"));if(Date.now()-_.ts>1e4)fk(e)}catch{}let u=Date.now();while(Date.now()-u<50);}throw Error(`Could not acquire lock on ${e} after 5000ms`)}function zm(e,r){try{if(xt(e)){if(JSON.parse(Xt(e,"utf8")).owner===r)fk(e)}}catch{}}function dr(e){Kt(e);let r=Xt(e,"utf8"),n=JSON.parse(r);if(!n||!Array.isArray(n.items))return{items:[]};return n}function Ae(e,r){let n=`${e}.tmp.${$k()}`;bu(n,JSON.stringify(r,null,2)),Km(n,e)}function ze(e,r,n={}){let i=$k(),t=Fm(e);if(n.createParent)zn(t);Jm(t,i);try{return r()}finally{zm(t,i)}}function dg(){return`k_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function vk(e){return e.replace(/^k_/,"").slice(0,12)}import{Database as Wm}from"bun:sqlite";var Ek=` PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; @@ -258,7 +258,7 @@ CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5( INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (1, datetime('now')); -`,ML=` +`,Mm=` DROP TABLE IF EXISTS chunks_fts; CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5( @@ -271,7 +271,7 @@ CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5( INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (2, datetime('now')); -`,CL=` +`,qm=` CREATE TABLE IF NOT EXISTS audit_events ( id TEXT PRIMARY KEY, event_type TEXT NOT NULL, @@ -302,7 +302,7 @@ CREATE INDEX IF NOT EXISTS idx_approval_gates_status ON approval_gates(status); INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (3, datetime('now')); -`,qL=` +`,Gm=` CREATE TABLE IF NOT EXISTS vector_index_entries ( id TEXT PRIMARY KEY, chunk_id TEXT NOT NULL REFERENCES chunks(id) ON DELETE CASCADE, @@ -333,7 +333,7 @@ CREATE INDEX IF NOT EXISTS idx_vector_index_status ON vector_index_entries(statu INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (4, datetime('now')); -`,GL=` +`,Hm=` CREATE TABLE IF NOT EXISTS reindex_queue ( id TEXT PRIMARY KEY, kind TEXT NOT NULL, @@ -354,7 +354,7 @@ CREATE INDEX IF NOT EXISTS idx_reindex_queue_source_uri ON reindex_queue(source_ INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (5, datetime('now')); -`,vv=` +`,kk=` CREATE TABLE IF NOT EXISTS knowledge_machines ( machine_id TEXT PRIMARY KEY, hostname TEXT, @@ -429,7 +429,7 @@ CREATE INDEX IF NOT EXISTS idx_sync_conflicts_entity ON knowledge_sync_conflicts INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (6, datetime('now')); -`,YL=` +`,Bm=` CREATE TABLE IF NOT EXISTS knowledge_sync_table_clocks ( table_name TEXT NOT NULL, machine_id TEXT NOT NULL, @@ -469,7 +469,7 @@ CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(sta INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (7, datetime('now')); -`,BL=` +`,Cm=` CREATE INDEX IF NOT EXISTS idx_wiki_pages_lifecycle_status ON wiki_pages(status, valid_to); CREATE INDEX IF NOT EXISTS idx_wiki_pages_last_verified ON wiki_pages(last_verified_at); CREATE INDEX IF NOT EXISTS idx_wiki_pages_supersedes ON wiki_pages(supersedes); @@ -477,14 +477,14 @@ CREATE INDEX IF NOT EXISTS idx_wiki_pages_superseded_by ON wiki_pages(superseded INSERT OR IGNORE INTO schema_versions(version, applied_at) VALUES (8, datetime('now')); -`;function A(e){Wt(e);let r=new zL(e);return r.exec("PRAGMA foreign_keys = ON;"),r.exec("PRAGMA busy_timeout = 5000;"),r}function x(e){let r=A(e);try{if(r.exec($v),Te(r)<2)r.exec(ML);if(Te(r)<3)r.exec(CL);if(Te(r)<4)r.exec(qL);if(Te(r)<5)r.exec(GL);if(Te(r)<6)r.exec(vv);if(HL(r))VL(r);if(QL(r))ZL(r);return{path:e,schema_version:Te(r)}}finally{r.close()}}function Te(e){return e.query("SELECT MAX(version) AS version FROM schema_versions").get()?.version??0}function _e(e,r){return e.query(`SELECT COUNT(*) AS n FROM ${r}`).get()?.n??0}function go(e){return`"${e.replaceAll('"','""')}"`}function Kn(e,r){let t=e.query("SELECT name FROM sqlite_master WHERE type IN ('table', 'virtual') AND name = ?").get(r);return Boolean(t)}function or(e,r,t){if(!Kn(e,r))return!1;return e.query(`PRAGMA table_info(${go(r)})`).all().some((n)=>n.name===t)}function Ur(e,r,t,i){if(!or(e,r,t))e.exec(`ALTER TABLE ${go(r)} ADD COLUMN ${go(t)} ${i};`)}function HL(e){return Te(e)<7||!or(e,"knowledge_sync_changes","logical_clock")||!or(e,"knowledge_sync_changes","bundle_id")||!Kn(e,"knowledge_sync_table_clocks")||!Kn(e,"knowledge_sync_imports")}function VL(e){if(!Kn(e,"knowledge_sync_changes"))e.exec(vv);Ur(e,"knowledge_sync_changes","logical_clock","INTEGER NOT NULL DEFAULT 0"),Ur(e,"knowledge_sync_changes","bundle_id","TEXT"),e.exec(YL)}function QL(e){return Te(e)<8||!or(e,"wiki_pages","valid_from")||!or(e,"wiki_pages","valid_to")||!or(e,"wiki_pages","supersedes")||!or(e,"wiki_pages","superseded_by")||!or(e,"wiki_pages","confidence")||!or(e,"wiki_pages","last_verified_at")}function ZL(e){if(!Kn(e,"wiki_pages"))e.exec($v);Ur(e,"wiki_pages","valid_from","TEXT"),Ur(e,"wiki_pages","valid_to","TEXT"),Ur(e,"wiki_pages","supersedes","TEXT"),Ur(e,"wiki_pages","superseded_by","TEXT"),Ur(e,"wiki_pages","confidence","REAL"),Ur(e,"wiki_pages","last_verified_at","TEXT"),e.exec(` +`;function A(e){zn(e);let r=new Wm(e);return r.exec("PRAGMA foreign_keys = ON;"),r.exec("PRAGMA busy_timeout = 5000;"),r}function P(e){let r=A(e);try{if(r.exec(Ek),$e(r)<2)r.exec(Mm);if($e(r)<3)r.exec(qm);if($e(r)<4)r.exec(Gm);if($e(r)<5)r.exec(Hm);if($e(r)<6)r.exec(kk);if(Ym(r))Vm(r);if(Qm(r))Zm(r);return{path:e,schema_version:$e(r)}}finally{r.close()}}function $e(e){return e.query("SELECT MAX(version) AS version FROM schema_versions").get()?.version??0}function ue(e,r){return e.query(`SELECT COUNT(*) AS n FROM ${r}`).get()?.n??0}function gg(e){return`"${e.replaceAll('"','""')}"`}function Ft(e,r){let n=e.query("SELECT name FROM sqlite_master WHERE type IN ('table', 'virtual') AND name = ?").get(r);return Boolean(n)}function gr(e,r,n){if(!Ft(e,r))return!1;return e.query(`PRAGMA table_info(${gg(r)})`).all().some((t)=>t.name===n)}function Dr(e,r,n,i){if(!gr(e,r,n))e.exec(`ALTER TABLE ${gg(r)} ADD COLUMN ${gg(n)} ${i};`)}function Ym(e){return $e(e)<7||!gr(e,"knowledge_sync_changes","logical_clock")||!gr(e,"knowledge_sync_changes","bundle_id")||!Ft(e,"knowledge_sync_table_clocks")||!Ft(e,"knowledge_sync_imports")}function Vm(e){if(!Ft(e,"knowledge_sync_changes"))e.exec(kk);Dr(e,"knowledge_sync_changes","logical_clock","INTEGER NOT NULL DEFAULT 0"),Dr(e,"knowledge_sync_changes","bundle_id","TEXT"),e.exec(Bm)}function Qm(e){return $e(e)<8||!gr(e,"wiki_pages","valid_from")||!gr(e,"wiki_pages","valid_to")||!gr(e,"wiki_pages","supersedes")||!gr(e,"wiki_pages","superseded_by")||!gr(e,"wiki_pages","confidence")||!gr(e,"wiki_pages","last_verified_at")}function Zm(e){if(!Ft(e,"wiki_pages"))e.exec(Ek);Dr(e,"wiki_pages","valid_from","TEXT"),Dr(e,"wiki_pages","valid_to","TEXT"),Dr(e,"wiki_pages","supersedes","TEXT"),Dr(e,"wiki_pages","superseded_by","TEXT"),Dr(e,"wiki_pages","confidence","REAL"),Dr(e,"wiki_pages","last_verified_at","TEXT"),e.exec(` UPDATE wiki_pages SET valid_from = COALESCE(valid_from, created_at), last_verified_at = COALESCE(last_verified_at, updated_at), confidence = COALESCE(confidence, 0.8) WHERE valid_from IS NULL OR last_verified_at IS NULL OR confidence IS NULL; - `),e.exec(BL)}function lo(e){let r=A(e);try{return{schema_version:Te(r),sources:_e(r,"sources"),source_revisions:_e(r,"source_revisions"),chunks:_e(r,"chunks"),wiki_pages:_e(r,"wiki_pages"),citations:_e(r,"citations"),indexes:_e(r,"knowledge_indexes"),runs:_e(r,"runs"),run_events:_e(r,"run_events"),redaction_findings:_e(r,"redaction_findings"),audit_events:_e(r,"audit_events"),approval_gates:_e(r,"approval_gates"),storage_objects:_e(r,"storage_objects"),embeddings:_e(r,"chunk_embeddings"),vector_entries:_e(r,"vector_index_entries"),reindex_queue:_e(r,"reindex_queue"),knowledge_machines:_e(r,"knowledge_machines"),sync_snapshots:_e(r,"knowledge_sync_snapshots"),sync_changes:_e(r,"knowledge_sync_changes"),sync_conflicts:_e(r,"knowledge_sync_conflicts"),sync_table_clocks:_e(r,"knowledge_sync_table_clocks"),sync_imports:_e(r,"knowledge_sync_imports")}}finally{r.close()}}import{existsSync as sL,mkdirSync as Nv,readFileSync as pL,statSync as eb,writeFileSync as rb}from"fs";import{dirname as tb,join as Eo,relative as nb,sep as ib}from"path";import{pathToFileURL as _b}from"url";function Ze(e){let r=e.replace(/\\/g,"/").trim();if(!r||r.startsWith("/"))throw Error(`Invalid artifact key: ${e}`);let t=r.split("/").filter(Boolean);if(t.length===0||t.some((i)=>i==="."||i===".."))throw Error(`Invalid artifact key: ${e}`);return t.join("/")}function ao(e,r){let t=nb(e,r);if(t.startsWith("..")||t===".."||t.startsWith(`..${ib}`))throw Error(`Artifact path escapes root: ${r}`)}function ub(e){if(!e)return;let r={};for(let[t,i]of Object.entries(e))if(typeof i==="string")r[t]=i;else if(typeof i==="number"||typeof i==="boolean")r[t]=String(i);return Object.keys(r).length>0?r:void 0}class kv{root;type="local";canRead=!0;canWrite=!0;constructor(e){this.root=e;Nv(e,{recursive:!0})}async put(e){let r=Ze(e.key),t=Eo(this.root,r);return ao(this.root,t),Nv(tb(t),{recursive:!0}),rb(t,e.body),{key:r,uri:_b(t).href,modified_at:eb(t).mtime.toISOString()}}async getText(e){let r=Ze(e),t=Eo(this.root,r);return ao(this.root,t),pL(t,"utf8")}async exists(e){let r=Ze(e),t=Eo(this.root,r);return ao(this.root,t),sL(t)}}class Iv{options;type="s3";canRead=!0;canWrite=!0;client;constructor(e){this.options=e;this.client=e.client}async getClient(){if(this.client)return this.client;let[{S3Client:e},{fromIni:r}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]);return this.client=new e({region:this.options.region,credentials:this.options.profile?r({profile:this.options.profile}):void 0,maxAttempts:this.options.max_attempts}),this.client}objectKey(e){let r=Ze(e),t=this.options.prefix?Ze(this.options.prefix):"";return t?`${t}/${r}`:r}async put(e){let[{PutObjectCommand:r},t]=await Promise.all([import("@aws-sdk/client-s3"),this.getClient()]),i=Ze(e.key),n=this.objectKey(i);return await t.send(new r({Bucket:this.options.bucket,Key:n,Body:e.body,ContentType:e.content_type,Metadata:ub(e.metadata),ServerSideEncryption:this.options.server_side_encryption,SSEKMSKeyId:this.options.kms_key_id})),{key:i,uri:`s3://${this.options.bucket}/${n}`,modified_at:new Date().toISOString()}}async getText(e){let[{GetObjectCommand:r},t]=await Promise.all([import("@aws-sdk/client-s3"),this.getClient()]),i=this.objectKey(e),n=await t.send(new r({Bucket:this.options.bucket,Key:i}));if(!n.Body)return"";return await n.Body.transformToString()}async exists(e){let[{HeadObjectCommand:r},t]=await Promise.all([import("@aws-sdk/client-s3"),this.getClient()]),i=this.objectKey(e);try{return await t.send(new r({Bucket:this.options.bucket,Key:i})),!0}catch(n){let _=n instanceof Error?n.name:"";if(_==="NotFound"||_==="NoSuchKey"||_==="NotFoundError")return!1;throw n}}}function To(e,r){if(e.storage.type==="s3"){if(!e.storage.s3?.bucket)throw Error("S3 artifact storage requires storage.s3.bucket");return new Iv({bucket:e.storage.s3.bucket,prefix:e.storage.s3.prefix,region:e.storage.s3.region,profile:e.storage.s3.profile,max_attempts:e.storage.s3.max_attempts,server_side_encryption:e.storage.s3.server_side_encryption,kms_key_id:e.storage.s3.kms_key_id})}return new kv(r.artifactsDir)}import{createHash as g_}from"crypto";import{spawnSync as A0}from"child_process";import{existsSync as s,readFileSync as X0}from"fs";import{hostname as y0}from"os";import{join as lO,resolve as OO}from"path";import{createHash as $U,randomUUID as vU}from"crypto";import{createHash as fb,randomUUID as $b}from"crypto";import{pathToFileURL as vb}from"url";import{existsSync as cb,mkdirSync as db,readFileSync as ob,unlinkSync as gb,writeFileSync as lb}from"fs";import{homedir as Eb}from"os";import{dirname as ab,join as Sv}from"path";var fo="https://knowledge.hasna.xyz";function gr(e){let r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:")throw Error("Knowledge API URL must use http or https.");let t=r.pathname.replace(/\/+$/,"");if(t==="/api"||t==="/api/v1")r.pathname="/";else if(t.endsWith("/api/v1"))r.pathname=t.slice(0,-7)||"/";else if(t.endsWith("/api"))r.pathname=t.slice(0,-4)||"/";return r.toString().replace(/\/+$/,"")}function L_(e=process.env){if(e.HASNA_KNOWLEDGE_AUTH_PATH)return e.HASNA_KNOWLEDGE_AUTH_PATH;let r=e.HASNA_KNOWLEDGE_AUTH_DIR??Sv(Eb(),".hasna","knowledge");return Sv(r,"auth.json")}function O_(e,r=process.env){return gr(r.KNOWLEDGE_API_URL??e?.hosted?.api_url??fo)}function Ov(e=process.env){try{let r=L_(e);if(!cb(r))return null;let t=JSON.parse(ob(r,"utf8"));return typeof t.api_key==="string"&&t.api_key.length>0?t:null}catch{return null}}function Lv(e,r=process.env){let t=L_(r),i={...e,api_url:e.api_url?gr(e.api_url):void 0,created_at:e.created_at??new Date().toISOString()};return db(ab(t),{recursive:!0,mode:448}),lb(t,`${JSON.stringify(i,null,2)} -`,{mode:384}),i}function bv(e=process.env){try{return gb(L_(e)),!0}catch{return!1}}function $o(e=process.env){if(e.KNOWLEDGE_API_KEY)return{apiKey:e.KNOWLEDGE_API_KEY,source:"env"};if(e.HASNA_KNOWLEDGE_API_KEY)return{apiKey:e.HASNA_KNOWLEDGE_API_KEY,source:"env"};let r=Ov(e);return r?.api_key?{apiKey:r.api_key,source:"file"}:{apiKey:null,source:"none"}}function Uv(e,r=process.env){let t=Ov(r),i=$o(r),n=r.KNOWLEDGE_API_URL?O_(e,r):t?.api_url?gr(t.api_url):O_(e,r);return{authenticated:Boolean(i.apiKey),source:i.source,api_url:n,auth_path:L_(r),email:i.source==="file"?t?.email??null:null,org_id:i.source==="file"?t?.org_id??null:null,org_slug:i.source==="file"?t?.org_slug??null:null,user_id:i.source==="file"?t?.user_id??null:null,api_key_present:Boolean(i.apiKey)}}var b_=1;function mv(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}function ze(e,r){let t=e[r];return typeof t==="string"?t:void 0}function Tb(e,r){let t=e[r];return typeof t==="number"&&Number.isFinite(t)?t:void 0}function Dv(e,r){let t=e[r];return Array.isArray(t)?t:void 0}function Wn(e,r){let t=mv(e)?e:{};return{contract_version:b_,id:ze(t,"id")??r?.id,type:ze(t,"type")??r?.type,status:ze(t,"status")??r?.status,query:ze(t,"query")??r?.query,prompt:ze(t,"prompt")??r?.prompt,output_preview:Object.prototype.hasOwnProperty.call(t,"output_preview")?t.output_preview:r?.output_preview,citations:Dv(t,"citations")??r?.citations,artifacts:Dv(t,"artifacts")??r?.artifacts,usage:mv(t.usage)?t.usage:r?.usage,created_at:ze(t,"created_at")??r?.created_at,started_at:ze(t,"started_at")??r?.started_at,completed_at:ze(t,"completed_at")??r?.completed_at,duration_ms:Tb(t,"duration_ms")??r?.duration_ms,error_code:ze(t,"error_code")??r?.error_code,error_message:ze(t,"error_message")??r?.error_message,error:ze(t,"error")??r?.error,details:Object.prototype.hasOwnProperty.call(t,"details")?t.details:r?.details}}function Rv(e){return{contract_version:b_,service:"open-knowledge",mode:e.mode,capabilities:["registry","search","ask","build","sync","status","logs","artifacts","open-files-source-refs","s3-generated-artifacts"],endpoints:{registry:"/api/v1/knowledge/registry",search:"/api/v1/knowledge/search",ask:"/api/v1/knowledge/ask",build:"/api/v1/knowledge/build",sync:"/api/v1/knowledge/sync",run_status:"/api/v1/knowledge/runs/{run_id}",run_logs:"/api/v1/knowledge/runs/{run_id}/logs",run_artifacts:"/api/v1/knowledge/runs/{run_id}/artifacts"},source_contract:{owner:"open-files",preferred_ref:"open-files",allowed_schemes:e.sourceSchemes,raw_source_bytes_stored_in_open_knowledge:!1},artifact_contract:{storage_type:e.storageType,uri_prefix:e.artifactUriPrefix,generated_only:!0}}}class U_{apiKey;apiUrl;constructor(e,r){this.apiKey=e;this.apiUrl=r}static fromConfig(e,r=process.env){let t=$o(r);if(!t.apiKey)return null;return new U_(t.apiKey,O_(e,r))}async request(e,r={}){return fetch(`${this.apiUrl}${e}`,{...r,headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",...r.headers}})}async registry(){return(await this.request("/api/v1/knowledge/registry")).json()}async search(e){let r=await this.request("/api/v1/knowledge/search",{method:"POST",body:JSON.stringify(e)});return Wn(await r.json(),{type:"search",query:e.query})}async ask(e){let r=await this.request("/api/v1/knowledge/ask",{method:"POST",body:JSON.stringify(e)});return Wn(await r.json(),{type:"ask",prompt:e.prompt})}async build(e){let r=await this.request("/api/v1/knowledge/build",{method:"POST",body:JSON.stringify(e)});return Wn(await r.json(),{type:"build",prompt:e.prompt})}async sync(e={}){let r=await this.request("/api/v1/knowledge/sync",{method:"POST",body:JSON.stringify(e)});return Wn(await r.json(),{type:"sync"})}async runStatus(e){let r=await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(e)}`);if(!r.ok)return null;return Wn(await r.json(),{id:e,type:"status"})}async runLogs(e){let r=await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(e)}/logs`);if(!r.ok)return[];let t=await r.json();return Array.isArray(t)?t:[]}async runArtifacts(e){let r=await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(e)}/artifacts`);if(!r.ok)return[];let t=await r.json();return Array.isArray(t)?t:[]}}var hv=[{kind:"schema",prefix:"schemas/",description:"Machine-readable agent schemas and source rules."},{kind:"index",prefix:"indexes/",description:"Small orientation indexes and future shard manifests."},{kind:"log",prefix:"logs/",description:"Append-only JSONL run and wiki-maintenance log partitions."},{kind:"run",prefix:"runs/",description:"Prompt/tool/cost ledgers and generated output records."},{kind:"wiki_page",prefix:"wiki/",description:"Generated cited Markdown pages, not raw source files."},{kind:"export",prefix:"exports/",description:"Portable exports and snapshots of derived knowledge state."}];function Jt(e){let r=typeof e==="string"?Buffer.from(e):Buffer.from(e);return{hash:`sha256:${fb("sha256").update(r).digest("hex")}`,size_bytes:r.byteLength}}function wv(e){return hv.find((t)=>e.startsWith(t.prefix))?.kind??"artifact"}function m_(e,r,t="global"){let i=vo(e,r),n=e.storage.s3??null,_=n?.prefix?.replace(/^\/+|\/+$/g,"")??"",u=n?`s3://${n.bucket}/${_?`${_}/`:""}`:"",c=ee.s3.prefix.replace(/^\/+|\/+$/g,""),d=`s3://${ee.s3.bucket}/${c}/`,o=e.storage.type==="s3"&&n?.bucket===ee.s3.bucket&&(n.region??null)===ee.s3.region;return{scope:t,mode:e.mode,storage_type:e.storage.type,workspace_home:r.home,local_layout:{app_path:cr,config_path:r.configPath,json_store_path:r.jsonStorePath,knowledge_db_path:r.knowledgeDbPath,directories:{artifacts:r.artifactsDir,cache:r.cacheDir,exports:r.exportsDir,indexes:r.indexesDir,logs:r.logsDir,runs:r.runsDir,schemas:r.schemasDir,wiki:r.wikiDir}},artifact_store:{type:e.storage.type,artifacts_root:e.storage.artifacts_root,uri_prefix:e.storage.type==="s3"?u:vb(`${r.artifactsDir}/`).href,s3:n?{bucket:n.bucket,prefix:_,region:n.region??null,profile:n.profile??null,server_side_encryption:n.server_side_encryption??null,kms_key_configured:Boolean(n.kms_key_id)}:null},canonical_example:{division:ee.division,app_type:ee.app_type,app:ee.app,env:ee.env,active:o,local_path:ee.local_path,s3:{bucket:ee.s3.bucket,region:ee.s3.region,profile:ee.s3.profile,prefix:c,uri_prefix:d,server_side_encryption:ee.s3.server_side_encryption},secrets:{env:ee.secrets.env,aws:ee.secrets.aws,s3:ee.secrets.s3,rds:ee.secrets.rds,future_rds:ee.secrets.future_rds},evidence_doc:ee.evidence_doc},hosted:{enabled:e.mode==="hosted",api_url:gr(e.hosted?.api_url??fo),api_url_env:"KNOWLEDGE_API_URL",api_key_env:"KNOWLEDGE_API_KEY",auth_storage:"~/.hasna/knowledge/auth.json",remote_contract_version:b_,requires_hosted_account_for_local_use:!1},source_ownership:{owner:"open-files",preferred_ref:e.sources.preferred_ref,allowed_schemes:e.sources.allowed_schemes,raw_source_bytes_stored_in_open_knowledge:!1,stores:["source refs","source revisions and hashes","citation spans","redacted extracted chunks","embeddings","generated wiki artifacts","indexes","run ledgers"],does_not_store:["raw open-files bytes","S3 object credentials","connector secrets","hosted tenant ownership state"]},private_fleet_boundary:{manifest_authority:"open-machines",source_ref_authority:"open-files",secret_ref_authority:"open-secrets",raw_private_manifest_bytes_stored_in_open_knowledge:!1,accepted_source_ref_schemes:e.sources.allowed_schemes.filter((a)=>["open-files","s3","file"].includes(a)),stores:["source refs for private manifests","redacted setup decisions","runbook summaries","citation spans into approved knowledge sources","machine setup evidence hashes"],does_not_store:["private fleet manifests","machine hostnames","machine serial numbers","sudo passwords","VNC passwords","SSH private keys","GitHub App private keys","secret values"],example_manifest_ref:"open-files://source/private-fleet-manifest/path/machines.json"},generated_artifacts:hv,scalability:{catalog:"knowledge.db tracks sources, revisions, chunks, citations, indexes, runs, and storage_objects.",indexes:"Indexes are cataloged DB rows plus sharded artifacts, not one giant index.md.",logs:"Logs use dated JSONL partitions under logs/yyyy/mm/dd.jsonl.",markdown:"Markdown pages are the readable wiki layer over DB/object-store state."},warnings:i.warnings}}function vo(e,r){let t=[],i=[];if(!r.home.endsWith(cr))i.push(`Workspace home does not end with ${cr}: ${r.home}`);if(e.storage.type==="s3"){if(!e.storage.s3?.bucket)t.push("storage.s3.bucket is required when storage.type is s3.");if(!e.storage.s3?.prefix)i.push("storage.s3.prefix is empty; generated knowledge artifacts will be written at the bucket root.");if(e.mode==="local")i.push("storage.type is s3 while mode is local; this is valid for BYO S3, but hosted wrappers should set mode to hosted.")}if(e.storage.type==="local"&&e.storage.s3)i.push("storage.s3 is configured but ignored while storage.type is local.");if(e.sources.preferred_ref!=="open-files")i.push("sources.preferred_ref should stay open-files for durable company knowledge.");if(!e.sources.allowed_schemes.includes("open-files"))t.push("sources.allowed_schemes must include open-files.");if(e.mode==="hosted"&&e.hosted?.api_url)try{gr(e.hosted.api_url)}catch{t.push("hosted.api_url must be an http(s) URL when mode is hosted.")}return{ok:t.length===0,errors:t,warnings:i}}function lr(e,r,t=new Date){let i=t.toISOString(),n=e.prepare(` + `),e.exec(Cm)}function og(e){let r=A(e);try{return{schema_version:$e(r),sources:ue(r,"sources"),source_revisions:ue(r,"source_revisions"),chunks:ue(r,"chunks"),wiki_pages:ue(r,"wiki_pages"),citations:ue(r,"citations"),indexes:ue(r,"knowledge_indexes"),runs:ue(r,"runs"),run_events:ue(r,"run_events"),redaction_findings:ue(r,"redaction_findings"),audit_events:ue(r,"audit_events"),approval_gates:ue(r,"approval_gates"),storage_objects:ue(r,"storage_objects"),embeddings:ue(r,"chunk_embeddings"),vector_entries:ue(r,"vector_index_entries"),reindex_queue:ue(r,"reindex_queue"),knowledge_machines:ue(r,"knowledge_machines"),sync_snapshots:ue(r,"knowledge_sync_snapshots"),sync_changes:ue(r,"knowledge_sync_changes"),sync_conflicts:ue(r,"knowledge_sync_conflicts"),sync_table_clocks:ue(r,"knowledge_sync_table_clocks"),sync_imports:ue(r,"knowledge_sync_imports")}}finally{r.close()}}import{existsSync as sm,mkdirSync as Tk,readFileSync as pm,statSync as ew,writeFileSync as rw}from"fs";import{dirname as nw,join as lg,relative as tw,sep as iw}from"path";import{pathToFileURL as uw}from"url";function Ze(e){let r=e.replace(/\\/g,"/").trim();if(!r||r.startsWith("/"))throw Error(`Invalid artifact key: ${e}`);let n=r.split("/").filter(Boolean);if(n.length===0||n.some((i)=>i==="."||i===".."))throw Error(`Invalid artifact key: ${e}`);return n.join("/")}function ag(e,r){let n=tw(e,r);if(n.startsWith("..")||n===".."||n.startsWith(`..${iw}`))throw Error(`Artifact path escapes root: ${r}`)}function _w(e){if(!e)return;let r={};for(let[n,i]of Object.entries(e))if(typeof i==="string")r[n]=i;else if(typeof i==="number"||typeof i==="boolean")r[n]=String(i);return Object.keys(r).length>0?r:void 0}class Sk{root;type="local";canRead=!0;canWrite=!0;constructor(e){this.root=e;Tk(e,{recursive:!0})}async put(e){let r=Ze(e.key),n=lg(this.root,r);return ag(this.root,n),Tk(nw(n),{recursive:!0}),rw(n,e.body),{key:r,uri:uw(n).href,modified_at:ew(n).mtime.toISOString()}}async getText(e){let r=Ze(e),n=lg(this.root,r);return ag(this.root,n),pm(n,"utf8")}async exists(e){let r=Ze(e),n=lg(this.root,r);return ag(this.root,n),sm(n)}}class Nk{options;type="s3";canRead=!0;canWrite=!0;client;constructor(e){this.options=e;this.client=e.client}async getClient(){if(this.client)return this.client;let[{S3Client:e},{fromIni:r}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]);return this.client=new e({region:this.options.region,credentials:this.options.profile?r({profile:this.options.profile}):void 0,maxAttempts:this.options.max_attempts}),this.client}objectKey(e){let r=Ze(e),n=this.options.prefix?Ze(this.options.prefix):"";return n?`${n}/${r}`:r}async put(e){let[{PutObjectCommand:r},n]=await Promise.all([import("@aws-sdk/client-s3"),this.getClient()]),i=Ze(e.key),t=this.objectKey(i);return await n.send(new r({Bucket:this.options.bucket,Key:t,Body:e.body,ContentType:e.content_type,Metadata:_w(e.metadata),ServerSideEncryption:this.options.server_side_encryption,SSEKMSKeyId:this.options.kms_key_id})),{key:i,uri:`s3://${this.options.bucket}/${t}`,modified_at:new Date().toISOString()}}async getText(e){let[{GetObjectCommand:r},n]=await Promise.all([import("@aws-sdk/client-s3"),this.getClient()]),i=this.objectKey(e),t=await n.send(new r({Bucket:this.options.bucket,Key:i}));if(!t.Body)return"";return await t.Body.transformToString()}async exists(e){let[{HeadObjectCommand:r},n]=await Promise.all([import("@aws-sdk/client-s3"),this.getClient()]),i=this.objectKey(e);try{return await n.send(new r({Bucket:this.options.bucket,Key:i})),!0}catch(t){let u=t instanceof Error?t.name:"";if(u==="NotFound"||u==="NoSuchKey"||u==="NotFoundError")return!1;throw t}}}function fg(e,r){if(e.storage.type==="s3"){if(!e.storage.s3?.bucket)throw Error("S3 artifact storage requires storage.s3.bucket");return new Nk({bucket:e.storage.s3.bucket,prefix:e.storage.s3.prefix,region:e.storage.s3.region,profile:e.storage.s3.profile,max_attempts:e.storage.s3.max_attempts,server_side_encryption:e.storage.s3.server_side_encryption,kms_key_id:e.storage.s3.kms_key_id})}return new Sk(r.artifactsDir)}import{createHash as ou}from"crypto";import{spawnSync as AA}from"child_process";import{existsSync as s,readFileSync as yA}from"fs";import{hostname as jA}from"os";import{join as lI,resolve as II}from"path";import{createHash as ED,randomUUID as kD}from"crypto";import{createHash as vw,randomUUID as Ew}from"crypto";import{pathToFileURL as kw}from"url";import{existsSync as cw,mkdirSync as dw,readFileSync as gw,unlinkSync as ow,writeFileSync as lw}from"fs";import{homedir as aw}from"os";import{dirname as fw,join as bk}from"path";var $g="https://knowledge.hasna.xyz";function or(e){let r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:")throw Error("Knowledge API URL must use http or https.");let n=r.pathname.replace(/\/+$/,"");if(n==="/api"||n==="/api/v1")r.pathname="/";else if(n.endsWith("/api/v1"))r.pathname=n.slice(0,-7)||"/";else if(n.endsWith("/api"))r.pathname=n.slice(0,-4)||"/";return r.toString().replace(/\/+$/,"")}function mu(e=process.env){if(e.HASNA_KNOWLEDGE_AUTH_PATH)return e.HASNA_KNOWLEDGE_AUTH_PATH;let r=e.HASNA_KNOWLEDGE_AUTH_DIR??bk(aw(),".hasna","knowledge");return bk(r,"auth.json")}function Iu(e,r=process.env){return or(r.KNOWLEDGE_API_URL??e?.hosted?.api_url??$g)}function Ik(e=process.env){try{let r=mu(e);if(!cw(r))return null;let n=JSON.parse(gw(r,"utf8"));return typeof n.api_key==="string"&&n.api_key.length>0?n:null}catch{return null}}function mk(e,r=process.env){let n=mu(r),i={...e,api_url:e.api_url?or(e.api_url):void 0,created_at:e.created_at??new Date().toISOString()};return dw(fw(n),{recursive:!0,mode:448}),lw(n,`${JSON.stringify(i,null,2)} +`,{mode:384}),i}function wk(e=process.env){try{return ow(mu(e)),!0}catch{return!1}}function vg(e=process.env){if(e.KNOWLEDGE_API_KEY)return{apiKey:e.KNOWLEDGE_API_KEY,source:"env"};if(e.HASNA_KNOWLEDGE_API_KEY)return{apiKey:e.HASNA_KNOWLEDGE_API_KEY,source:"env"};let r=Ik(e);return r?.api_key?{apiKey:r.api_key,source:"file"}:{apiKey:null,source:"none"}}function Dk(e,r=process.env){let n=Ik(r),i=vg(r),t=r.KNOWLEDGE_API_URL?Iu(e,r):n?.api_url?or(n.api_url):Iu(e,r);return{authenticated:Boolean(i.apiKey),source:i.source,api_url:t,auth_path:mu(r),email:i.source==="file"?n?.email??null:null,org_id:i.source==="file"?n?.org_id??null:null,org_slug:i.source==="file"?n?.org_slug??null:null,user_id:i.source==="file"?n?.user_id??null:null,api_key_present:Boolean(i.apiKey)}}var wu=1;function Uk(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}function We(e,r){let n=e[r];return typeof n==="string"?n:void 0}function $w(e,r){let n=e[r];return typeof n==="number"&&Number.isFinite(n)?n:void 0}function hk(e,r){let n=e[r];return Array.isArray(n)?n:void 0}function Jt(e,r){let n=Uk(e)?e:{};return{contract_version:wu,id:We(n,"id")??r?.id,type:We(n,"type")??r?.type,status:We(n,"status")??r?.status,query:We(n,"query")??r?.query,prompt:We(n,"prompt")??r?.prompt,output_preview:Object.prototype.hasOwnProperty.call(n,"output_preview")?n.output_preview:r?.output_preview,citations:hk(n,"citations")??r?.citations,artifacts:hk(n,"artifacts")??r?.artifacts,usage:Uk(n.usage)?n.usage:r?.usage,created_at:We(n,"created_at")??r?.created_at,started_at:We(n,"started_at")??r?.started_at,completed_at:We(n,"completed_at")??r?.completed_at,duration_ms:$w(n,"duration_ms")??r?.duration_ms,error_code:We(n,"error_code")??r?.error_code,error_message:We(n,"error_message")??r?.error_message,error:We(n,"error")??r?.error,details:Object.prototype.hasOwnProperty.call(n,"details")?n.details:r?.details}}function Ok(e){return{contract_version:wu,service:"open-knowledge",mode:e.mode,capabilities:["registry","search","ask","build","sync","status","logs","artifacts","open-files-source-refs","s3-generated-artifacts"],endpoints:{registry:"/api/v1/knowledge/registry",search:"/api/v1/knowledge/search",ask:"/api/v1/knowledge/ask",build:"/api/v1/knowledge/build",sync:"/api/v1/knowledge/sync",run_status:"/api/v1/knowledge/runs/{run_id}",run_logs:"/api/v1/knowledge/runs/{run_id}/logs",run_artifacts:"/api/v1/knowledge/runs/{run_id}/artifacts"},source_contract:{owner:"open-files",preferred_ref:"open-files",allowed_schemes:e.sourceSchemes,raw_source_bytes_stored_in_open_knowledge:!1},artifact_contract:{storage_type:e.storageType,uri_prefix:e.artifactUriPrefix,generated_only:!0}}}class Du{apiKey;apiUrl;constructor(e,r){this.apiKey=e;this.apiUrl=r}static fromConfig(e,r=process.env){let n=vg(r);if(!n.apiKey)return null;return new Du(n.apiKey,Iu(e,r))}async request(e,r={}){return fetch(`${this.apiUrl}${e}`,{...r,headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json",...r.headers}})}async registry(){return(await this.request("/api/v1/knowledge/registry")).json()}async search(e){let r=await this.request("/api/v1/knowledge/search",{method:"POST",body:JSON.stringify(e)});return Jt(await r.json(),{type:"search",query:e.query})}async ask(e){let r=await this.request("/api/v1/knowledge/ask",{method:"POST",body:JSON.stringify(e)});return Jt(await r.json(),{type:"ask",prompt:e.prompt})}async build(e){let r=await this.request("/api/v1/knowledge/build",{method:"POST",body:JSON.stringify(e)});return Jt(await r.json(),{type:"build",prompt:e.prompt})}async sync(e={}){let r=await this.request("/api/v1/knowledge/sync",{method:"POST",body:JSON.stringify(e)});return Jt(await r.json(),{type:"sync"})}async runStatus(e){let r=await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(e)}`);if(!r.ok)return null;return Jt(await r.json(),{id:e,type:"status"})}async runLogs(e){let r=await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(e)}/logs`);if(!r.ok)return[];let n=await r.json();return Array.isArray(n)?n:[]}async runArtifacts(e){let r=await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(e)}/artifacts`);if(!r.ok)return[];let n=await r.json();return Array.isArray(n)?n:[]}}var Rk=[{kind:"schema",prefix:"schemas/",description:"Machine-readable agent schemas and source rules."},{kind:"index",prefix:"indexes/",description:"Small orientation indexes and future shard manifests."},{kind:"log",prefix:"logs/",description:"Append-only JSONL run and wiki-maintenance log partitions."},{kind:"run",prefix:"runs/",description:"Prompt/tool/cost ledgers and generated output records."},{kind:"wiki_page",prefix:"wiki/",description:"Generated cited Markdown pages, not raw source files."},{kind:"export",prefix:"exports/",description:"Portable exports and snapshots of derived knowledge state."}];function Wn(e){let r=typeof e==="string"?Buffer.from(e):Buffer.from(e);return{hash:`sha256:${vw("sha256").update(r).digest("hex")}`,size_bytes:r.byteLength}}function Lk(e){return Rk.find((n)=>e.startsWith(n.prefix))?.kind??"artifact"}function Uu(e,r,n="global"){let i=Eg(e,r),t=e.storage.s3??null,u=t?.prefix?.replace(/^\/+|\/+$/g,"")??"",_=t?`s3://${t.bucket}/${u?`${u}/`:""}`:"",c=ee.s3.prefix.replace(/^\/+|\/+$/g,""),d=`s3://${ee.s3.bucket}/${c}/`,g=e.storage.type==="s3"&&t?.bucket===ee.s3.bucket&&(t.region??null)===ee.s3.region;return{scope:n,mode:e.mode,storage_type:e.storage.type,workspace_home:r.home,local_layout:{app_path:cr,config_path:r.configPath,json_store_path:r.jsonStorePath,knowledge_db_path:r.knowledgeDbPath,directories:{artifacts:r.artifactsDir,cache:r.cacheDir,exports:r.exportsDir,indexes:r.indexesDir,logs:r.logsDir,runs:r.runsDir,schemas:r.schemasDir,wiki:r.wikiDir}},artifact_store:{type:e.storage.type,artifacts_root:e.storage.artifacts_root,uri_prefix:e.storage.type==="s3"?_:kw(`${r.artifactsDir}/`).href,s3:t?{bucket:t.bucket,prefix:u,region:t.region??null,profile:t.profile??null,server_side_encryption:t.server_side_encryption??null,kms_key_configured:Boolean(t.kms_key_id)}:null},canonical_example:{division:ee.division,app_type:ee.app_type,app:ee.app,env:ee.env,active:g,local_path:ee.local_path,s3:{bucket:ee.s3.bucket,region:ee.s3.region,profile:ee.s3.profile,prefix:c,uri_prefix:d,server_side_encryption:ee.s3.server_side_encryption},secrets:{env:ee.secrets.env,aws:ee.secrets.aws,s3:ee.secrets.s3,rds:ee.secrets.rds,future_rds:ee.secrets.future_rds},evidence_doc:ee.evidence_doc},hosted:{enabled:e.mode==="hosted",api_url:or(e.hosted?.api_url??$g),api_url_env:"KNOWLEDGE_API_URL",api_key_env:"KNOWLEDGE_API_KEY",auth_storage:"~/.hasna/knowledge/auth.json",remote_contract_version:wu,requires_hosted_account_for_local_use:!1},source_ownership:{owner:"open-files",preferred_ref:e.sources.preferred_ref,allowed_schemes:e.sources.allowed_schemes,raw_source_bytes_stored_in_open_knowledge:!1,stores:["source refs","source revisions and hashes","citation spans","redacted extracted chunks","embeddings","generated wiki artifacts","indexes","run ledgers"],does_not_store:["raw open-files bytes","S3 object credentials","connector secrets","hosted tenant ownership state"]},private_fleet_boundary:{manifest_authority:"open-machines",source_ref_authority:"open-files",secret_ref_authority:"open-secrets",raw_private_manifest_bytes_stored_in_open_knowledge:!1,accepted_source_ref_schemes:e.sources.allowed_schemes.filter((f)=>["open-files","s3","file"].includes(f)),stores:["source refs for private manifests","redacted setup decisions","runbook summaries","citation spans into approved knowledge sources","machine setup evidence hashes"],does_not_store:["private fleet manifests","machine hostnames","machine serial numbers","sudo passwords","VNC passwords","SSH private keys","GitHub App private keys","secret values"],example_manifest_ref:"open-files://source/private-fleet-manifest/path/machines.json"},generated_artifacts:Rk,scalability:{catalog:"knowledge.db tracks sources, revisions, chunks, citations, indexes, runs, and storage_objects.",indexes:"Indexes are cataloged DB rows plus sharded artifacts, not one giant index.md.",logs:"Logs use dated JSONL partitions under logs/yyyy/mm/dd.jsonl.",markdown:"Markdown pages are the readable wiki layer over DB/object-store state."},warnings:i.warnings}}function Eg(e,r){let n=[],i=[];if(!r.home.endsWith(cr))i.push(`Workspace home does not end with ${cr}: ${r.home}`);if(e.storage.type==="s3"){if(!e.storage.s3?.bucket)n.push("storage.s3.bucket is required when storage.type is s3.");if(!e.storage.s3?.prefix)i.push("storage.s3.prefix is empty; generated knowledge artifacts will be written at the bucket root.");if(e.mode==="local")i.push("storage.type is s3 while mode is local; this is valid for BYO S3, but hosted wrappers should set mode to hosted.")}if(e.storage.type==="local"&&e.storage.s3)i.push("storage.s3 is configured but ignored while storage.type is local.");if(e.sources.preferred_ref!=="open-files")i.push("sources.preferred_ref should stay open-files for durable company knowledge.");if(!e.sources.allowed_schemes.includes("open-files"))n.push("sources.allowed_schemes must include open-files.");if(e.mode==="hosted"&&e.hosted?.api_url)try{or(e.hosted.api_url)}catch{n.push("hosted.api_url must be an http(s) URL when mode is hosted.")}return{ok:n.length===0,errors:n,warnings:i}}function lr(e,r,n=new Date){let i=n.toISOString(),t=e.prepare(` INSERT INTO storage_objects ( id, artifact_uri, kind, content_type, hash, size_bytes, metadata_json, created_at, updated_at ) @@ -496,49 +496,49 @@ VALUES (8, datetime('now')); size_bytes = excluded.size_bytes, metadata_json = excluded.metadata_json, updated_at = excluded.updated_at - `);e.transaction((u)=>{for(let c of u){let d={key:c.key,...c.modified_at?{artifact_modified_at:c.modified_at}:{},...c.metadata??{}};n.run($b(),c.uri,c.kind,c.content_type??null,c.hash??null,c.size_bytes??null,JSON.stringify(d),i,i)}})(r)}function No(e){return["deleted","stale","invalidated","reindex_required"].includes((e??"").toLowerCase())}function mr(e){let r=e.status??null;return{source_owner:"open-files",source_ref:e.source_ref??null,source_uri:e.source_uri??null,source_kind:e.source_kind??null,source_revision_id:e.source_revision_id??null,revision:e.revision??null,hash:e.hash??null,chunk_id:e.chunk_id??null,start_offset:e.start_offset??null,end_offset:e.end_offset??null,status:r,read_only:!0,citation_required:!0,resolver:e.resolver??null,stale:No(r)}}function Me(e){return{source_owner:"open-files",generated_from:e.generated_from,artifact_key:e.artifact_key,source_refs:e.source_refs??[],read_only_sources:!0,citation_required:e.citation_required??!0,raw_source_bytes_stored_in_open_knowledge:!1}}function Av(e,r){return{...e,provenance:r}}import{createHash as cU}from"crypto";import{existsSync as dU,readFileSync as oU}from"fs";import{basename as w_}from"path";import{createHash as wb}from"crypto";import{existsSync as Ab,readFileSync as Xb}from"fs";import{basename as yb}from"path";import{fileURLToPath as Nb}from"url";function Xv(e,r){if(!e)throw Error(r);return e}function kb(e){let t=e.slice(13).split("/").filter(Boolean),i=t[0];if(i!=="file"&&i!=="source")throw Error("Invalid open-files ref. Expected open-files://file/, open-files://file//revision/, or open-files://source//path/.");let n=Xv(t[1],"Invalid open-files ref. Missing id.");if(i==="file"){if(t.length===2)return{kind:"open-files",uri:e,entity:i,id:n};if(t[2]==="revision"&&t[3]&&t.length===4)return{kind:"open-files",uri:e,entity:i,id:n,revision_id:decodeURIComponent(t[3])};throw Error("Invalid open-files file ref. Expected open-files://file//revision/.")}let _=t.indexOf("path"),u=_>=0?decodeURIComponent(t.slice(_+1).join("/")):void 0;return{kind:"open-files",uri:e,entity:i,id:n,path:u}}function Ib(e){let r=new URL(e),t=Xv(r.hostname,"Invalid s3 ref. Missing bucket."),i=decodeURIComponent(r.pathname.replace(/^\/+/,""));if(!i)throw Error("Invalid s3 ref. Missing object key.");return{kind:"s3",uri:e,bucket:t,key:i}}function Sb(e){return{kind:"file",uri:e,path:Nb(e)}}function Ob(e){let r=new URL(e);return{kind:"web",uri:e,url:r.toString()}}function Xe(e){if(e.startsWith("open-files://"))return kb(e);if(e.startsWith("s3://"))return Ib(e);if(e.startsWith("file://"))return Sb(e);if(e.startsWith("https://")||e.startsWith("http://"))return Ob(e);throw Error(`Unsupported source ref scheme: ${e}`)}function yv(e,r=Xe(e)){if(r.kind==="open-files"&&r.entity==="file"&&r.revision_id)return e.replace(/\/revision\/[^/]+$/,"");return e}function xv(e){let r=Xe(e);return r.kind==="open-files"&&r.entity==="file"?r.revision_id??null:null}import{createHash as Lb,randomUUID as Io}from"crypto";import{relative as bb,resolve as Pv,sep as Ub}from"path";function jv(e){let r=process.env[e];return r==="1"||r==="true"||r==="yes"}function Fv(e,r){let t=e,i=new Set(t.safety?.network?.allowed_s3_buckets??[]);if(e.storage.type==="s3"&&e.storage.s3?.bucket)i.add(e.storage.s3.bucket);if(process.env.HASNA_KNOWLEDGE_ALLOWED_S3_BUCKETS)for(let n of process.env.HASNA_KNOWLEDGE_ALLOWED_S3_BUCKETS.split(",").map((_)=>_.trim()).filter(Boolean))i.add(n);return{mode:e.mode,allowWriteRoots:[r.home,r.artifactsDir,r.cacheDir,r.exportsDir,r.indexesDir,r.logsDir,r.runsDir,r.schemasDir,r.wikiDir].map((n)=>Pv(n)),readOnlySourceAccess:!0,network:{webSearchEnabled:t.safety?.network?.web_search_enabled??jv("HASNA_KNOWLEDGE_WEB_SEARCH"),s3ReadsEnabled:t.safety?.network?.s3_reads_enabled??jv("HASNA_KNOWLEDGE_ALLOW_S3_READS"),allowedS3Buckets:[...i].sort()},redaction:{enabled:t.safety?.redaction?.enabled??!0},approvals:{generatedWritesRequireApproval:t.safety?.approvals?.generated_writes_require_approval??!0}}}function mb(e,r){let t=bb(e,r);return t===""||!t.startsWith("..")&&t!==".."&&!t.startsWith(`..${Ub}`)}function Er(e,r){let t=Pv(e);if(!r.allowWriteRoots.some((i)=>mb(i,t)))throw Error(`Safety policy denied write outside .hasna/knowledge: ${e}`)}function Dr(e,r){let i=new URL(e).hostname;if(!r.network.s3ReadsEnabled)throw Error("Safety policy denied S3 read. Set safety.network.s3_reads_enabled=true or HASNA_KNOWLEDGE_ALLOW_S3_READS=1.");if(!r.network.allowedS3Buckets.includes(i))throw Error(`Safety policy denied S3 bucket "${i}". Add it to safety.network.allowed_s3_buckets or HASNA_KNOWLEDGE_ALLOWED_S3_BUCKETS.`)}function zt(e){if(!e.network.webSearchEnabled)throw Error("Safety policy denied web search. Set safety.network.web_search_enabled=true or HASNA_KNOWLEDGE_WEB_SEARCH=1.")}var Kv=[{type:"private_key_block",severity:"high",regex:/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,replacement:"[REDACTED:private_key_block]"},{type:"secret_assignment",severity:"high",regex:/\b(?:api[_-]?key|secret|token|password)\s*[:=]\s*['"]?[^'"\s]{8,}/gi,replacement:"[REDACTED:secret_assignment]"},{type:"openai_api_key",severity:"high",regex:/\bsk-[A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:openai_api_key]"},{type:"anthropic_api_key",severity:"high",regex:new RegExp(`\\b${["sk","ant"].join("-")}-[A-Za-z0-9_-]{20,}\\b`,"g"),replacement:"[REDACTED:anthropic_api_key]"},{type:"aws_access_key_id",severity:"high",regex:/\bA(?:KIA|SIA)[A-Z0-9]{16}\b/g,replacement:"[REDACTED:aws_access_key_id]"}];function ye(e,r){if(r&&!r.redaction.enabled)return{text:e,findings:[]};let t=e,i=[];for(let n of Kv)t=t.replace(n.regex,(_,...u)=>{let c=typeof u.at(-2)==="number"?u.at(-2):t.indexOf(_);return i.push({type:n.type,severity:n.severity,start:Math.max(0,c),end:Math.max(0,c+_.length)}),n.replacement});return{text:t,findings:i}}function Db(e){return`audit_${Lb("sha256").update(`${e.event_type}\x00${e.action}\x00${e.target_uri??""}\x00${e.created_at??""}\x00${JSON.stringify(e.metadata??{})}\x00${Io()}`).digest("hex").slice(0,24)}`}function ko(e,r=0){if(r>6)return"[Truncated:depth]";if(typeof e==="string")return e.length>1000?`${e.slice(0,1000)}...[Truncated:${e.length-1000} chars]`:e;if(typeof e==="number"||typeof e==="boolean"||e===null||e===void 0)return e;if(Array.isArray(e)){let t=e.slice(0,25).map((i)=>ko(i,r+1));if(e.length>25)t.push(`[Truncated:${e.length-25} items]`);return t}if(typeof e==="object"){let t={},i=Object.entries(e).slice(0,50);for(let[_,u]of i)t[_]=ko(u,r+1);let n=Object.keys(e).length;if(n>i.length)t.__truncated_keys=n-i.length;return t}return String(e)}function re(e,r){let t=r.created_at??new Date().toISOString(),i=ko(r.metadata??{}),n=Db({...r,metadata:i,created_at:t});return e.run(`INSERT INTO audit_events (id, event_type, action, target_uri, decision, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?)`,[n,r.event_type,r.action,r.target_uri??null,r.decision,JSON.stringify(i),t]),n}function D_(e,r){let t=r.created_at??new Date().toISOString();for(let i of r.findings)e.run(`INSERT INTO redaction_findings (id, source_uri, run_id, severity, finding_type, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?)`,[`redact_${Io()}`,r.source_uri??null,r.run_id??null,i.severity,i.type,JSON.stringify({...r.metadata??{},start:i.start,end:i.end}),t]);return r.findings.length}function Wv(e,r){let t=r.created_at??new Date().toISOString(),i=`approval_${Io()}`;return e.run(`INSERT INTO approval_gates (id, action, target_uri, status, reason, approved_by, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[i,r.action,r.target_uri??null,"approved",r.reason??null,r.approved_by??"local-cli",JSON.stringify(r.metadata??{}),t,t]),{id:i,status:"approved"}}var Rb=[{type:"github_token",severity:"high",regex:/\bgh[pousr]_[A-Za-z0-9_]{20,}\b/g,replacement:"[REDACTED:github_token]"},{type:"github_pat_token",severity:"high",regex:/\bgithub[_]pat[_][A-Za-z0-9_]{20,}\b/g,replacement:"[REDACTED:github_pat_token]"},{type:"package_registry_token",severity:"high",regex:/\bnpm_[A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:package_registry_token]"},{type:"context7_token",severity:"high",regex:/\bctx7sk[-][A-Za-z0-9_-]{10,}\b/g,replacement:"[REDACTED:context7_token]"},{type:"xai_api_key",severity:"high",regex:/\bxai[-][A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:xai_api_key]"},{type:"google_api_key",severity:"high",regex:/\bAIza[A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:google_api_key]"}];Kv.push(...Rb);function hb(e,r,t){let i=e.query(`SELECT id FROM approval_gates + `);e.transaction((_)=>{for(let c of _){let d={key:c.key,...c.modified_at?{artifact_modified_at:c.modified_at}:{},...c.metadata??{}};t.run(Ew(),c.uri,c.kind,c.content_type??null,c.hash??null,c.size_bytes??null,JSON.stringify(d),i,i)}})(r)}function kg(e){return["deleted","stale","invalidated","reindex_required"].includes((e??"").toLowerCase())}function Ur(e){let r=e.status??null;return{source_owner:"open-files",source_ref:e.source_ref??null,source_uri:e.source_uri??null,source_kind:e.source_kind??null,source_revision_id:e.source_revision_id??null,revision:e.revision??null,hash:e.hash??null,chunk_id:e.chunk_id??null,start_offset:e.start_offset??null,end_offset:e.end_offset??null,status:r,read_only:!0,citation_required:!0,resolver:e.resolver??null,stale:kg(r)}}function Me(e){return{source_owner:"open-files",generated_from:e.generated_from,artifact_key:e.artifact_key,source_refs:e.source_refs??[],read_only_sources:!0,citation_required:e.citation_required??!0,raw_source_bytes_stored_in_open_knowledge:!1}}function Ak(e,r){return{...e,provenance:r}}import{createHash as cD}from"crypto";import{existsSync as dD,readFileSync as gD}from"fs";import{basename as Lu}from"path";import{createHash as Lw}from"crypto";import{existsSync as Aw,readFileSync as yw}from"fs";import{basename as jw}from"path";import{fileURLToPath as Tw}from"url";function yk(e,r){if(!e)throw Error(r);return e}function Sw(e){let n=e.slice(13).split("/").filter(Boolean),i=n[0];if(i!=="file"&&i!=="source")throw Error("Invalid open-files ref. Expected open-files://file/, open-files://file//revision/, or open-files://source//path/.");let t=yk(n[1],"Invalid open-files ref. Missing id.");if(i==="file"){if(n.length===2)return{kind:"open-files",uri:e,entity:i,id:t};if(n[2]==="revision"&&n[3]&&n.length===4)return{kind:"open-files",uri:e,entity:i,id:t,revision_id:decodeURIComponent(n[3])};throw Error("Invalid open-files file ref. Expected open-files://file//revision/.")}let u=n.indexOf("path"),_=u>=0?decodeURIComponent(n.slice(u+1).join("/")):void 0;return{kind:"open-files",uri:e,entity:i,id:t,path:_}}function Nw(e){let r=new URL(e),n=yk(r.hostname,"Invalid s3 ref. Missing bucket."),i=decodeURIComponent(r.pathname.replace(/^\/+/,""));if(!i)throw Error("Invalid s3 ref. Missing object key.");return{kind:"s3",uri:e,bucket:n,key:i}}function bw(e){return{kind:"file",uri:e,path:Tw(e)}}function Iw(e){let r=new URL(e);return{kind:"web",uri:e,url:r.toString()}}function ye(e){if(e.startsWith("open-files://"))return Sw(e);if(e.startsWith("s3://"))return Nw(e);if(e.startsWith("file://"))return bw(e);if(e.startsWith("https://")||e.startsWith("http://"))return Iw(e);throw Error(`Unsupported source ref scheme: ${e}`)}function jk(e,r=ye(e)){if(r.kind==="open-files"&&r.entity==="file"&&r.revision_id)return e.replace(/\/revision\/[^/]+$/,"");return e}function Pk(e){let r=ye(e);return r.kind==="open-files"&&r.entity==="file"?r.revision_id??null:null}import{createHash as mw,randomUUID as Sg}from"crypto";import{relative as ww,resolve as Xk,sep as Dw}from"path";function xk(e){let r=process.env[e];return r==="1"||r==="true"||r==="yes"}function Kk(e,r){let n=e,i=new Set(n.safety?.network?.allowed_s3_buckets??[]);if(e.storage.type==="s3"&&e.storage.s3?.bucket)i.add(e.storage.s3.bucket);if(process.env.HASNA_KNOWLEDGE_ALLOWED_S3_BUCKETS)for(let t of process.env.HASNA_KNOWLEDGE_ALLOWED_S3_BUCKETS.split(",").map((u)=>u.trim()).filter(Boolean))i.add(t);return{mode:e.mode,allowWriteRoots:[r.home,r.artifactsDir,r.cacheDir,r.exportsDir,r.indexesDir,r.logsDir,r.runsDir,r.schemasDir,r.wikiDir].map((t)=>Xk(t)),readOnlySourceAccess:!0,network:{webSearchEnabled:n.safety?.network?.web_search_enabled??xk("HASNA_KNOWLEDGE_WEB_SEARCH"),s3ReadsEnabled:n.safety?.network?.s3_reads_enabled??xk("HASNA_KNOWLEDGE_ALLOW_S3_READS"),allowedS3Buckets:[...i].sort()},redaction:{enabled:n.safety?.redaction?.enabled??!0},approvals:{generatedWritesRequireApproval:n.safety?.approvals?.generated_writes_require_approval??!0}}}function Uw(e,r){let n=ww(e,r);return n===""||!n.startsWith("..")&&n!==".."&&!n.startsWith(`..${Dw}`)}function ar(e,r){let n=Xk(e);if(!r.allowWriteRoots.some((i)=>Uw(i,n)))throw Error(`Safety policy denied write outside .hasna/knowledge: ${e}`)}function hr(e,r){let i=new URL(e).hostname;if(!r.network.s3ReadsEnabled)throw Error("Safety policy denied S3 read. Set safety.network.s3_reads_enabled=true or HASNA_KNOWLEDGE_ALLOW_S3_READS=1.");if(!r.network.allowedS3Buckets.includes(i))throw Error(`Safety policy denied S3 bucket "${i}". Add it to safety.network.allowed_s3_buckets or HASNA_KNOWLEDGE_ALLOWED_S3_BUCKETS.`)}function Mn(e){if(!e.network.webSearchEnabled)throw Error("Safety policy denied web search. Set safety.network.web_search_enabled=true or HASNA_KNOWLEDGE_WEB_SEARCH=1.")}var Fk=[{type:"private_key_block",severity:"high",regex:/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,replacement:"[REDACTED:private_key_block]"},{type:"secret_assignment",severity:"high",regex:/\b(?:api[_-]?key|secret|token|password)\s*[:=]\s*['"]?[^'"\s]{8,}/gi,replacement:"[REDACTED:secret_assignment]"},{type:"openai_api_key",severity:"high",regex:/\bsk-[A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:openai_api_key]"},{type:"anthropic_api_key",severity:"high",regex:new RegExp(`\\b${["sk","ant"].join("-")}-[A-Za-z0-9_-]{20,}\\b`,"g"),replacement:"[REDACTED:anthropic_api_key]"},{type:"aws_access_key_id",severity:"high",regex:/\bA(?:KIA|SIA)[A-Z0-9]{16}\b/g,replacement:"[REDACTED:aws_access_key_id]"}];function je(e,r){if(r&&!r.redaction.enabled)return{text:e,findings:[]};let n=e,i=[];for(let t of Fk)n=n.replace(t.regex,(u,..._)=>{let c=typeof _.at(-2)==="number"?_.at(-2):n.indexOf(u);return i.push({type:t.type,severity:t.severity,start:Math.max(0,c),end:Math.max(0,c+u.length)}),t.replacement});return{text:n,findings:i}}function hw(e){return`audit_${mw("sha256").update(`${e.event_type}\x00${e.action}\x00${e.target_uri??""}\x00${e.created_at??""}\x00${JSON.stringify(e.metadata??{})}\x00${Sg()}`).digest("hex").slice(0,24)}`}function Tg(e,r=0){if(r>6)return"[Truncated:depth]";if(typeof e==="string")return e.length>1000?`${e.slice(0,1000)}...[Truncated:${e.length-1000} chars]`:e;if(typeof e==="number"||typeof e==="boolean"||e===null||e===void 0)return e;if(Array.isArray(e)){let n=e.slice(0,25).map((i)=>Tg(i,r+1));if(e.length>25)n.push(`[Truncated:${e.length-25} items]`);return n}if(typeof e==="object"){let n={},i=Object.entries(e).slice(0,50);for(let[u,_]of i)n[u]=Tg(_,r+1);let t=Object.keys(e).length;if(t>i.length)n.__truncated_keys=t-i.length;return n}return String(e)}function re(e,r){let n=r.created_at??new Date().toISOString(),i=Tg(r.metadata??{}),t=hw({...r,metadata:i,created_at:n});return e.run(`INSERT INTO audit_events (id, event_type, action, target_uri, decision, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?)`,[t,r.event_type,r.action,r.target_uri??null,r.decision,JSON.stringify(i),n]),t}function hu(e,r){let n=r.created_at??new Date().toISOString();for(let i of r.findings)e.run(`INSERT INTO redaction_findings (id, source_uri, run_id, severity, finding_type, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?)`,[`redact_${Sg()}`,r.source_uri??null,r.run_id??null,i.severity,i.type,JSON.stringify({...r.metadata??{},start:i.start,end:i.end}),n]);return r.findings.length}function Jk(e,r){let n=r.created_at??new Date().toISOString(),i=`approval_${Sg()}`;return e.run(`INSERT INTO approval_gates (id, action, target_uri, status, reason, approved_by, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[i,r.action,r.target_uri??null,"approved",r.reason??null,r.approved_by??"local-cli",JSON.stringify(r.metadata??{}),n,n]),{id:i,status:"approved"}}var Ow=[{type:"github_token",severity:"high",regex:/\bgh[pousr]_[A-Za-z0-9_]{20,}\b/g,replacement:"[REDACTED:github_token]"},{type:"github_pat_token",severity:"high",regex:/\bgithub[_]pat[_][A-Za-z0-9_]{20,}\b/g,replacement:"[REDACTED:github_pat_token]"},{type:"package_registry_token",severity:"high",regex:/\bnpm_[A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:package_registry_token]"},{type:"context7_token",severity:"high",regex:/\bctx7sk[-][A-Za-z0-9_-]{10,}\b/g,replacement:"[REDACTED:context7_token]"},{type:"xai_api_key",severity:"high",regex:/\bxai[-][A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:xai_api_key]"},{type:"google_api_key",severity:"high",regex:/\bAIza[A-Za-z0-9_-]{20,}\b/g,replacement:"[REDACTED:google_api_key]"}];Fk.push(...Ow);function Rw(e,r,n){let i=e.query(`SELECT id FROM approval_gates WHERE action = ? AND status = 'approved' AND (target_uri IS NULL OR target_uri = ? OR ? IS NULL) - ORDER BY updated_at DESC LIMIT 1`).get(r,t??null,t??null);return Boolean(i)}function Jv(e,r,t,i){let n=t==="generated_write"&&r.approvals.generatedWritesRequireApproval,_=!n||hb(e,t,i);return{action:t,target_uri:i??null,approval_required:n,approved:_,decision:_?"allow":"requires_approval"}}var xb=20971520,zv=1e4,jb=10;function Oo(e,r){return`${e}_${wb("sha256").update(r).digest("hex").slice(0,20)}`}function Vr(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:void 0}function C(e){return typeof e==="string"&&e.length>0?e:void 0}function Pb(e){return typeof e==="number"&&Number.isFinite(e)?e:void 0}function Fb(e){let r=C(e.source_ref)??C(e.source_uri)??C(e.uri);if(r)return r;let t=C(e.file_id);if(t){let _=C(e.revision_id)??C(e.revision),u=`open-files://file/${encodeURIComponent(t)}`;return _?`${u}/revision/${encodeURIComponent(_)}`:u}let i=C(e.source_id),n=C(e.path);if(i&&n)return`open-files://source/${encodeURIComponent(i)}/path/${encodeURIComponent(n)}`;throw Error("Manifest item is missing source_ref, file_id, or source_id/path.")}function Kb(e,r){if(r.kind==="open-files"&&r.entity==="file"&&r.revision_id)return e.replace(/\/revision\/[^/]+$/,"");return e}function Wb(e){let r=C(e.extracted_text)??C(e.text)??C(e.content_text)??C(e.markdown);if(r!==void 0)return r;let t=e.content;return typeof t==="string"?t:null}function Jb(e){let r=C(e.extracted_text_ref)??C(e.extracted_text_uri)??C(e.text_ref);if(r)return r;let t=Vr(e.content);return C(t?.extracted_text_ref)??C(t?.extracted_text_uri)??null}function zb(e){let r=C(e.path);return C(e.title)??C(e.name)??(r?yb(r):null)}function Mb(e){return C(e.hash)??C(e.checksum)??C(e.sha256)??null}var Mv=new Set(["text","content","content_text","extracted_text","markdown","raw","raw_text","raw_bytes","raw_content","raw_body","raw_file","source_raw","source_raw_bytes","source_bytes","source_content","source_body","file_bytes","file_content","content_bytes","content_base64","document_bytes","document_content","document_base64","binary","binary_content","binary_base64","bytes","body","blob","data","payload"]);function Cv(e){return e.toLowerCase().replace(/[\s-]+/g,"_")}function So(e){if(Array.isArray(e))return e.map((i)=>So(i));let r=Vr(e);if(!r)return e;let t={};for(let[i,n]of Object.entries(r)){if(Mv.has(Cv(i)))continue;t[i]=So(n)}return t}function Cb(e,r,t){return C(e.revision_id)??C(e.revision)??C(e.version_id)??(r.kind==="open-files"?r.revision_id:void 0)??t??C(e.updated_at)??"current"}function qb(e,r){let t={};for(let[i,n]of Object.entries(e)){if(Mv.has(Cv(i)))continue;t[i]=So(n)}return t.source_ref=r.sourceRef,t.source_uri=r.sourceUri,t.status=r.status,t}function Gb(e,r){let t=Fb(e),i=Xe(t),n=Kb(t,i),_=Mb(e),u=C(e.status)??"active";return{raw:e,sourceRef:t,sourceUri:n,kind:i.kind,title:zb(e),revision:Cb(e,i,_),hash:_,extractedTextUri:Jb(e),text:Wb(e),metadata:qb(e,{sourceRef:t,sourceUri:n,status:u}),acl:e.permissions??e.acl??{},status:u,updatedAt:C(e.updated_at)??r}}function Yb(e){let r=e.trim();if(!r)return[];if(r.startsWith("[")){let t=JSON.parse(r);if(!Array.isArray(t))throw Error("Manifest array parse failed.");return t.map((i)=>{let n=Vr(i);if(!n)throw Error("Manifest array entries must be objects.");return n})}if(r.startsWith("{"))try{let t=JSON.parse(r),i=Vr(t);if(!i)throw Error("Manifest object parse failed.");if(Array.isArray(i.items))return i.items.map((n)=>{let _=Vr(n);if(!_)throw Error("Manifest items entries must be objects.");return _});if("source_ref"in i||"source_uri"in i||"file_id"in i)return[i]}catch(t){let i=r.split(/\r?\n/).filter((n)=>n.trim().length>0);if(i.length<=1)throw t;return i.map((n)=>{let _=Vr(JSON.parse(n));if(!_)throw Error("Manifest JSONL entries must be objects.");return _})}return r.split(/\r?\n/).filter((t)=>t.trim().length>0).map((t)=>{let i=Vr(JSON.parse(t));if(!i)throw Error("Manifest JSONL entries must be objects.");return i})}async function Bb(e,r,t){let i=new URL(e),n=i.hostname,_=decodeURIComponent(i.pathname.replace(/^\/+/,""));if(!n||!_)throw Error(`Invalid S3 manifest URI: ${e}`);if(t)Dr(e,t);let[{S3Client:u,GetObjectCommand:c},{fromIni:d}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]),o=r?.storage.type==="s3"&&r.storage.s3?.bucket===n?r.storage.s3:void 0,g=await new u({region:o?.region,credentials:o?.profile?d({profile:o.profile}):void 0,maxAttempts:o?.max_attempts}).send(new c({Bucket:n,Key:_}));if(!g.Body)return"";return await g.Body.transformToString()}async function Hb(e,r,t,i=xb){let n=e.startsWith("s3://")?await Bb(e,r,t):(()=>{if(!Ab(e))throw Error(`Manifest not found: ${e}`);return Xb(e,"utf8")})(),_=Buffer.byteLength(n);if(_>i)throw Error(`Manifest input is too large: ${_} bytes exceeds ${i} byte limit.`);return n}function Vb(e,r,t){let i=e.replace(/\r\n/g,` -`);if(!i.trim())return[];let n=[],_=0;while(_0?e:void 0}function Xw(e){return typeof e==="number"&&Number.isFinite(e)?e:void 0}function Kw(e){let r=q(e.source_ref)??q(e.source_uri)??q(e.uri);if(r)return r;let n=q(e.file_id);if(n){let u=q(e.revision_id)??q(e.revision),_=`open-files://file/${encodeURIComponent(n)}`;return u?`${_}/revision/${encodeURIComponent(u)}`:_}let i=q(e.source_id),t=q(e.path);if(i&&t)return`open-files://source/${encodeURIComponent(i)}/path/${encodeURIComponent(t)}`;throw Error("Manifest item is missing source_ref, file_id, or source_id/path.")}function Fw(e,r){if(r.kind==="open-files"&&r.entity==="file"&&r.revision_id)return e.replace(/\/revision\/[^/]+$/,"");return e}function Jw(e){let r=q(e.extracted_text)??q(e.text)??q(e.content_text)??q(e.markdown);if(r!==void 0)return r;let n=e.content;return typeof n==="string"?n:null}function zw(e){let r=q(e.extracted_text_ref)??q(e.extracted_text_uri)??q(e.text_ref);if(r)return r;let n=Vr(e.content);return q(n?.extracted_text_ref)??q(n?.extracted_text_uri)??null}function Ww(e){let r=q(e.path);return q(e.title)??q(e.name)??(r?jw(r):null)}function Mw(e){return q(e.hash)??q(e.checksum)??q(e.sha256)??null}var Mk=new Set(["text","content","content_text","extracted_text","markdown","raw","raw_text","raw_bytes","raw_content","raw_body","raw_file","source_raw","source_raw_bytes","source_bytes","source_content","source_body","file_bytes","file_content","content_bytes","content_base64","document_bytes","document_content","document_base64","binary","binary_content","binary_base64","bytes","body","blob","data","payload"]);function qk(e){return e.toLowerCase().replace(/[\s-]+/g,"_")}function Ng(e){if(Array.isArray(e))return e.map((i)=>Ng(i));let r=Vr(e);if(!r)return e;let n={};for(let[i,t]of Object.entries(r)){if(Mk.has(qk(i)))continue;n[i]=Ng(t)}return n}function qw(e,r,n){return q(e.revision_id)??q(e.revision)??q(e.version_id)??(r.kind==="open-files"?r.revision_id:void 0)??n??q(e.updated_at)??"current"}function Gw(e,r){let n={};for(let[i,t]of Object.entries(e)){if(Mk.has(qk(i)))continue;n[i]=Ng(t)}return n.source_ref=r.sourceRef,n.source_uri=r.sourceUri,n.status=r.status,n}function Hw(e,r){let n=Kw(e),i=ye(n),t=Fw(n,i),u=Mw(e),_=q(e.status)??"active";return{raw:e,sourceRef:n,sourceUri:t,kind:i.kind,title:Ww(e),revision:qw(e,i,u),hash:u,extractedTextUri:zw(e),text:Jw(e),metadata:Gw(e,{sourceRef:n,sourceUri:t,status:_}),acl:e.permissions??e.acl??{},status:_,updatedAt:q(e.updated_at)??r}}function Bw(e){let r=e.trim();if(!r)return[];if(r.startsWith("[")){let n=JSON.parse(r);if(!Array.isArray(n))throw Error("Manifest array parse failed.");return n.map((i)=>{let t=Vr(i);if(!t)throw Error("Manifest array entries must be objects.");return t})}if(r.startsWith("{"))try{let n=JSON.parse(r),i=Vr(n);if(!i)throw Error("Manifest object parse failed.");if(Array.isArray(i.items))return i.items.map((t)=>{let u=Vr(t);if(!u)throw Error("Manifest items entries must be objects.");return u});if("source_ref"in i||"source_uri"in i||"file_id"in i)return[i]}catch(n){let i=r.split(/\r?\n/).filter((t)=>t.trim().length>0);if(i.length<=1)throw n;return i.map((t)=>{let u=Vr(JSON.parse(t));if(!u)throw Error("Manifest JSONL entries must be objects.");return u})}return r.split(/\r?\n/).filter((n)=>n.trim().length>0).map((n)=>{let i=Vr(JSON.parse(n));if(!i)throw Error("Manifest JSONL entries must be objects.");return i})}async function Cw(e,r,n){let i=new URL(e),t=i.hostname,u=decodeURIComponent(i.pathname.replace(/^\/+/,""));if(!t||!u)throw Error(`Invalid S3 manifest URI: ${e}`);if(n)hr(e,n);let[{S3Client:_,GetObjectCommand:c},{fromIni:d}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]),g=r?.storage.type==="s3"&&r.storage.s3?.bucket===t?r.storage.s3:void 0,o=await new _({region:g?.region,credentials:g?.profile?d({profile:g.profile}):void 0,maxAttempts:g?.max_attempts}).send(new c({Bucket:t,Key:u}));if(!o.Body)return"";return await o.Body.transformToString()}async function Yw(e,r,n,i=Pw){let t=e.startsWith("s3://")?await Cw(e,r,n):(()=>{if(!Aw(e))throw Error(`Manifest not found: ${e}`);return yw(e,"utf8")})(),u=Buffer.byteLength(t);if(u>i)throw Error(`Manifest input is too large: ${u} bytes exceeds ${i} byte limit.`);return t}function Vw(e,r,n){let i=e.replace(/\r\n/g,` +`);if(!i.trim())return[];let t=[],u=0;while(u_+Math.floor(r*0.5))c=g+(g===o?2:1)}let d=i.slice(_,c).trim();if(d)n.push({ordinal:n.length,text:d,startOffset:_,endOffset:c});if(c>=i.length)break;_=Math.max(0,c-t)}return n}function Qb(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function Zb(e,r){let t=e.query("SELECT id FROM chunks WHERE source_revision_id = ?").all(r);for(let i of t)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[i.id]);return e.run("DELETE FROM chunks WHERE source_revision_id = ?",[r]),t.length}function sb(e,r,t){let i=Oo("src",r.sourceUri);e.run(`INSERT INTO sources (id, uri, kind, title, metadata_json, acl_json, created_at, updated_at) +`,_),f=i.lastIndexOf(". ",_),o=Math.max(g,f);if(o>u+Math.floor(r*0.5))c=o+(o===g?2:1)}let d=i.slice(u,c).trim();if(d)t.push({ordinal:t.length,text:d,startOffset:u,endOffset:c});if(c>=i.length)break;u=Math.max(0,c-n)}return t}function Qw(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function Zw(e,r){let n=e.query("SELECT id FROM chunks WHERE source_revision_id = ?").all(r);for(let i of n)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[i.id]);return e.run("DELETE FROM chunks WHERE source_revision_id = ?",[r]),n.length}function sw(e,r,n){let i=bg("src",r.sourceUri);e.run(`INSERT INTO sources (id, uri, kind, title, metadata_json, acl_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(uri) DO UPDATE SET kind = excluded.kind, title = excluded.title, metadata_json = excluded.metadata_json, acl_json = excluded.acl_json, - updated_at = excluded.updated_at`,[i,r.sourceUri,r.kind,r.title,JSON.stringify(r.metadata),JSON.stringify(r.acl??{}),t,r.updatedAt]);let n=e.query("SELECT id FROM sources WHERE uri = ?").get(r.sourceUri);if(!n)throw Error(`Failed to upsert source: ${r.sourceUri}`);return n.id}function pb(e,r,t,i){let n=Oo("rev",`${r}\x00${t.revision}`);e.run(`INSERT INTO source_revisions (id, source_id, revision, hash, extracted_text_uri, metadata_json, created_at) + updated_at = excluded.updated_at`,[i,r.sourceUri,r.kind,r.title,JSON.stringify(r.metadata),JSON.stringify(r.acl??{}),n,r.updatedAt]);let t=e.query("SELECT id FROM sources WHERE uri = ?").get(r.sourceUri);if(!t)throw Error(`Failed to upsert source: ${r.sourceUri}`);return t.id}function pw(e,r,n,i){let t=bg("rev",`${r}\x00${n.revision}`);e.run(`INSERT INTO source_revisions (id, source_id, revision, hash, extracted_text_uri, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(source_id, revision) DO UPDATE SET hash = excluded.hash, extracted_text_uri = excluded.extracted_text_uri, - metadata_json = excluded.metadata_json`,[n,r,t.revision,t.hash,t.extractedTextUri,JSON.stringify(t.metadata),i]);let _=e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").get(r,t.revision);if(!_)throw Error(`Failed to upsert source revision: ${t.sourceRef}`);return _.id}function eU(e,r,t,i,n,_,u){if(!t.text||t.status.toLowerCase()==="deleted")return{chunksInserted:0,redactions:0};let c=ye(t.text,u);if(c.findings.length>0)D_(e,{source_uri:t.sourceUri,findings:c.findings,metadata:{source_ref:t.sourceRef,revision:t.revision},created_at:i}),re(e,{event_type:"redaction",action:"source_text_redact",target_uri:t.sourceUri,decision:"redacted",metadata:{findings:c.findings.length,source_ref:t.sourceRef,revision:t.revision},created_at:i});let d=Vb(c.text,n,_);for(let o of d){let a=Oo("chk",`${r}\x00${o.ordinal}\x00${o.text}`),g=mr({source_ref:t.sourceRef,source_uri:t.sourceUri,source_kind:t.kind,source_revision_id:r,revision:t.revision,hash:t.hash,chunk_id:a,start_offset:o.startOffset,end_offset:o.endOffset,status:t.status,resolver:"open-files-read-only"}),E=Av({source_ref:t.sourceRef,source_uri:t.sourceUri,source_kind:t.kind,source_revision_id:r,revision:t.revision,hash:t.hash,status:t.status,path:C(t.raw.path)??null,mime:C(t.raw.mime)??C(t.raw.content_type)??null,size:Pb(t.raw.size)??null},g);e.run(`INSERT INTO chunks (id, source_revision_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[a,r,"source",o.ordinal,o.text,Qb(o.text),o.startOffset,o.endOffset,JSON.stringify(E),i]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[a,o.text,t.title??"",t.sourceUri])}return{chunksInserted:d.length,redactions:c.findings.length}}async function qv(e){let r=e.now??new Date;if(e.safetyPolicy)Er(e.dbPath,e.safetyPolicy);x(e.dbPath);let t=await Hb(e.input,e.config,e.safetyPolicy,e.maxInputBytes),i=Yb(t),n=e.maxItems??zv;if(i.length>n)throw Error(`Manifest contains too many items: ${i.length} exceeds ${n} item limit.`);return Qr({dbPath:e.dbPath,items:i,sourceLabel:e.input,safetyPolicy:e.safetyPolicy,now:r,maxChunkChars:e.maxChunkChars,chunkOverlapChars:e.chunkOverlapChars,maxItems:e.maxItems})}async function Qr(e){let r=(e.now??new Date).toISOString(),t=e.maxChunkChars??4000,i=e.chunkOverlapChars??200,n=e.maxItems??zv;if(t<500)throw Error("maxChunkChars must be at least 500.");if(i<0||i>=t)throw Error("chunkOverlapChars must be less than maxChunkChars.");if(e.items.length>n)throw Error(`Manifest contains too many items: ${e.items.length} exceeds ${n} item limit.`);if(e.safetyPolicy)Er(e.dbPath,e.safetyPolicy);x(e.dbPath);let _=A(e.dbPath);try{return _.transaction(()=>{let c=new Set,d=new Set,o=0,a=0,g=0,E=0,l=[];re(_,{event_type:"source_read",action:e.readAction??(e.sourceLabel.startsWith("s3://")?"s3_manifest_read":"local_manifest_read"),target_uri:e.sourceLabel,decision:"allow",metadata:{items:e.items.length,read_only:!0},created_at:r});for(let T of e.items){let f=Gb(T,r);if(l.length0)return i}return null}function Gv(e,r){for(let t of r){let i=e[t];if(typeof i==="number"&&Number.isFinite(i))return i}return null}function rU(e,r){let t=e.mode;if(typeof t==="string"&&t!=="read_only")throw Error(`Source resolver denied ${r}. Permission mode is ${t}, expected read_only.`);let i=e.denied_purposes;if(Array.isArray(i)&&i.includes(r))throw Error(`Source resolver denied ${r}. Purpose is explicitly denied.`);let n=e.allowed_purposes;if(Array.isArray(n)&&n.length>0&&!n.includes(r))throw Error(`Source resolver denied ${r}. Allowed purposes: ${n.join(", ")}`)}function tU(e,r,t){if(!r)return t;try{let i=Xe(e);if(i.kind==="open-files"&&i.entity==="file")return`${e}/revision/${encodeURIComponent(r.revision)}`}catch{return t}return t}function nU(e,r,t){return e.query(`SELECT id, uri, kind, title, metadata_json, acl_json, updated_at + metadata_json = excluded.metadata_json`,[t,r,n.revision,n.hash,n.extractedTextUri,JSON.stringify(n.metadata),i]);let u=e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").get(r,n.revision);if(!u)throw Error(`Failed to upsert source revision: ${n.sourceRef}`);return u.id}function eD(e,r,n,i,t,u,_){if(!n.text||n.status.toLowerCase()==="deleted")return{chunksInserted:0,redactions:0};let c=je(n.text,_);if(c.findings.length>0)hu(e,{source_uri:n.sourceUri,findings:c.findings,metadata:{source_ref:n.sourceRef,revision:n.revision},created_at:i}),re(e,{event_type:"redaction",action:"source_text_redact",target_uri:n.sourceUri,decision:"redacted",metadata:{findings:c.findings.length,source_ref:n.sourceRef,revision:n.revision},created_at:i});let d=Vw(c.text,t,u);for(let g of d){let f=bg("chk",`${r}\x00${g.ordinal}\x00${g.text}`),o=Ur({source_ref:n.sourceRef,source_uri:n.sourceUri,source_kind:n.kind,source_revision_id:r,revision:n.revision,hash:n.hash,chunk_id:f,start_offset:g.startOffset,end_offset:g.endOffset,status:n.status,resolver:"open-files-read-only"}),a=Ak({source_ref:n.sourceRef,source_uri:n.sourceUri,source_kind:n.kind,source_revision_id:r,revision:n.revision,hash:n.hash,status:n.status,path:q(n.raw.path)??null,mime:q(n.raw.mime)??q(n.raw.content_type)??null,size:Xw(n.raw.size)??null},o);e.run(`INSERT INTO chunks (id, source_revision_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[f,r,"source",g.ordinal,g.text,Qw(g.text),g.startOffset,g.endOffset,JSON.stringify(a),i]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[f,g.text,n.title??"",n.sourceUri])}return{chunksInserted:d.length,redactions:c.findings.length}}async function Gk(e){let r=e.now??new Date;if(e.safetyPolicy)ar(e.dbPath,e.safetyPolicy);P(e.dbPath);let n=await Yw(e.input,e.config,e.safetyPolicy,e.maxInputBytes),i=Bw(n),t=e.maxItems??Wk;if(i.length>t)throw Error(`Manifest contains too many items: ${i.length} exceeds ${t} item limit.`);return Qr({dbPath:e.dbPath,items:i,sourceLabel:e.input,safetyPolicy:e.safetyPolicy,now:r,maxChunkChars:e.maxChunkChars,chunkOverlapChars:e.chunkOverlapChars,maxItems:e.maxItems})}async function Qr(e){let r=(e.now??new Date).toISOString(),n=e.maxChunkChars??4000,i=e.chunkOverlapChars??200,t=e.maxItems??Wk;if(n<500)throw Error("maxChunkChars must be at least 500.");if(i<0||i>=n)throw Error("chunkOverlapChars must be less than maxChunkChars.");if(e.items.length>t)throw Error(`Manifest contains too many items: ${e.items.length} exceeds ${t} item limit.`);if(e.safetyPolicy)ar(e.dbPath,e.safetyPolicy);P(e.dbPath);let u=A(e.dbPath);try{return u.transaction(()=>{let c=new Set,d=new Set,g=0,f=0,o=0,a=0,l=[];re(u,{event_type:"source_read",action:e.readAction??(e.sourceLabel.startsWith("s3://")?"s3_manifest_read":"local_manifest_read"),target_uri:e.sourceLabel,decision:"allow",metadata:{items:e.items.length,read_only:!0},created_at:r});for(let $ of e.items){let v=Hw($,r);if(l.length0)return i}return null}function Hk(e,r){for(let n of r){let i=e[n];if(typeof i==="number"&&Number.isFinite(i))return i}return null}function rD(e,r){let n=e.mode;if(typeof n==="string"&&n!=="read_only")throw Error(`Source resolver denied ${r}. Permission mode is ${n}, expected read_only.`);let i=e.denied_purposes;if(Array.isArray(i)&&i.includes(r))throw Error(`Source resolver denied ${r}. Purpose is explicitly denied.`);let t=e.allowed_purposes;if(Array.isArray(t)&&t.length>0&&!t.includes(r))throw Error(`Source resolver denied ${r}. Allowed purposes: ${t.join(", ")}`)}function nD(e,r,n){if(!r)return n;try{let i=ye(e);if(i.kind==="open-files"&&i.entity==="file")return`${e}/revision/${encodeURIComponent(r.revision)}`}catch{return n}return n}function tD(e,r,n){return e.query(`SELECT id, uri, kind, title, metadata_json, acl_json, updated_at FROM sources WHERE uri = ? OR uri = ? ORDER BY CASE WHEN uri = ? THEN 0 ELSE 1 END - LIMIT 1`).get(r,t,r)??null}function iU(e,r,t){if(t)return e.query(`SELECT id, revision, hash, extracted_text_uri, metadata_json, created_at + LIMIT 1`).get(r,n,r)??null}function iD(e,r,n){if(n)return e.query(`SELECT id, revision, hash, extracted_text_uri, metadata_json, created_at FROM source_revisions WHERE source_id = ? AND revision = ? - LIMIT 1`).get(r,t)??null;return e.query(`SELECT id, revision, hash, extracted_text_uri, metadata_json, created_at + LIMIT 1`).get(r,n)??null;return e.query(`SELECT id, revision, hash, extracted_text_uri, metadata_json, created_at FROM source_revisions WHERE source_id = ? ORDER BY created_at DESC, revision DESC - LIMIT 1`).get(r)??null}function _U(e,r){if(!r)return 0;return e.query("SELECT COUNT(*) AS n FROM chunks WHERE source_revision_id = ?").get(r)?.n??0}function uU(e,r,t){if(!r||t<=0)return[];return e.query(`SELECT id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json + LIMIT 1`).get(r)??null}function uD(e,r){if(!r)return 0;return e.query("SELECT COUNT(*) AS n FROM chunks WHERE source_revision_id = ?").get(r)?.n??0}function _D(e,r,n){if(!r||n<=0)return[];return e.query(`SELECT id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json FROM chunks WHERE source_revision_id = ? ORDER BY ordinal ASC - LIMIT ?`).all(r,t)}async function h_(e){let r=e.purpose??"knowledge_answer",t=Math.max(0,Math.min(e.limit??10,100)),i=(e.now??new Date).toISOString(),n=Xe(e.sourceRef),_=yv(e.sourceRef,n),u=xv(e.sourceRef);if(e.safetyPolicy){if(!e.safetyPolicy.readOnlySourceAccess)throw Error("Safety policy denied source resolution.");Er(e.dbPath,e.safetyPolicy)}x(e.dbPath);let c=A(e.dbPath);try{return c.transaction(()=>{let d=nU(c,_,e.sourceRef);if(!d)return re(c,{event_type:"source_read",action:"open_files_resolve_missing",target_uri:e.sourceRef,decision:"allow",metadata:{purpose:r,read_only:!0,source_uri:_},created_at:i}),{source_ref:e.sourceRef,source_uri:_,purpose:r,read_only:!0,resolved:!1,resolver:{name:"open-files-read-only",mode:"local_catalog",contract:"open-files-knowledge-source-v1"},source:null,revision:null,content:{mime:null,size:null,hash:null,text_available:!1,chunks_total:0,chunks_returned:0,char_count_returned:0,extracted_text_ref:null,bytes_available:!1,bytes_exposed:!1},chunks:[],citations:[]};let o=R_(d.metadata_json),a=R_(d.acl_json);try{rU(a,r)}catch(S){throw re(c,{event_type:"source_read",action:"open_files_resolve",target_uri:e.sourceRef,decision:"deny",metadata:{purpose:r,read_only:!0,source_uri:d.uri,error:S instanceof Error?S.message:String(S)},created_at:i}),S}let g=iU(c,d.id,u),E=R_(g?.metadata_json),l=_U(c,g?.id??null),T=uU(c,g?.id??null,t),f=tU(d.uri,g,e.sourceRef),v=T.map((S)=>{let U=R_(S.metadata_json),X={resolver:"open-files-read-only",mode:"local_catalog",purpose:r,read_only:!0,source_ref:Zr(U,["source_ref"])??f,source_uri:d.uri,source_revision_id:g?.id??null,revision:g?.revision??null,hash:g?.hash??Zr(U,["hash"]),chunk_id:S.id,start_offset:S.start_offset,end_offset:S.end_offset,resolved_at:i},j=mr({source_ref:X.source_ref,source_uri:X.source_uri,source_kind:d.kind,source_revision_id:X.source_revision_id,revision:X.revision,hash:X.hash,chunk_id:S.id,start_offset:S.start_offset,end_offset:S.end_offset,status:Zr(U,["status"]),resolver:X.resolver});return{id:S.id,kind:S.kind,ordinal:S.ordinal,text:S.text,token_count:S.token_count,start_offset:S.start_offset,end_offset:S.end_offset,metadata:U,evidence:X,provenance:j}}),N=v.map((S)=>({source_ref:S.evidence.source_ref,source_uri:d.uri,chunk_id:S.id,quote:S.text.slice(0,500),start_offset:S.start_offset,end_offset:S.end_offset,evidence:S.evidence,provenance:S.provenance}));re(c,{event_type:"source_read",action:"open_files_resolve",target_uri:e.sourceRef,decision:"allow",metadata:{purpose:r,read_only:!0,source_uri:d.uri,revision:g?.revision??null,chunks_returned:v.length,chunks_total:l},created_at:i});let k=Zr(o,["mime","content_type"])??Zr(E,["mime","content_type"]),R=Gv(o,["size","size_bytes"])??Gv(E,["size","size_bytes"]);return{source_ref:f,source_uri:d.uri,purpose:r,read_only:!0,resolved:!0,resolver:{name:"open-files-read-only",mode:"local_catalog",contract:"open-files-knowledge-source-v1"},source:{id:d.id,uri:d.uri,kind:d.kind,title:d.title,metadata:o,permissions:a,updated_at:d.updated_at},revision:g?{id:g.id,revision:g.revision,hash:g.hash,extracted_text_uri:g.extracted_text_uri,metadata:E,created_at:g.created_at,reindex_required:E.reindex_required===!0}:null,content:{mime:k,size:R,hash:g?.hash??Zr(o,["hash","checksum","sha256"]),text_available:l>0,chunks_total:l,chunks_returned:v.length,char_count_returned:v.reduce((S,U)=>S+U.text.length,0),extracted_text_ref:g?.extracted_text_uri??Zr(E,["extracted_text_ref","extracted_text_uri"]),bytes_available:!1,bytes_exposed:!1},chunks:v,citations:N}})()}finally{c.close()}}function Mt(e){return`sha256:${cU("sha256").update(e).digest("hex")}`}function gU(e){return e.replace(//gi," ").replace(//gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\s+\n/g,` + LIMIT ?`).all(r,n)}async function Ru(e){let r=e.purpose??"knowledge_answer",n=Math.max(0,Math.min(e.limit??10,100)),i=(e.now??new Date).toISOString(),t=ye(e.sourceRef),u=jk(e.sourceRef,t),_=Pk(e.sourceRef);if(e.safetyPolicy){if(!e.safetyPolicy.readOnlySourceAccess)throw Error("Safety policy denied source resolution.");ar(e.dbPath,e.safetyPolicy)}P(e.dbPath);let c=A(e.dbPath);try{return c.transaction(()=>{let d=tD(c,u,e.sourceRef);if(!d)return re(c,{event_type:"source_read",action:"open_files_resolve_missing",target_uri:e.sourceRef,decision:"allow",metadata:{purpose:r,read_only:!0,source_uri:u},created_at:i}),{source_ref:e.sourceRef,source_uri:u,purpose:r,read_only:!0,resolved:!1,resolver:{name:"open-files-read-only",mode:"local_catalog",contract:"open-files-knowledge-source-v1"},source:null,revision:null,content:{mime:null,size:null,hash:null,text_available:!1,chunks_total:0,chunks_returned:0,char_count_returned:0,extracted_text_ref:null,bytes_available:!1,bytes_exposed:!1},chunks:[],citations:[]};let g=Ou(d.metadata_json),f=Ou(d.acl_json);try{rD(f,r)}catch(b){throw re(c,{event_type:"source_read",action:"open_files_resolve",target_uri:e.sourceRef,decision:"deny",metadata:{purpose:r,read_only:!0,source_uri:d.uri,error:b instanceof Error?b.message:String(b)},created_at:i}),b}let o=iD(c,d.id,_),a=Ou(o?.metadata_json),l=uD(c,o?.id??null),$=_D(c,o?.id??null,n),v=nD(d.uri,o,e.sourceRef),k=$.map((b)=>{let D=Ou(b.metadata_json),y={resolver:"open-files-read-only",mode:"local_catalog",purpose:r,read_only:!0,source_ref:Zr(D,["source_ref"])??v,source_uri:d.uri,source_revision_id:o?.id??null,revision:o?.revision??null,hash:o?.hash??Zr(D,["hash"]),chunk_id:b.id,start_offset:b.start_offset,end_offset:b.end_offset,resolved_at:i},x=Ur({source_ref:y.source_ref,source_uri:y.source_uri,source_kind:d.kind,source_revision_id:y.source_revision_id,revision:y.revision,hash:y.hash,chunk_id:b.id,start_offset:b.start_offset,end_offset:b.end_offset,status:Zr(D,["status"]),resolver:y.resolver});return{id:b.id,kind:b.kind,ordinal:b.ordinal,text:b.text,token_count:b.token_count,start_offset:b.start_offset,end_offset:b.end_offset,metadata:D,evidence:y,provenance:x}}),T=k.map((b)=>({source_ref:b.evidence.source_ref,source_uri:d.uri,chunk_id:b.id,quote:b.text.slice(0,500),start_offset:b.start_offset,end_offset:b.end_offset,evidence:b.evidence,provenance:b.provenance}));re(c,{event_type:"source_read",action:"open_files_resolve",target_uri:e.sourceRef,decision:"allow",metadata:{purpose:r,read_only:!0,source_uri:d.uri,revision:o?.revision??null,chunks_returned:k.length,chunks_total:l},created_at:i});let S=Zr(g,["mime","content_type"])??Zr(a,["mime","content_type"]),O=Hk(g,["size","size_bytes"])??Hk(a,["size","size_bytes"]);return{source_ref:v,source_uri:d.uri,purpose:r,read_only:!0,resolved:!0,resolver:{name:"open-files-read-only",mode:"local_catalog",contract:"open-files-knowledge-source-v1"},source:{id:d.id,uri:d.uri,kind:d.kind,title:d.title,metadata:g,permissions:f,updated_at:d.updated_at},revision:o?{id:o.id,revision:o.revision,hash:o.hash,extracted_text_uri:o.extracted_text_uri,metadata:a,created_at:o.created_at,reindex_required:a.reindex_required===!0}:null,content:{mime:S,size:O,hash:o?.hash??Zr(g,["hash","checksum","sha256"]),text_available:l>0,chunks_total:l,chunks_returned:k.length,char_count_returned:k.reduce((b,D)=>b+D.text.length,0),extracted_text_ref:o?.extracted_text_uri??Zr(a,["extracted_text_ref","extracted_text_uri"]),bytes_available:!1,bytes_exposed:!1},chunks:k,citations:T}})()}finally{c.close()}}function qn(e){return`sha256:${cD("sha256").update(e).digest("hex")}`}function oD(e){return e.replace(//gi," ").replace(//gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\s+\n/g,` `).replace(/\n\s+/g,` -`).replace(/[ \t]{2,}/g," ").trim()}async function lU(e,r,t){let i=new URL(e),n=i.hostname,_=decodeURIComponent(i.pathname.replace(/^\/+/,""));if(!n||!_)throw Error(`Invalid S3 source URI: ${e}`);if(t)Dr(e,t);let[{S3Client:u,GetObjectCommand:c},{fromIni:d}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]),o=r?.storage.type==="s3"&&r.storage.s3?.bucket===n?r.storage.s3:void 0,g=await new u({region:o?.region,credentials:o?.profile?d({profile:o.profile}):void 0,maxAttempts:o?.max_attempts}).send(new c({Bucket:n,Key:_}));if(!g.Body)return"";return await g.Body.transformToString()}async function EU(e,r){if(r)zt(r);let t=await fetch(e,{headers:{accept:"text/markdown,text/plain,text/html,application/json;q=0.8,*/*;q=0.5","user-agent":"@hasna/knowledge source-ingest"}});if(!t.ok)throw Error(`Web source read failed ${t.status}: ${e}`);let i=t.headers.get("content-type"),n=await t.text();return{text:i?.includes("html")?gU(n):n,mime:i}}function A_(e){if(e.kind==="file")return w_(e.path);if(e.kind==="s3")return w_(e.key);if(e.kind==="web")return w_(new URL(e.url).pathname)||e.url;return e.path?w_(e.path):e.id}async function Yv(e,r,t){if(e.kind==="file"){if(!dU(e.path))throw Error(`Source file not found: ${e.path}`);let i=oU(e.path,"utf8");return{text:i,contentSource:"file",title:A_(e),mime:"text/plain",size:i.length,hash:Mt(i),revision:null,extractedTextRef:null,metadata:{path:e.path},permissions:{mode:"read_only"}}}if(e.kind==="s3"){let i=await lU(e.uri,r,t);return{text:i,contentSource:"s3",title:A_(e),mime:"text/plain",size:i.length,hash:Mt(i),revision:null,extractedTextRef:null,metadata:{bucket:e.bucket,key:e.key},permissions:{mode:"read_only"}}}if(e.kind==="web"){let i=await EU(e.url,t);return{text:i.text,contentSource:"web",title:A_(e),mime:i.mime,size:i.text.length,hash:Mt(i.text),revision:null,extractedTextRef:null,metadata:{url:e.url},permissions:{mode:"read_only"}}}throw Error(`Direct source reading is not available for ${e.uri}`)}async function aU(e,r,t){if(e.startsWith("open-files://"))throw Error("Open-files extracted text refs require an open-files resolver API. Ingest an open-files manifest with extracted_text or an extracted_text_ref using file://, s3://, or https://.");let i=Xe(e);return{text:(await Yv(i,r,t)).text,contentSource:"extracted_text_ref"}}async function TU(e){let r=await h_({dbPath:e.dbPath,sourceRef:e.sourceRef,purpose:e.purpose??"knowledge_index",limit:100,safetyPolicy:e.safetyPolicy,now:e.now});if(!r.resolved)throw Error("Open-files source is not in the local knowledge catalog. Ingest an open-files manifest first or use the open-files resolver API.");if(r.revision?.extracted_text_uri&&!r.content.text_available){let i=await aU(r.revision.extracted_text_uri,e.config,e.safetyPolicy);return{text:i.text,contentSource:i.contentSource,title:r.source?.title??null,mime:r.content.mime,size:i.text.length,hash:r.revision.hash??Mt(i.text),revision:r.revision.revision,extractedTextRef:r.revision.extracted_text_uri,metadata:r.source?.metadata??{},permissions:r.source?.permissions??{mode:"read_only"}}}if(r.chunks.length===0)throw Error("Open-files source has no extracted text chunks yet. Ingest an open-files manifest with extracted_text or extracted_text_ref first.");let t=r.chunks.map((i)=>i.text).join(` +`).replace(/[ \t]{2,}/g," ").trim()}async function lD(e,r,n){let i=new URL(e),t=i.hostname,u=decodeURIComponent(i.pathname.replace(/^\/+/,""));if(!t||!u)throw Error(`Invalid S3 source URI: ${e}`);if(n)hr(e,n);let[{S3Client:_,GetObjectCommand:c},{fromIni:d}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]),g=r?.storage.type==="s3"&&r.storage.s3?.bucket===t?r.storage.s3:void 0,o=await new _({region:g?.region,credentials:g?.profile?d({profile:g.profile}):void 0,maxAttempts:g?.max_attempts}).send(new c({Bucket:t,Key:u}));if(!o.Body)return"";return await o.Body.transformToString()}async function aD(e,r){if(r)Mn(r);let n=await fetch(e,{headers:{accept:"text/markdown,text/plain,text/html,application/json;q=0.8,*/*;q=0.5","user-agent":"@hasna/knowledge source-ingest"}});if(!n.ok)throw Error(`Web source read failed ${n.status}: ${e}`);let i=n.headers.get("content-type"),t=await n.text();return{text:i?.includes("html")?oD(t):t,mime:i}}function Au(e){if(e.kind==="file")return Lu(e.path);if(e.kind==="s3")return Lu(e.key);if(e.kind==="web")return Lu(new URL(e.url).pathname)||e.url;return e.path?Lu(e.path):e.id}async function Bk(e,r,n){if(e.kind==="file"){if(!dD(e.path))throw Error(`Source file not found: ${e.path}`);let i=gD(e.path,"utf8");return{text:i,contentSource:"file",title:Au(e),mime:"text/plain",size:i.length,hash:qn(i),revision:null,extractedTextRef:null,metadata:{path:e.path},permissions:{mode:"read_only"}}}if(e.kind==="s3"){let i=await lD(e.uri,r,n);return{text:i,contentSource:"s3",title:Au(e),mime:"text/plain",size:i.length,hash:qn(i),revision:null,extractedTextRef:null,metadata:{bucket:e.bucket,key:e.key},permissions:{mode:"read_only"}}}if(e.kind==="web"){let i=await aD(e.url,n);return{text:i.text,contentSource:"web",title:Au(e),mime:i.mime,size:i.text.length,hash:qn(i.text),revision:null,extractedTextRef:null,metadata:{url:e.url},permissions:{mode:"read_only"}}}throw Error(`Direct source reading is not available for ${e.uri}`)}async function fD(e,r,n){if(e.startsWith("open-files://"))throw Error("Open-files extracted text refs require an open-files resolver API. Ingest an open-files manifest with extracted_text or an extracted_text_ref using file://, s3://, or https://.");let i=ye(e);return{text:(await Bk(i,r,n)).text,contentSource:"extracted_text_ref"}}async function $D(e){let r=await Ru({dbPath:e.dbPath,sourceRef:e.sourceRef,purpose:e.purpose??"knowledge_index",limit:100,safetyPolicy:e.safetyPolicy,now:e.now});if(!r.resolved)throw Error("Open-files source is not in the local knowledge catalog. Ingest an open-files manifest first or use the open-files resolver API.");if(r.revision?.extracted_text_uri&&!r.content.text_available){let i=await fD(r.revision.extracted_text_uri,e.config,e.safetyPolicy);return{text:i.text,contentSource:i.contentSource,title:r.source?.title??null,mime:r.content.mime,size:i.text.length,hash:r.revision.hash??qn(i.text),revision:r.revision.revision,extractedTextRef:r.revision.extracted_text_uri,metadata:r.source?.metadata??{},permissions:r.source?.permissions??{mode:"read_only"}}}if(r.chunks.length===0)throw Error("Open-files source has no extracted text chunks yet. Ingest an open-files manifest with extracted_text or extracted_text_ref first.");let n=r.chunks.map((i)=>i.text).join(` -`);return{text:t,contentSource:"catalog_chunks",title:r.source?.title??null,mime:r.content.mime,size:t.length,hash:r.revision?.hash??Mt(t),revision:r.revision?.revision??null,extractedTextRef:r.revision?.extracted_text_uri??null,metadata:r.source?.metadata??{},permissions:r.source?.permissions??{mode:"read_only"}}}function fU(e,r,t,i){let n=t.hash??Mt(t.text),_={...t.metadata,source_ref:e,content_source:t.contentSource,read_only:!0},u={source_ref:e,name:t.title??A_(r),mime:t.mime??"text/plain",size:t.size??t.text.length,hash:n,revision:t.revision??n,status:"active",updated_at:new Date().toISOString(),permissions:{mode:"read_only",allowed_purposes:[i],...t.permissions},metadata:_,extracted_text_ref:t.extractedTextRef,extracted_text:t.text};if(r.kind==="open-files"){if(r.entity==="file")u.file_id=r.id;if(r.entity==="source")u.source_id=r.id,u.path=r.path}if(r.kind==="file")u.path=r.path;if(r.kind==="s3")u.path=r.key;if(r.kind==="web")u.url=r.url;return u}async function X_(e){let r=e.purpose??"knowledge_index",t=Xe(e.sourceRef),i=t.kind==="open-files"?await TU(e):await Yv(t,e.config,e.safetyPolicy),n=fU(e.sourceRef,t,i,r);return{...await Qr({dbPath:e.dbPath,items:[n],sourceLabel:e.sourceRef,readAction:"source_ref_ingest_read",safetyPolicy:e.safetyPolicy,now:e.now}),source_ref:e.sourceRef,content_source:i.contentSource,read_only:!0,hash:String(n.hash)}}function y_(e,r){return`${e}_${$U("sha256").update(r).digest("hex").slice(0,20)}`}function NU(e){return e.normalize("NFKC").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"note"}function Lo(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function kU(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function Bv(e){return Array.from(new Set((e??[]).map((r)=>r.trim()).filter(Boolean)))}function IU(e){let r=e.path?.trim()||`wiki/notes/${NU(e.title)}.md`,t=r.replace(/\\/g,"/");if(!t.startsWith("wiki/notes/")||!t.endsWith(".md"))throw Error("App wiki note paths must be relative wiki/notes/*.md artifact keys.");if(t.startsWith("/")||t.split("/").some((i)=>i===".."||i==="."))throw Error(`Invalid app wiki note path: ${r}`);return t}function SU(e){let r=[`# ${e.title}`,"",e.content.trim(),"",`Updated: ${e.now}`];if(e.tags.length>0)r.push("","Tags:",...e.tags.map((t)=>`- ${t}`));if(e.sourceRefs.length>0)r.push("","Source refs:",...e.sourceRefs.map((t)=>`- ${t}`));return r.push(""),r.join(` -`)}async function Hv(e,r){let t=await e.put(r);return{key:t.key,uri:t.uri,kind:r.key.startsWith("logs/")?"log":"wiki_page",content_type:r.content_type,modified_at:t.modified_at,...Jt(r.body),metadata:{...r.metadata??{}}}}async function OU(e,r,t){let i=String(t.getUTCFullYear()),n=String(t.getUTCMonth()+1).padStart(2,"0"),_=String(t.getUTCDate()).padStart(2,"0"),u=`logs/${i}/${n}/${_}.jsonl`,c="";try{c=await e.getText(u)}catch{c=""}return Hv(e,{key:u,body:`${c}${JSON.stringify(r)} -`,content_type:"application/x-ndjson",metadata:{provenance:Me({generated_from:String(r.event??"app_wiki_log"),artifact_key:u})}})}function LU(e){return{...e.metadata??{},app_wiki:!0,note:!0,artifact_key:e.path,tags:e.tags,source_refs:e.sourceRefs,provenance:e.provenance}}function bo(e){let r=Lo(e.metadata_json);return{id:e.id,path:e.path,title:e.title,artifact_uri:e.artifact_uri,content_hash:e.content_hash,tags:Array.isArray(r.tags)?r.tags.filter((t)=>typeof t==="string"):[],source_refs:Array.isArray(r.source_refs)?r.source_refs.filter((t)=>typeof t==="string"):[],created_at:e.created_at,updated_at:e.updated_at}}function bU(e,r){return r.map((t)=>{let i=e.query(`SELECT +`);return{text:n,contentSource:"catalog_chunks",title:r.source?.title??null,mime:r.content.mime,size:n.length,hash:r.revision?.hash??qn(n),revision:r.revision?.revision??null,extractedTextRef:r.revision?.extracted_text_uri??null,metadata:r.source?.metadata??{},permissions:r.source?.permissions??{mode:"read_only"}}}function vD(e,r,n,i){let t=n.hash??qn(n.text),u={...n.metadata,source_ref:e,content_source:n.contentSource,read_only:!0},_={source_ref:e,name:n.title??Au(r),mime:n.mime??"text/plain",size:n.size??n.text.length,hash:t,revision:n.revision??t,status:"active",updated_at:new Date().toISOString(),permissions:{mode:"read_only",allowed_purposes:[i],...n.permissions},metadata:u,extracted_text_ref:n.extractedTextRef,extracted_text:n.text};if(r.kind==="open-files"){if(r.entity==="file")_.file_id=r.id;if(r.entity==="source")_.source_id=r.id,_.path=r.path}if(r.kind==="file")_.path=r.path;if(r.kind==="s3")_.path=r.key;if(r.kind==="web")_.url=r.url;return _}async function yu(e){let r=e.purpose??"knowledge_index",n=ye(e.sourceRef),i=n.kind==="open-files"?await $D(e):await Bk(n,e.config,e.safetyPolicy),t=vD(e.sourceRef,n,i,r);return{...await Qr({dbPath:e.dbPath,items:[t],sourceLabel:e.sourceRef,readAction:"source_ref_ingest_read",safetyPolicy:e.safetyPolicy,now:e.now}),source_ref:e.sourceRef,content_source:i.contentSource,read_only:!0,hash:String(t.hash)}}function ju(e,r){return`${e}_${ED("sha256").update(r).digest("hex").slice(0,20)}`}function TD(e){return e.normalize("NFKC").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"note"}function Ig(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function SD(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function Ck(e){return Array.from(new Set((e??[]).map((r)=>r.trim()).filter(Boolean)))}function ND(e){let r=e.path?.trim()||`wiki/notes/${TD(e.title)}.md`,n=r.replace(/\\/g,"/");if(!n.startsWith("wiki/notes/")||!n.endsWith(".md"))throw Error("App wiki note paths must be relative wiki/notes/*.md artifact keys.");if(n.startsWith("/")||n.split("/").some((i)=>i===".."||i==="."))throw Error(`Invalid app wiki note path: ${r}`);return n}function bD(e){let r=[`# ${e.title}`,"",e.content.trim(),"",`Updated: ${e.now}`];if(e.tags.length>0)r.push("","Tags:",...e.tags.map((n)=>`- ${n}`));if(e.sourceRefs.length>0)r.push("","Source refs:",...e.sourceRefs.map((n)=>`- ${n}`));return r.push(""),r.join(` +`)}async function Yk(e,r){let n=await e.put(r);return{key:n.key,uri:n.uri,kind:r.key.startsWith("logs/")?"log":"wiki_page",content_type:r.content_type,modified_at:n.modified_at,...Wn(r.body),metadata:{...r.metadata??{}}}}async function ID(e,r,n){let i=String(n.getUTCFullYear()),t=String(n.getUTCMonth()+1).padStart(2,"0"),u=String(n.getUTCDate()).padStart(2,"0"),_=`logs/${i}/${t}/${u}.jsonl`,c="";try{c=await e.getText(_)}catch{c=""}return Yk(e,{key:_,body:`${c}${JSON.stringify(r)} +`,content_type:"application/x-ndjson",metadata:{provenance:Me({generated_from:String(r.event??"app_wiki_log"),artifact_key:_})}})}function mD(e){return{...e.metadata??{},app_wiki:!0,note:!0,artifact_key:e.path,tags:e.tags,source_refs:e.sourceRefs,provenance:e.provenance}}function mg(e){let r=Ig(e.metadata_json);return{id:e.id,path:e.path,title:e.title,artifact_uri:e.artifact_uri,content_hash:e.content_hash,tags:Array.isArray(r.tags)?r.tags.filter((n)=>typeof n==="string"):[],source_refs:Array.isArray(r.source_refs)?r.source_refs.filter((n)=>typeof n==="string"):[],created_at:e.created_at,updated_at:e.updated_at}}function wD(e,r){return r.map((n)=>{let i=e.query(`SELECT s.uri AS source_uri, c.id AS chunk_id, c.text, @@ -552,13 +552,13 @@ VALUES (8, datetime('now')); LEFT JOIN chunks c ON c.source_revision_id = sr.id WHERE s.uri = ? OR s.metadata_json LIKE ? ORDER BY sr.created_at DESC, c.ordinal ASC - LIMIT 1`).get(t,`%${t}%`),n=Lo(i?.metadata_json);return{source_ref:t,source_uri:i?.source_uri??t,chunk_id:i?.chunk_id??null,quote:i?.text?i.text.replace(/\s+/g," ").slice(0,240):null,start_offset:i?.start_offset??null,end_offset:i?.end_offset??null,metadata:{source_ref:t,revision:i?.revision??n.revision,hash:i?.hash??n.hash}}})}function UU(e,r,t,i){e.run("DELETE FROM citations WHERE wiki_page_id = ?",[r]);let n=bU(e,t);for(let _ of n)e.run(`INSERT INTO citations (id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[y_("cit",`${r}\x00${_.source_uri}\x00${_.chunk_id??vU()}`),r,_.chunk_id,_.source_uri,_.quote,_.start_offset,_.end_offset,JSON.stringify(_.metadata),i]);return n.length}function mU(e,r){e.run(`INSERT INTO knowledge_indexes (id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at) + LIMIT 1`).get(n,`%${n}%`),t=Ig(i?.metadata_json);return{source_ref:n,source_uri:i?.source_uri??n,chunk_id:i?.chunk_id??null,quote:i?.text?i.text.replace(/\s+/g," ").slice(0,240):null,start_offset:i?.start_offset??null,end_offset:i?.end_offset??null,metadata:{source_ref:n,revision:i?.revision??t.revision,hash:i?.hash??t.hash}}})}function DD(e,r,n,i){e.run("DELETE FROM citations WHERE wiki_page_id = ?",[r]);let t=wD(e,n);for(let u of t)e.run(`INSERT INTO citations (id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[ju("cit",`${r}\x00${u.source_uri}\x00${u.chunk_id??kD()}`),r,u.chunk_id,u.source_uri,u.quote,u.start_offset,u.end_offset,JSON.stringify(u.metadata),i]);return t.length}function UD(e,r){e.run(`INSERT INTO knowledge_indexes (id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(kind, name, shard_key) DO UPDATE SET artifact_uri = excluded.artifact_uri, metadata_json = excluded.metadata_json, - updated_at = excluded.updated_at`,[y_("idx",`app-wiki-note\x00${r.path}`),"app_wiki_note",r.title,r.artifactUri,r.path,JSON.stringify({artifact_key:r.path,content_hash:r.contentHash,tags:r.tags,source_refs:r.sourceRefs}),r.now,r.now])}function DU(e,r){e.run(`INSERT INTO wiki_pages (id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at) + updated_at = excluded.updated_at`,[ju("idx",`app-wiki-note\x00${r.path}`),"app_wiki_note",r.title,r.artifactUri,r.path,JSON.stringify({artifact_key:r.path,content_hash:r.contentHash,tags:r.tags,source_refs:r.sourceRefs}),r.now,r.now])}function hD(e,r){e.run(`INSERT INTO wiki_pages (id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(path) DO UPDATE SET title = excluded.title, @@ -566,22 +566,22 @@ VALUES (8, datetime('now')); content_hash = excluded.content_hash, status = excluded.status, metadata_json = excluded.metadata_json, - updated_at = excluded.updated_at`,[r.pageId,r.path,r.title,r.artifactUri,r.contentHash,"active",JSON.stringify(r.metadata),r.now,r.now]);let t=e.query("SELECT id FROM chunks WHERE wiki_page_id = ?").all(r.pageId);for(let n of t)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[n.id]);e.run("DELETE FROM chunks WHERE wiki_page_id = ?",[r.pageId]);let i=y_("chk",`${r.pageId}\x00${r.contentHash}`);e.run(`INSERT INTO chunks (id, wiki_page_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[i,r.pageId,"wiki",0,r.body,kU(r.body),0,r.body.length,JSON.stringify({...r.metadata,artifact_uri:r.artifactUri,content_hash:r.contentHash}),r.now]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[i,r.body,r.title,r.artifactUri])}function Jn(e){if(e.scope==="global"&&e.allowGlobal!==!0)throw Error("Global app-wiki writes require allowGlobal=true or CLI --allow-global.");if(e.workspace.home.includes("/.husna/")||e.workspace.home.endsWith("/.husna"))throw Error(`Refusing app-wiki writes to legacy .husna path: ${e.workspace.home}`);if(e.workspace.home.includes("/.hasna/apps/knowledge"))throw Error(`Refusing app-wiki writes to legacy .hasna/apps/knowledge path: ${e.workspace.home}`);if(e.safetyPolicy)Er(e.workspace.knowledgeDbPath,e.safetyPolicy)}async function Vv(e){Jn(e);let r=x(e.workspace.knowledgeDbPath),t=A(e.workspace.knowledgeDbPath);try{re(t,{event_type:"write",action:"app_wiki_init",target_uri:e.workspace.home,decision:"allow",metadata:{scope:e.scope,store_type:e.store.type,app_path:".hasna/knowledge"},created_at:(e.now??new Date).toISOString()})}finally{t.close()}return{ok:!0,scope:e.scope,workspace_home:e.workspace.home,knowledge_db_path:e.workspace.knowledgeDbPath,schema_version:r.schema_version,store_type:e.store.type,global_write_allowed:e.scope==="global"&&e.allowGlobal===!0,message:`Initialized app wiki scope at ${e.workspace.home}`}}async function Qv(e){Jn(e);let r=e.now??new Date,t=r.toISOString(),i=Bv(e.tags),n=Bv(e.sourceRefs),_=IU(e),u=SU({title:e.title,content:e.content,tags:i,sourceRefs:n,now:t}),c=Me({generated_from:"app_wiki_note",artifact_key:_,source_refs:n}),d=await Hv(e.store,{key:_,body:u,content_type:"text/markdown",metadata:{generated_from:"app_wiki_note",provenance:c,scope:e.scope,tags:i.join(","),source_refs:n.join(",")}}),o=await OU(e.store,{ts:t,event:"app_wiki_note_written",page_key:_,source_refs:n,tags:i},r);x(e.workspace.knowledgeDbPath);let a=A(e.workspace.knowledgeDbPath);try{let g=y_("wiki",_),E=LU({path:_,tags:i,sourceRefs:n,provenance:c,metadata:e.metadata});lr(a,[d,o],r),DU(a,{pageId:g,path:_,title:e.title,artifactUri:d.uri,contentHash:d.hash??"",body:u,metadata:E,now:t});let l=UU(a,g,n,t);mU(a,{title:e.title,path:_,artifactUri:d.uri,contentHash:d.hash??"",tags:i,sourceRefs:n,now:t}),re(a,{event_type:"write",action:"app_wiki_note_write",target_uri:d.uri,decision:"allow",metadata:{scope:e.scope,path:_,source_refs:n,tags:i},created_at:t});let T=a.query("SELECT id, path, title, artifact_uri, content_hash, metadata_json, created_at, updated_at FROM wiki_pages WHERE id = ?").get(g);if(!T)throw Error(`Failed to write app wiki note: ${_}`);return{ok:!0,scope:e.scope,workspace_home:e.workspace.home,note:bo(T),artifact_uri:d.uri,content_hash:d.hash??"",citations_written:l,chunks_written:1,storage_objects_written:2,message:`Wrote app wiki note ${_}`}}finally{a.close()}}function Zv(e){let r=Math.max(1,Math.min(e.limit??50,200));if(!e.dbPath)return[];x(e.dbPath);let t=A(e.dbPath);try{return t.query(`SELECT id, path, title, artifact_uri, content_hash, metadata_json, created_at, updated_at + updated_at = excluded.updated_at`,[r.pageId,r.path,r.title,r.artifactUri,r.contentHash,"active",JSON.stringify(r.metadata),r.now,r.now]);let n=e.query("SELECT id FROM chunks WHERE wiki_page_id = ?").all(r.pageId);for(let t of n)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[t.id]);e.run("DELETE FROM chunks WHERE wiki_page_id = ?",[r.pageId]);let i=ju("chk",`${r.pageId}\x00${r.contentHash}`);e.run(`INSERT INTO chunks (id, wiki_page_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[i,r.pageId,"wiki",0,r.body,SD(r.body),0,r.body.length,JSON.stringify({...r.metadata,artifact_uri:r.artifactUri,content_hash:r.contentHash}),r.now]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[i,r.body,r.title,r.artifactUri])}function zt(e){if(e.scope==="global"&&e.allowGlobal!==!0)throw Error("Global app-wiki writes require allowGlobal=true or CLI --allow-global.");if(e.workspace.home.includes("/.husna/")||e.workspace.home.endsWith("/.husna"))throw Error(`Refusing app-wiki writes to legacy .husna path: ${e.workspace.home}`);if(e.workspace.home.includes("/.hasna/apps/knowledge"))throw Error(`Refusing app-wiki writes to legacy .hasna/apps/knowledge path: ${e.workspace.home}`);if(e.safetyPolicy)ar(e.workspace.knowledgeDbPath,e.safetyPolicy)}async function Vk(e){zt(e);let r=P(e.workspace.knowledgeDbPath),n=A(e.workspace.knowledgeDbPath);try{re(n,{event_type:"write",action:"app_wiki_init",target_uri:e.workspace.home,decision:"allow",metadata:{scope:e.scope,store_type:e.store.type,app_path:".hasna/knowledge"},created_at:(e.now??new Date).toISOString()})}finally{n.close()}return{ok:!0,scope:e.scope,workspace_home:e.workspace.home,knowledge_db_path:e.workspace.knowledgeDbPath,schema_version:r.schema_version,store_type:e.store.type,global_write_allowed:e.scope==="global"&&e.allowGlobal===!0,message:`Initialized app wiki scope at ${e.workspace.home}`}}async function Qk(e){zt(e);let r=e.now??new Date,n=r.toISOString(),i=Ck(e.tags),t=Ck(e.sourceRefs),u=ND(e),_=bD({title:e.title,content:e.content,tags:i,sourceRefs:t,now:n}),c=Me({generated_from:"app_wiki_note",artifact_key:u,source_refs:t}),d=await Yk(e.store,{key:u,body:_,content_type:"text/markdown",metadata:{generated_from:"app_wiki_note",provenance:c,scope:e.scope,tags:i.join(","),source_refs:t.join(",")}}),g=await ID(e.store,{ts:n,event:"app_wiki_note_written",page_key:u,source_refs:t,tags:i},r);P(e.workspace.knowledgeDbPath);let f=A(e.workspace.knowledgeDbPath);try{let o=ju("wiki",u),a=mD({path:u,tags:i,sourceRefs:t,provenance:c,metadata:e.metadata});lr(f,[d,g],r),hD(f,{pageId:o,path:u,title:e.title,artifactUri:d.uri,contentHash:d.hash??"",body:_,metadata:a,now:n});let l=DD(f,o,t,n);UD(f,{title:e.title,path:u,artifactUri:d.uri,contentHash:d.hash??"",tags:i,sourceRefs:t,now:n}),re(f,{event_type:"write",action:"app_wiki_note_write",target_uri:d.uri,decision:"allow",metadata:{scope:e.scope,path:u,source_refs:t,tags:i},created_at:n});let $=f.query("SELECT id, path, title, artifact_uri, content_hash, metadata_json, created_at, updated_at FROM wiki_pages WHERE id = ?").get(o);if(!$)throw Error(`Failed to write app wiki note: ${u}`);return{ok:!0,scope:e.scope,workspace_home:e.workspace.home,note:mg($),artifact_uri:d.uri,content_hash:d.hash??"",citations_written:l,chunks_written:1,storage_objects_written:2,message:`Wrote app wiki note ${u}`}}finally{f.close()}}function Zk(e){let r=Math.max(1,Math.min(e.limit??50,200));if(!e.dbPath)return[];P(e.dbPath);let n=A(e.dbPath);try{return n.query(`SELECT id, path, title, artifact_uri, content_hash, metadata_json, created_at, updated_at FROM wiki_pages WHERE status = 'active' AND path LIKE 'wiki/notes/%' AND metadata_json LIKE '%"app_wiki":true%' ORDER BY updated_at DESC, created_at DESC - LIMIT ?`).all(r).map(bo)}finally{t.close()}}async function sv(e){x(e.dbPath);let r=A(e.dbPath);try{let t=r.query(`SELECT id, path, title, artifact_uri, content_hash, metadata_json, created_at, updated_at + LIMIT ?`).all(r).map(mg)}finally{n.close()}}async function sk(e){P(e.dbPath);let r=A(e.dbPath);try{let n=r.query(`SELECT id, path, title, artifact_uri, content_hash, metadata_json, created_at, updated_at FROM wiki_pages WHERE (id = ? OR path = ?) AND path LIKE 'wiki/notes/%' - AND metadata_json LIKE '%"app_wiki":true%'`).get(e.id,e.id);if(!t)return null;let i=r.query(`SELECT id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at + AND metadata_json LIKE '%"app_wiki":true%'`).get(e.id,e.id);if(!n)return null;let i=r.query(`SELECT id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at FROM citations WHERE wiki_page_id = ? - ORDER BY created_at ASC`).all(t.id).map((_)=>({..._,metadata:Lo(_.metadata_json),metadata_json:void 0})),n=null;if(e.includeContent!==!1)try{n=await e.store.getText(t.path)}catch{n=null}return{ok:!0,note:bo(t),citations:i,content:n}}finally{r.close()}}async function pv(e){return Jn(e),X_({dbPath:e.workspace.knowledgeDbPath,sourceRef:e.sourceRef,purpose:e.purpose??"knowledge_index",config:e.config,safetyPolicy:e.safetyPolicy})}import{randomUUID as bN}from"crypto";import{randomUUID as RU}from"crypto";var Uo={openai:{api_key_env:"OPENAI_API_KEY",default_model:"gpt-5.2"},anthropic:{api_key_env:"ANTHROPIC_API_KEY",default_model:"claude-sonnet-4-6"},deepseek:{api_key_env:"DEEPSEEK_API_KEY",default_model:"deepseek-chat"}},hU={openai:{text_generation:!0,structured_output:!0,tool_usage:!0,tool_streaming:!0,image_input:!0,native_web_search:!0,reasoning:!0,embeddings:!0},anthropic:{text_generation:!0,structured_output:!0,tool_usage:!0,tool_streaming:!0,image_input:!0,native_web_search:!1,reasoning:!0,embeddings:!1},deepseek:{text_generation:!0,structured_output:!0,tool_usage:!0,tool_streaming:!0,image_input:!1,native_web_search:!1,reasoning:!0,embeddings:!1}},wU={default:"openai:gpt-5.2",fast:"openai:gpt-5-mini",reasoning:"anthropic:claude-opus-4-6",sonnet:"anthropic:claude-sonnet-4-6",deepseek:"deepseek:deepseek-chat","deepseek-reasoning":"deepseek:deepseek-reasoner"};function rN(e){return e?.providers??{}}function ar(e,r){let t=rN(e)[r]??{};return{...Uo[r],...t}}function tN(e){let r=rN(e);return{...wU,...r.default_model?{default:r.default_model}:{},...r.aliases??{}}}function le(e){let[r,...t]=e.split(":"),i=t.join(":");if(r!=="openai"&&r!=="anthropic"&&r!=="deepseek")throw Error(`Unsupported AI provider: ${r}`);if(!i)throw Error(`Invalid model ref: ${e}. Expected provider:model.`);return{provider:r,model:i}}function se(e,r){return tN(r)[e]??e}function mo(e){let r=tN(e);return Object.entries(r).map(([t,i])=>{let n=le(i);return{alias:t,model_ref:i,provider:n.provider,model:n.model,default:t==="default",capabilities:hU[n.provider]}})}function nN(e,r=process.env){return Object.keys(Uo).map((t)=>{let i=ar(e,t),n=Boolean(r[i.api_key_env]);return{provider:t,api_key_env:i.api_key_env,configured:n,source:n?"env":"missing",base_url:i.base_url??null,default_model:i.default_model}})}function iN(e,r=process.env){return{default_model:se("default",e),providers:nN(e,r),models:mo(e)}}function sr(e,r,t=process.env){let i=nN(r,t).find((n)=>n.provider===e);if(!i)throw Error(`Unsupported AI provider: ${e}`);if(!i.configured)throw Error(`Missing ${i.api_key_env} for ${e}. Set the env var to use this provider.`);return i}async function AU(e){if(e==="openai"){let{createOpenAI:t}=await import("@ai-sdk/openai");return t}if(e==="anthropic"){let{createAnthropic:t}=await import("@ai-sdk/anthropic");return t}let{createDeepSeek:r}=await import("@ai-sdk/deepseek");return r}async function XU(e={}){let{createProviderRegistry:r}=await import("ai"),t=e.env??process.env,i={};for(let n of Object.keys(Uo)){let _=ar(e.config,n),u=t[_.api_key_env];if(!u)continue;let c=e.factories?.[n]??await AU(n);i[n]=c({apiKey:u,baseURL:_.base_url})}return r(i)}async function x_(e,r={}){let t=se(e,r.config),i=le(t);return sr(i.provider,r.config,r.env),(await XU(r)).languageModel(t)}function eN(e,r){for(let t of r){let i=e[t];if(typeof i==="number"&&Number.isFinite(i))return i}return 0}function Ct(e){let r=e.usage??{};return{provider:e.provider,model:e.model,input_tokens:eN(r,["inputTokens","promptTokens","input_tokens","prompt_tokens"]),output_tokens:eN(r,["outputTokens","completionTokens","output_tokens","completion_tokens"]),cost_usd:e.costUsd??0,metadata:{usage:r,provider_metadata:e.providerMetadata??{}}}}function qt(e,r){let t=`usage_${RU()}`;return e.run(`INSERT INTO provider_usage (id, run_id, provider, model, input_tokens, output_tokens, cost_usd, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[t,r.run_id??null,r.provider,r.model,r.input_tokens,r.output_tokens,r.cost_usd,JSON.stringify(r.metadata),r.created_at??new Date().toISOString()]),t}import{createHash as rm}from"crypto";import{existsSync as JU,readFileSync as zU}from"fs";import{createHash as cN}from"crypto";var yU="openai:text-embedding-3-small",dN=1536;function j_(e){return e?.embeddings??{}}function _N(e,r){return`${e}_${cN("sha256").update(r).digest("hex").slice(0,20)}`}function Ro(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function Ce(e,r){for(let t of r){let i=e[t];if(typeof i==="string"&&i.length>0)return i}return null}function uN(e,r){for(let t of r){let i=e[t];if(typeof i==="number"&&Number.isFinite(i))return i}return null}function Do(e){return Math.sqrt(e.reduce((r,t)=>r+t*t,0))}function xU(e,r,t=Do(r)){let i=Do(e);if(i===0||t===0)return 0;let n=Math.min(e.length,r.length),_=0;for(let u=0;u{let _=t[n%t.length]/255;return Number((_*2-1).toFixed(6))})}async function PU(e,r,t=process.env){sr("openai",r,t);let i=ar(r,"openai"),{createOpenAI:n}=await import("@ai-sdk/openai"),_=n({apiKey:t[i.api_key_env],baseURL:i.base_url});if(_.embeddingModel)return _.embeddingModel(e);if(_.textEmbedding)return _.textEmbedding(e);if(_.textEmbeddingModel)return _.textEmbeddingModel(e);throw Error("OpenAI provider does not expose an embedding model factory.")}function pr(e,r){if(!e||e==="default"||e==="embedding")return j_(r).default_model??yU;return e}async function oN(e,r={}){let t=pr(r.modelRef,r.config),i=le(t);if(i.provider!=="openai")throw Error(`Embedding provider ${i.provider} is not supported yet. Use openai:text-embedding-3-small.`);let n=r.dimensions??j_(r.config).dimensions??dN;if(r.fake)return{provider:i.provider,model:i.model,dimensions:n,vectors:e.map((o)=>jU(o,n)),usage:{input_tokens:e.reduce((o,a)=>o+Math.max(1,Math.ceil(a.split(/\s+/).filter(Boolean).length*1.25)),0)}};let{embedMany:_}=await import("ai"),u=await PU(i.model,r.config,r.env),c=await _({model:u,values:e,maxParallelCalls:r.maxParallelCalls??j_(r.config).max_parallel_calls,providerOptions:{openai:{dimensions:n}}}),d=c.embeddings;return{provider:i.provider,model:i.model,dimensions:d[0]?.length??n,vectors:d,usage:{input_tokens:c.usage?.tokens??0}}}function FU(e,r){if(r.sourceRevisionId)return e.query(`SELECT + ORDER BY created_at ASC`).all(n.id).map((u)=>({...u,metadata:Ig(u.metadata_json),metadata_json:void 0})),t=null;if(e.includeContent!==!1)try{t=await e.store.getText(n.path)}catch{t=null}return{ok:!0,note:mg(n),citations:i,content:t}}finally{r.close()}}async function pk(e){return zt(e),yu({dbPath:e.workspace.knowledgeDbPath,sourceRef:e.sourceRef,purpose:e.purpose??"knowledge_index",config:e.config,safetyPolicy:e.safetyPolicy})}import{randomUUID as wT}from"crypto";import{randomUUID as OD}from"crypto";var wg={openai:{api_key_env:"OPENAI_API_KEY",default_model:"gpt-5.2"},anthropic:{api_key_env:"ANTHROPIC_API_KEY",default_model:"claude-sonnet-4-6"},deepseek:{api_key_env:"DEEPSEEK_API_KEY",default_model:"deepseek-chat"}},RD={openai:{text_generation:!0,structured_output:!0,tool_usage:!0,tool_streaming:!0,image_input:!0,native_web_search:!0,reasoning:!0,embeddings:!0},anthropic:{text_generation:!0,structured_output:!0,tool_usage:!0,tool_streaming:!0,image_input:!0,native_web_search:!1,reasoning:!0,embeddings:!1},deepseek:{text_generation:!0,structured_output:!0,tool_usage:!0,tool_streaming:!0,image_input:!1,native_web_search:!1,reasoning:!0,embeddings:!1}},LD={default:"openai:gpt-5.2",fast:"openai:gpt-5-mini",reasoning:"anthropic:claude-opus-4-6",sonnet:"anthropic:claude-sonnet-4-6",deepseek:"deepseek:deepseek-chat","deepseek-reasoning":"deepseek:deepseek-reasoner"};function rT(e){return e?.providers??{}}function fr(e,r){let n=rT(e)[r]??{};return{...wg[r],...n}}function nT(e){let r=rT(e);return{...LD,...r.default_model?{default:r.default_model}:{},...r.aliases??{}}}function le(e){let[r,...n]=e.split(":"),i=n.join(":");if(r!=="openai"&&r!=="anthropic"&&r!=="deepseek")throw Error(`Unsupported AI provider: ${r}`);if(!i)throw Error(`Invalid model ref: ${e}. Expected provider:model.`);return{provider:r,model:i}}function se(e,r){return nT(r)[e]??e}function Dg(e){let r=nT(e);return Object.entries(r).map(([n,i])=>{let t=le(i);return{alias:n,model_ref:i,provider:t.provider,model:t.model,default:n==="default",capabilities:RD[t.provider]}})}function tT(e,r=process.env){return Object.keys(wg).map((n)=>{let i=fr(e,n),t=Boolean(r[i.api_key_env]);return{provider:n,api_key_env:i.api_key_env,configured:t,source:t?"env":"missing",base_url:i.base_url??null,default_model:i.default_model}})}function iT(e,r=process.env){return{default_model:se("default",e),providers:tT(e,r),models:Dg(e)}}function sr(e,r,n=process.env){let i=tT(r,n).find((t)=>t.provider===e);if(!i)throw Error(`Unsupported AI provider: ${e}`);if(!i.configured)throw Error(`Missing ${i.api_key_env} for ${e}. Set the env var to use this provider.`);return i}async function AD(e){if(e==="openai"){let{createOpenAI:n}=await import("@ai-sdk/openai");return n}if(e==="anthropic"){let{createAnthropic:n}=await import("@ai-sdk/anthropic");return n}let{createDeepSeek:r}=await import("@ai-sdk/deepseek");return r}async function yD(e={}){let{createProviderRegistry:r}=await import("ai"),n=e.env??process.env,i={};for(let t of Object.keys(wg)){let u=fr(e.config,t),_=n[u.api_key_env];if(!_)continue;let c=e.factories?.[t]??await AD(t);i[t]=c({apiKey:_,baseURL:u.base_url})}return r(i)}async function Pu(e,r={}){let n=se(e,r.config),i=le(n);return sr(i.provider,r.config,r.env),(await yD(r)).languageModel(n)}function eT(e,r){for(let n of r){let i=e[n];if(typeof i==="number"&&Number.isFinite(i))return i}return 0}function Gn(e){let r=e.usage??{};return{provider:e.provider,model:e.model,input_tokens:eT(r,["inputTokens","promptTokens","input_tokens","prompt_tokens"]),output_tokens:eT(r,["outputTokens","completionTokens","output_tokens","completion_tokens"]),cost_usd:e.costUsd??0,metadata:{usage:r,provider_metadata:e.providerMetadata??{}}}}function Hn(e,r){let n=`usage_${OD()}`;return e.run(`INSERT INTO provider_usage (id, run_id, provider, model, input_tokens, output_tokens, cost_usd, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[n,r.run_id??null,r.provider,r.model,r.input_tokens,r.output_tokens,r.cost_usd,JSON.stringify(r.metadata),r.created_at??new Date().toISOString()]),n}import{createHash as rU}from"crypto";import{existsSync as zD,readFileSync as WD}from"fs";import{createHash as cT}from"crypto";var jD="openai:text-embedding-3-small",dT=1536;function xu(e){return e?.embeddings??{}}function uT(e,r){return`${e}_${cT("sha256").update(r).digest("hex").slice(0,20)}`}function hg(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function qe(e,r){for(let n of r){let i=e[n];if(typeof i==="string"&&i.length>0)return i}return null}function _T(e,r){for(let n of r){let i=e[n];if(typeof i==="number"&&Number.isFinite(i))return i}return null}function Ug(e){return Math.sqrt(e.reduce((r,n)=>r+n*n,0))}function PD(e,r,n=Ug(r)){let i=Ug(e);if(i===0||n===0)return 0;let t=Math.min(e.length,r.length),u=0;for(let _=0;_{let u=n[t%n.length]/255;return Number((u*2-1).toFixed(6))})}async function XD(e,r,n=process.env){sr("openai",r,n);let i=fr(r,"openai"),{createOpenAI:t}=await import("@ai-sdk/openai"),u=t({apiKey:n[i.api_key_env],baseURL:i.base_url});if(u.embeddingModel)return u.embeddingModel(e);if(u.textEmbedding)return u.textEmbedding(e);if(u.textEmbeddingModel)return u.textEmbeddingModel(e);throw Error("OpenAI provider does not expose an embedding model factory.")}function pr(e,r){if(!e||e==="default"||e==="embedding")return xu(r).default_model??jD;return e}async function gT(e,r={}){let n=pr(r.modelRef,r.config),i=le(n);if(i.provider!=="openai")throw Error(`Embedding provider ${i.provider} is not supported yet. Use openai:text-embedding-3-small.`);let t=r.dimensions??xu(r.config).dimensions??dT;if(r.fake)return{provider:i.provider,model:i.model,dimensions:t,vectors:e.map((g)=>xD(g,t)),usage:{input_tokens:e.reduce((g,f)=>g+Math.max(1,Math.ceil(f.split(/\s+/).filter(Boolean).length*1.25)),0)}};let{embedMany:u}=await import("ai"),_=await XD(i.model,r.config,r.env),c=await u({model:_,values:e,maxParallelCalls:r.maxParallelCalls??xu(r.config).max_parallel_calls,providerOptions:{openai:{dimensions:t}}}),d=c.embeddings;return{provider:i.provider,model:i.model,dimensions:d[0]?.length??t,vectors:d,usage:{input_tokens:c.usage?.tokens??0}}}function KD(e,r){if(r.sourceRevisionId)return e.query(`SELECT c.id, c.text, c.token_count, @@ -619,14 +619,14 @@ VALUES (8, datetime('now')); ON v.chunk_id = c.id AND v.provider = ? AND v.model = ? WHERE v.id IS NULL ORDER BY c.created_at ASC, c.ordinal ASC - LIMIT ?`).all(r.provider,r.model,r.limit)}function KU(e){let r=Ro(e.metadata_json),t=r.provenance;if(t&&typeof t==="object"&&!Array.isArray(t))return t;return mr({source_ref:Ce(r,["source_ref"]),source_uri:e.source_uri??Ce(r,["source_uri"]),source_kind:e.source_kind??Ce(r,["source_kind"]),source_revision_id:e.source_revision_id,revision:e.revision??Ce(r,["revision"]),hash:e.hash??Ce(r,["hash"]),chunk_id:e.id,start_offset:e.start_offset??uN(r,["start_offset"]),end_offset:e.end_offset??uN(r,["end_offset"]),status:Ce(r,["status"]),resolver:"open-files-read-only"})}function WU(e,r,t,i){let n=e.prepare(` + LIMIT ?`).all(r.provider,r.model,r.limit)}function FD(e){let r=hg(e.metadata_json),n=r.provenance;if(n&&typeof n==="object"&&!Array.isArray(n))return n;return Ur({source_ref:qe(r,["source_ref"]),source_uri:e.source_uri??qe(r,["source_uri"]),source_kind:e.source_kind??qe(r,["source_kind"]),source_revision_id:e.source_revision_id,revision:e.revision??qe(r,["revision"]),hash:e.hash??qe(r,["hash"]),chunk_id:e.id,start_offset:e.start_offset??_T(r,["start_offset"]),end_offset:e.end_offset??_T(r,["end_offset"]),status:qe(r,["status"]),resolver:"open-files-read-only"})}function JD(e,r,n,i){let t=e.prepare(` INSERT INTO chunk_embeddings (id, chunk_id, provider, model, dimensions, vector_json, created_at) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(chunk_id, provider, model) DO UPDATE SET dimensions = excluded.dimensions, vector_json = excluded.vector_json, created_at = excluded.created_at - `),_=e.prepare(` + `),u=e.prepare(` INSERT INTO vector_index_entries ( id, chunk_id, source_revision_id, provider, model, dimensions, vector_json, vector_norm, source_uri, source_ref, revision, hash, start_offset, end_offset, token_count, status, @@ -648,10 +648,10 @@ VALUES (8, datetime('now')); status = excluded.status, metadata_json = excluded.metadata_json, updated_at = excluded.updated_at - `);return e.transaction(()=>{for(let c=0;co.text),e),d=A(e.dbPath);try{let o=WU(d,u,c,i);return{provider:c.provider,model:c.model,dimensions:c.dimensions,chunks_seen:u.length,chunks_embedded:u.length,embeddings_upserted:o,vector_entries_upserted:o,usage:c.usage}}finally{d.close()}}function gN(e){x(e);let r=A(e);try{let t=r.query("SELECT COUNT(*) AS n FROM chunk_embeddings").get()?.n??0,i=r.query("SELECT COUNT(*) AS n FROM vector_index_entries").get()?.n??0,n=r.query(`SELECT provider, model, dimensions, COUNT(*) AS entries, MAX(updated_at) AS updated_at + `);return e.transaction(()=>{for(let c=0;cg.text),e),d=A(e.dbPath);try{let g=JD(d,_,c,i);return{provider:c.provider,model:c.model,dimensions:c.dimensions,chunks_seen:_.length,chunks_embedded:_.length,embeddings_upserted:g,vector_entries_upserted:g,usage:c.usage}}finally{d.close()}}function oT(e){P(e);let r=A(e);try{let n=r.query("SELECT COUNT(*) AS n FROM chunk_embeddings").get()?.n??0,i=r.query("SELECT COUNT(*) AS n FROM vector_index_entries").get()?.n??0,t=r.query(`SELECT provider, model, dimensions, COUNT(*) AS entries, MAX(updated_at) AS updated_at FROM vector_index_entries GROUP BY provider, model, dimensions - ORDER BY provider, model`).all();return{total_embeddings:t,total_vector_entries:i,indexes:n}}finally{r.close()}}async function F_(e){let r=pr(e.modelRef,e.config),t=le(r),i=Math.max(1,Math.min(e.limit??10,100)),n=await oN([e.query],e),_=n.vectors[0]??[];x(e.dbPath);let u=A(e.dbPath);try{let d=u.query(`SELECT + ORDER BY provider, model`).all();return{total_embeddings:n,total_vector_entries:i,indexes:t}}finally{r.close()}}async function Ku(e){let r=pr(e.modelRef,e.config),n=le(r),i=Math.max(1,Math.min(e.limit??10,100)),t=await gT([e.query],e),u=t.vectors[0]??[];P(e.dbPath);let _=A(e.dbPath);try{let d=_.query(`SELECT v.chunk_id, c.text, v.vector_json, @@ -663,7 +663,7 @@ VALUES (8, datetime('now')); v.metadata_json FROM vector_index_entries v JOIN chunks c ON c.id = v.chunk_id - WHERE v.provider = ? AND v.model = ? AND v.status = 'active'`).all(t.provider,t.model).map((o)=>{let a=JSON.parse(o.vector_json),g=Ro(o.metadata_json),E=g.provenance&&typeof g.provenance==="object"&&!Array.isArray(g.provenance)?g.provenance:null;return{chunk_id:o.chunk_id,score:xU(_,a,o.vector_norm),text:o.text,source_uri:o.source_uri,source_ref:o.source_ref,revision:o.revision,hash:o.hash,provenance:E}}).sort((o,a)=>a.score-o.score).slice(0,i);return{provider:t.provider,model:t.model,dimensions:n.dimensions,query:e.query,results:d}}finally{u.close()}}function K_(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function me(e,r){for(let t of r){let i=e[t];if(typeof i==="string"&&i.length>0)return i}return null}function lN(e,r){for(let t of r){let i=e[t];if(typeof i==="number"&&Number.isFinite(i))return i}return null}function EN(e){return Array.from(new Set(e))}function aN(e){let r=e.normalize("NFKC").toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[];return EN(r.filter((t)=>t.length>0)).slice(0,16)}function MU(e){if(e.length===0)return null;return e.map((r)=>`${r}*`).join(" OR ")}function CU(e){return e.replace(/[\\%_]/g,(r)=>`\\${r}`)}function TN(e,r){return e.flatMap((t)=>Array.from({length:r},()=>`%${CU(t)}%`))}function qU(e,r){let t=Number.isFinite(e)?1/(1+Math.abs(e)):0,i=1/(1+r);return W_(Math.max(t,i))}function ho(e,r){if(r.length===0)return 0;let t=r.filter((i)=>e.includes(i)).length;if(t===0)return 0;return W_(Math.min(0.85,0.35+t/r.length*0.5))}function GU(e){return W_(Math.max(0,Math.min(1,(e+1)/2)))}function W_(e){return Number(e.toFixed(6))}function Yt(e,r){let t=e.keyword??0,i=e.semantic??0,n=e.catalog??0,_=r?.chunk_id?0.05:0;return W_(Math.min(1,t*0.55+i*0.4+n*0.35+_))}function wo(e){let r=e.provenance;return r&&typeof r==="object"&&!Array.isArray(r)?r:null}function YU(e){let r=K_(e.chunk_metadata_json),t=wo(r);if(t)return t;if(!e.source_revision_id&&!e.source_uri)return null;return mr({source_ref:me(r,["source_ref"]),source_uri:e.source_uri??me(r,["source_uri"]),source_kind:e.source_kind??me(r,["source_kind"]),source_revision_id:e.source_revision_id,revision:e.revision??me(r,["revision"]),hash:e.hash??me(r,["hash"]),chunk_id:e.chunk_id,start_offset:e.start_offset??lN(r,["start_offset"]),end_offset:e.end_offset??lN(r,["end_offset"]),status:me(r,["status"]),resolver:"open-files-read-only"})}function BU(e,r,t){if(!r)return[];return e.query(`SELECT + WHERE v.provider = ? AND v.model = ? AND v.status = 'active'`).all(n.provider,n.model).map((g)=>{let f=JSON.parse(g.vector_json),o=hg(g.metadata_json),a=o.provenance&&typeof o.provenance==="object"&&!Array.isArray(o.provenance)?o.provenance:null;return{chunk_id:g.chunk_id,score:PD(u,f,g.vector_norm),text:g.text,source_uri:g.source_uri,source_ref:g.source_ref,revision:g.revision,hash:g.hash,provenance:a}}).sort((g,f)=>f.score-g.score).slice(0,i);return{provider:n.provider,model:n.model,dimensions:t.dimensions,query:e.query,results:d}}finally{_.close()}}function Fu(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function Ue(e,r){for(let n of r){let i=e[n];if(typeof i==="string"&&i.length>0)return i}return null}function lT(e,r){for(let n of r){let i=e[n];if(typeof i==="number"&&Number.isFinite(i))return i}return null}function aT(e){return Array.from(new Set(e))}function fT(e){let r=e.normalize("NFKC").toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[];return aT(r.filter((n)=>n.length>0)).slice(0,16)}function MD(e){if(e.length===0)return null;return e.map((r)=>`${r}*`).join(" OR ")}function qD(e){return e.replace(/[\\%_]/g,(r)=>`\\${r}`)}function $T(e,r){return e.flatMap((n)=>Array.from({length:r},()=>`%${qD(n)}%`))}function GD(e,r){let n=Number.isFinite(e)?1/(1+Math.abs(e)):0,i=1/(1+r);return Ju(Math.max(n,i))}function Og(e,r){if(r.length===0)return 0;let n=r.filter((i)=>e.includes(i)).length;if(n===0)return 0;return Ju(Math.min(0.85,0.35+n/r.length*0.5))}function HD(e){return Ju(Math.max(0,Math.min(1,(e+1)/2)))}function Ju(e){return Number(e.toFixed(6))}function Cn(e,r){let n=e.keyword??0,i=e.semantic??0,t=e.catalog??0,u=r?.chunk_id?0.05:0;return Ju(Math.min(1,n*0.55+i*0.4+t*0.35+u))}function Rg(e){let r=e.provenance;return r&&typeof r==="object"&&!Array.isArray(r)?r:null}function BD(e){let r=Fu(e.chunk_metadata_json),n=Rg(r);if(n)return n;if(!e.source_revision_id&&!e.source_uri)return null;return Ur({source_ref:Ue(r,["source_ref"]),source_uri:e.source_uri??Ue(r,["source_uri"]),source_kind:e.source_kind??Ue(r,["source_kind"]),source_revision_id:e.source_revision_id,revision:e.revision??Ue(r,["revision"]),hash:e.hash??Ue(r,["hash"]),chunk_id:e.chunk_id,start_offset:e.start_offset??lT(r,["start_offset"]),end_offset:e.end_offset??lT(r,["end_offset"]),status:Ue(r,["status"]),resolver:"open-files-read-only"})}function CD(e,r,n){if(!r)return[];return e.query(`SELECT chunks_fts.chunk_id, c.kind AS chunk_kind, c.wiki_page_id, @@ -692,47 +692,47 @@ VALUES (8, datetime('now')); LEFT JOIN wiki_pages wp ON wp.id = c.wiki_page_id WHERE chunks_fts MATCH ? ORDER BY rank ASC - LIMIT ?`).all(r,t)}function fN(e,r){if(r.length===0)return"1 = 0";return r.map(()=>`(${e.map((i)=>`lower(COALESCE(${i}, '')) LIKE ? ESCAPE '\\'`).join(" OR ")})`).join(" OR ")}function HU(e,r,t){let i=["path","title","artifact_uri","metadata_json"];return e.query(`SELECT id, path, title, artifact_uri, content_hash, status, metadata_json + LIMIT ?`).all(r,n)}function vT(e,r){if(r.length===0)return"1 = 0";return r.map(()=>`(${e.map((i)=>`lower(COALESCE(${i}, '')) LIKE ? ESCAPE '\\'`).join(" OR ")})`).join(" OR ")}function YD(e,r,n){let i=["path","title","artifact_uri","metadata_json"];return e.query(`SELECT id, path, title, artifact_uri, content_hash, status, metadata_json FROM wiki_pages - WHERE status = 'active' AND (${fN(i,r)}) + WHERE status = 'active' AND (${vT(i,r)}) ORDER BY updated_at DESC - LIMIT ?`).all(...TN(r,i.length),t)}function VU(e,r,t){let i=["kind","name","shard_key","artifact_uri","metadata_json"];return e.query(`SELECT id, kind, name, artifact_uri, shard_key, metadata_json + LIMIT ?`).all(...$T(r,i.length),n)}function VD(e,r,n){let i=["kind","name","shard_key","artifact_uri","metadata_json"];return e.query(`SELECT id, kind, name, artifact_uri, shard_key, metadata_json FROM knowledge_indexes - WHERE ${fN(i,r)} + WHERE ${vT(i,r)} ORDER BY updated_at DESC - LIMIT ?`).all(...TN(r,i.length),t)}function QU(e){if(!e||!JU(e))return[];try{let r=JSON.parse(zU(e,"utf8"));if(!r||!Array.isArray(r.items))return[];return r.items.filter((t)=>{return Boolean(t&&typeof t==="object"&&typeof t.id==="string"&&typeof t.title==="string"&&typeof t.content==="string")})}catch{return[]}}function ZU(e){return[e.id,e.short_id,e.title,e.content,e.url,...e.tags??[]].filter((r)=>typeof r==="string"&&r.length>0).join(" ").toLowerCase()}function $N(e,r,t){if(r.length===0)return[];return QU(e).filter((i)=>i.archived!==!0).map((i)=>({item:i,haystack:ZU(i)})).filter(({haystack:i})=>r.some((n)=>i.includes(n))).map(({item:i,haystack:n})=>({item:i,score:ho(n,r)})).sort((i,n)=>n.score-i.score||i.item.id.localeCompare(n.item.id)).slice(0,t)}function sU(e,r){let t=K_(e.chunk_metadata_json),i=YU(e),n=me(t,["source_ref"]),_=e.source_uri??me(t,["source_uri"]),u=Boolean(e.wiki_page_id),c={kind:u?"wiki_chunk":"source_chunk",id:e.chunk_id,title:u?e.wiki_title:e.source_title,text:e.text,score:0,scores:{keyword:r},source:_||n?{uri:_,ref:n,kind:e.source_kind??me(t,["source_kind"]),revision:e.revision??me(t,["revision"]),hash:e.hash??me(t,["hash"])}:null,citation:{chunk_id:e.chunk_id,start_offset:e.start_offset,end_offset:e.end_offset},artifact:u?{uri:e.wiki_artifact_uri,path:e.wiki_path,hash:e.wiki_content_hash,shard_key:e.wiki_path}:null,provenance:i,reasons:["keyword_match"]};return c.score=Yt(c.scores,c.citation),c}function vN(e,r){let t=`knowledge://item/${encodeURIComponent(e.id)}`,i={kind:"legacy_item",id:e.id,title:e.title,text:e.content,score:0,scores:{keyword:r},source:{uri:t,ref:t,kind:"legacy_item",revision:null,hash:null},citation:null,artifact:null,provenance:null,reasons:["legacy_note_match","keyword_match"]};return i.score=Yt(i.scores,i.citation),i}function pU(e,r){let t=K_(e.metadata_json),i=ho(`${e.path} ${e.title} ${e.artifact_uri??""} ${e.metadata_json}`.toLowerCase(),r),n={kind:"wiki_page",id:e.id,title:e.title,text:null,score:0,scores:{catalog:i},source:null,citation:null,artifact:{uri:e.artifact_uri,path:e.path,hash:e.content_hash,shard_key:e.path},provenance:wo(t),reasons:["wiki_catalog_match"]};return n.score=Yt(n.scores,n.citation),n}function em(e,r){let t=K_(e.metadata_json),i=ho(`${e.kind} ${e.name} ${e.shard_key??""} ${e.artifact_uri??""} ${e.metadata_json}`.toLowerCase(),r),n={kind:"knowledge_index",id:e.id,title:e.name,text:null,score:0,scores:{catalog:i},source:null,citation:null,artifact:{uri:e.artifact_uri,path:me(t,["artifact_key"]),hash:me(t,["content_hash"]),shard_key:e.shard_key},provenance:wo(t),reasons:["index_catalog_match"]};return n.score=Yt(n.scores,n.citation),n}function Gt(e,r){let t=`${r.kind}:${r.id}`,i=e.get(t);if(!i){e.set(t,r);return}i.scores={keyword:Math.max(i.scores.keyword??0,r.scores.keyword??0)||void 0,semantic:Math.max(i.scores.semantic??0,r.scores.semantic??0)||void 0,catalog:Math.max(i.scores.catalog??0,r.scores.catalog??0)||void 0},i.reasons=EN([...i.reasons,...r.reasons]),i.text=i.text??r.text,i.title=i.title??r.title,i.source=i.source??r.source,i.citation=i.citation??r.citation,i.artifact=i.artifact??r.artifact,i.provenance=i.provenance??r.provenance,i.score=Yt(i.scores,i.citation)}function NN(e){let r={source_chunk:0,wiki_chunk:1,legacy_item:2,wiki_page:3,knowledge_index:4};return e.sort((t,i)=>{if(i.score!==t.score)return i.score-t.score;return r[t.kind]-r[i.kind]||t.id.localeCompare(i.id)})}async function J_(e){let r=e.query.trim();if(!r)throw Error("Search query is required.");let t=Math.max(1,Math.min(e.limit??10,100)),i=aN(r),n=MU(i),_=e.semantic===!0||e.fake===!0||Boolean(e.modelRef),u=[],c=null,d=null,o=null,a=0,g=0,E=0,l=new Map;x(e.dbPath);let T=A(e.dbPath);try{let v=BU(T,n,Math.max(t*3,20));a=v.length,v.forEach((S,U)=>Gt(l,sU(S,qU(S.rank,U))));let N=HU(T,i,Math.max(t,10)),k=VU(T,i,Math.max(t,10)),R=$N(e.legacyStorePath,i,Math.max(t,10));g=N.length+k.length,a+=R.length,R.forEach(({item:S,score:U})=>Gt(l,vN(S,U))),N.forEach((S)=>Gt(l,pU(S,i))),k.forEach((S)=>Gt(l,em(S,i)))}finally{T.close()}if(_)try{let v=await F_({dbPath:e.dbPath,query:r,limit:Math.max(t*3,20),config:e.config,env:e.env,modelRef:e.modelRef,dimensions:e.dimensions,fake:e.fake,batchSize:e.batchSize,maxParallelCalls:e.maxParallelCalls});c=v.provider,d=v.model,o=v.dimensions,E=v.results.length;for(let N of v.results){let k={kind:"source_chunk",id:N.chunk_id,title:null,text:N.text,score:0,scores:{semantic:GU(N.score)},source:{uri:N.source_uri,ref:N.source_ref,kind:N.provenance?.source_kind??null,revision:N.revision,hash:N.hash},citation:{chunk_id:N.chunk_id,start_offset:N.provenance?.start_offset??null,end_offset:N.provenance?.end_offset??null},artifact:null,provenance:N.provenance,reasons:["semantic_match"]};k.score=Yt(k.scores,k.citation),Gt(l,k)}}catch(v){u.push(`semantic_search_failed: ${v instanceof Error?v.message:String(v)}`)}let f=NN(Array.from(l.values())).slice(0,t);return{query:r,limit:t,mode:{keyword:!0,catalog:!0,semantic:_},semantic_provider:c,semantic_model:d,semantic_dimensions:o,counts:{keyword_results:a,catalog_results:g,semantic_results:E,merged_results:f.length},warnings:u,results:f}}async function z_(e){let r=e.query.trim();if(!r)throw Error("Search query is required.");let t=Math.max(1,Math.min(e.limit??10,100)),i=aN(r),n=e.semantic===!0||e.fake===!0||Boolean(e.modelRef),_=new Map,u=$N(e.legacyStorePath,i,Math.max(t,10));u.forEach(({item:o,score:a})=>Gt(_,vN(o,a)));let c=["knowledge_db_missing"];if(n)c.push("semantic_search_skipped_knowledge_db_missing");let d=NN(Array.from(_.values())).slice(0,t);return{query:r,limit:t,mode:{keyword:!0,catalog:!0,semantic:n},semantic_provider:null,semantic_model:null,semantic_dimensions:null,counts:{keyword_results:u.length,catalog_results:0,semantic_results:0,merged_results:d.length},warnings:c,results:d}}function kN(e,r){return`${e}_${rm("sha256").update(r).digest("hex").slice(0,20)}`}function IN(e){return e.normalize("NFKC").trim().replace(/\s+/g," ").toLowerCase()}function tm(e){return Array.from(new Set(IN(e).match(/[\p{L}\p{N}_]+/gu)??[])).slice(0,16)}function nm(e){return[e.title,e.text].filter(Boolean).join(" ").toLowerCase()}function im(e,r){if(r.length===0)return 0;let t=nm(e),i=r.filter((n)=>t.includes(n)).length;return Number((i/r.length).toFixed(6))}function _m(e){if(!e)return!0;if("read_only"in e)return e.read_only===!0;if("read_only_sources"in e)return e.read_only_sources===!0;return!0}function SN(e){if(!e)return!1;if("stale"in e&&e.stale)return!0;if("status"in e)return No(e.status);return!1}function um(e){if(SN(e.provenance))return 0;if(e.source?.hash||e.source?.revision)return 1;if(e.artifact?.hash)return 0.85;if(e.provenance&&"source_refs"in e.provenance&&e.provenance.source_refs.length>0)return 0.75;return 0.55}function cm(e){if(e.citation?.chunk_id&&(e.source?.uri||e.artifact?.uri))return 1;if(e.provenance&&"citation_required"in e.provenance&&e.provenance.citation_required)return 0.75;if(e.artifact?.uri)return 0.65;return 0.35}function dm(e){if(e.kind==="wiki_chunk")return 0.85;if(e.kind==="source_chunk")return 0.8;if(e.kind==="legacy_item")return 0.6;if(e.kind==="wiki_page")return 0.65;return 0.55}function om(e,r){let t={base_score:e.score,exact_score:im(e,r),citation_score:cm(e),freshness_score:um(e),authority_score:dm(e)},i=Math.min(1,t.base_score*0.65+t.exact_score*0.1+t.citation_score*0.1+t.freshness_score*0.1+t.authority_score*0.05),n=new Set(e.reasons);if(t.exact_score>0.5)n.add("exact_term");if(t.citation_score>=0.75)n.add("cited_source");if(t.freshness_score>=0.85)n.add("fresh_source");return{...e,score:Number(i.toFixed(6)),reasons:Array.from(n),rerank:{...t,final_score:Number(i.toFixed(6))}}}function ON(e,r){let t=e.text??e.title;if(!t)return null;let i=t.replace(/\s+/g," ").trim();return i.length<=r?i:`${i.slice(0,Math.max(0,r-1)).trim()}...`}function gm(e){return{id:kN("cite",`${e.kind}\x00${e.id}\x00${e.source?.uri??""}\x00${e.artifact?.uri??""}`),result_id:e.id,kind:e.kind,source_uri:e.source?.uri??null,source_ref:e.source?.ref??null,artifact_uri:e.artifact?.uri??null,artifact_path:e.artifact?.path??null,revision:e.source?.revision??null,hash:e.source?.hash??e.artifact?.hash??null,chunk_id:e.citation?.chunk_id??null,start_offset:e.citation?.start_offset??null,end_offset:e.citation?.end_offset??null,quote:ON(e,500),provenance:e.provenance}}function lm(e,r,t){let i=ON(e,t);if(!i)return null;return{id:kN("excerpt",`${e.kind}\x00${e.id}`),result_id:e.id,citation_id:r.id,kind:e.kind,text:i,score:e.score}}function M_(e){return e.map(()=>"?").join(", ")}function Em(e,r){let t=r.map((c)=>c.citation?.chunk_id).filter((c)=>Boolean(c)),i=r.filter((c)=>c.kind==="wiki_page").map((c)=>c.id),n=[],_=[];if(t.length===0&&i.length===0)return{citations:n,backlinks:_};let u=A(e);try{if(t.length>0)n.push(...u.query(`SELECT id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset + LIMIT ?`).all(...$T(r,i.length),n)}function QD(e){if(!e||!zD(e))return[];try{let r=JSON.parse(WD(e,"utf8"));if(!r||!Array.isArray(r.items))return[];return r.items.filter((n)=>{return Boolean(n&&typeof n==="object"&&typeof n.id==="string"&&typeof n.title==="string"&&typeof n.content==="string")})}catch{return[]}}function ZD(e){return[e.id,e.short_id,e.title,e.content,e.url,...e.tags??[]].filter((r)=>typeof r==="string"&&r.length>0).join(" ").toLowerCase()}function ET(e,r,n){if(r.length===0)return[];return QD(e).filter((i)=>i.archived!==!0).map((i)=>({item:i,haystack:ZD(i)})).filter(({haystack:i})=>r.some((t)=>i.includes(t))).map(({item:i,haystack:t})=>({item:i,score:Og(t,r)})).sort((i,t)=>t.score-i.score||i.item.id.localeCompare(t.item.id)).slice(0,n)}function sD(e,r){let n=Fu(e.chunk_metadata_json),i=BD(e),t=Ue(n,["source_ref"]),u=e.source_uri??Ue(n,["source_uri"]),_=Boolean(e.wiki_page_id),c={kind:_?"wiki_chunk":"source_chunk",id:e.chunk_id,title:_?e.wiki_title:e.source_title,text:e.text,score:0,scores:{keyword:r},source:u||t?{uri:u,ref:t,kind:e.source_kind??Ue(n,["source_kind"]),revision:e.revision??Ue(n,["revision"]),hash:e.hash??Ue(n,["hash"])}:null,citation:{chunk_id:e.chunk_id,start_offset:e.start_offset,end_offset:e.end_offset},artifact:_?{uri:e.wiki_artifact_uri,path:e.wiki_path,hash:e.wiki_content_hash,shard_key:e.wiki_path}:null,provenance:i,reasons:["keyword_match"]};return c.score=Cn(c.scores,c.citation),c}function kT(e,r){let n=`knowledge://item/${encodeURIComponent(e.id)}`,i={kind:"legacy_item",id:e.id,title:e.title,text:e.content,score:0,scores:{keyword:r},source:{uri:n,ref:n,kind:"legacy_item",revision:null,hash:null},citation:null,artifact:null,provenance:null,reasons:["legacy_note_match","keyword_match"]};return i.score=Cn(i.scores,i.citation),i}function pD(e,r){let n=Fu(e.metadata_json),i=Og(`${e.path} ${e.title} ${e.artifact_uri??""} ${e.metadata_json}`.toLowerCase(),r),t={kind:"wiki_page",id:e.id,title:e.title,text:null,score:0,scores:{catalog:i},source:null,citation:null,artifact:{uri:e.artifact_uri,path:e.path,hash:e.content_hash,shard_key:e.path},provenance:Rg(n),reasons:["wiki_catalog_match"]};return t.score=Cn(t.scores,t.citation),t}function eU(e,r){let n=Fu(e.metadata_json),i=Og(`${e.kind} ${e.name} ${e.shard_key??""} ${e.artifact_uri??""} ${e.metadata_json}`.toLowerCase(),r),t={kind:"knowledge_index",id:e.id,title:e.name,text:null,score:0,scores:{catalog:i},source:null,citation:null,artifact:{uri:e.artifact_uri,path:Ue(n,["artifact_key"]),hash:Ue(n,["content_hash"]),shard_key:e.shard_key},provenance:Rg(n),reasons:["index_catalog_match"]};return t.score=Cn(t.scores,t.citation),t}function Bn(e,r){let n=`${r.kind}:${r.id}`,i=e.get(n);if(!i){e.set(n,r);return}i.scores={keyword:Math.max(i.scores.keyword??0,r.scores.keyword??0)||void 0,semantic:Math.max(i.scores.semantic??0,r.scores.semantic??0)||void 0,catalog:Math.max(i.scores.catalog??0,r.scores.catalog??0)||void 0},i.reasons=aT([...i.reasons,...r.reasons]),i.text=i.text??r.text,i.title=i.title??r.title,i.source=i.source??r.source,i.citation=i.citation??r.citation,i.artifact=i.artifact??r.artifact,i.provenance=i.provenance??r.provenance,i.score=Cn(i.scores,i.citation)}function TT(e){let r={source_chunk:0,wiki_chunk:1,legacy_item:2,wiki_page:3,knowledge_index:4};return e.sort((n,i)=>{if(i.score!==n.score)return i.score-n.score;return r[n.kind]-r[i.kind]||n.id.localeCompare(i.id)})}async function zu(e){let r=e.query.trim();if(!r)throw Error("Search query is required.");let n=Math.max(1,Math.min(e.limit??10,100)),i=fT(r),t=MD(i),u=e.semantic===!0||e.fake===!0||Boolean(e.modelRef),_=[],c=null,d=null,g=null,f=0,o=0,a=0,l=new Map;P(e.dbPath);let $=A(e.dbPath);try{let k=CD($,t,Math.max(n*3,20));f=k.length,k.forEach((b,D)=>Bn(l,sD(b,GD(b.rank,D))));let T=YD($,i,Math.max(n,10)),S=VD($,i,Math.max(n,10)),O=ET(e.legacyStorePath,i,Math.max(n,10));o=T.length+S.length,f+=O.length,O.forEach(({item:b,score:D})=>Bn(l,kT(b,D))),T.forEach((b)=>Bn(l,pD(b,i))),S.forEach((b)=>Bn(l,eU(b,i)))}finally{$.close()}if(u)try{let k=await Ku({dbPath:e.dbPath,query:r,limit:Math.max(n*3,20),config:e.config,env:e.env,modelRef:e.modelRef,dimensions:e.dimensions,fake:e.fake,batchSize:e.batchSize,maxParallelCalls:e.maxParallelCalls});c=k.provider,d=k.model,g=k.dimensions,a=k.results.length;for(let T of k.results){let S={kind:"source_chunk",id:T.chunk_id,title:null,text:T.text,score:0,scores:{semantic:HD(T.score)},source:{uri:T.source_uri,ref:T.source_ref,kind:T.provenance?.source_kind??null,revision:T.revision,hash:T.hash},citation:{chunk_id:T.chunk_id,start_offset:T.provenance?.start_offset??null,end_offset:T.provenance?.end_offset??null},artifact:null,provenance:T.provenance,reasons:["semantic_match"]};S.score=Cn(S.scores,S.citation),Bn(l,S)}}catch(k){_.push(`semantic_search_failed: ${k instanceof Error?k.message:String(k)}`)}let v=TT(Array.from(l.values())).slice(0,n);return{query:r,limit:n,mode:{keyword:!0,catalog:!0,semantic:u},semantic_provider:c,semantic_model:d,semantic_dimensions:g,counts:{keyword_results:f,catalog_results:o,semantic_results:a,merged_results:v.length},warnings:_,results:v}}async function Wu(e){let r=e.query.trim();if(!r)throw Error("Search query is required.");let n=Math.max(1,Math.min(e.limit??10,100)),i=fT(r),t=e.semantic===!0||e.fake===!0||Boolean(e.modelRef),u=new Map,_=ET(e.legacyStorePath,i,Math.max(n,10));_.forEach(({item:g,score:f})=>Bn(u,kT(g,f)));let c=["knowledge_db_missing"];if(t)c.push("semantic_search_skipped_knowledge_db_missing");let d=TT(Array.from(u.values())).slice(0,n);return{query:r,limit:n,mode:{keyword:!0,catalog:!0,semantic:t},semantic_provider:null,semantic_model:null,semantic_dimensions:null,counts:{keyword_results:_.length,catalog_results:0,semantic_results:0,merged_results:d.length},warnings:c,results:d}}function ST(e,r){return`${e}_${rU("sha256").update(r).digest("hex").slice(0,20)}`}function NT(e){return e.normalize("NFKC").trim().replace(/\s+/g," ").toLowerCase()}function nU(e){return Array.from(new Set(NT(e).match(/[\p{L}\p{N}_]+/gu)??[])).slice(0,16)}function tU(e){return[e.title,e.text].filter(Boolean).join(" ").toLowerCase()}function iU(e,r){if(r.length===0)return 0;let n=tU(e),i=r.filter((t)=>n.includes(t)).length;return Number((i/r.length).toFixed(6))}function uU(e){if(!e)return!0;if("read_only"in e)return e.read_only===!0;if("read_only_sources"in e)return e.read_only_sources===!0;return!0}function bT(e){if(!e)return!1;if("stale"in e&&e.stale)return!0;if("status"in e)return kg(e.status);return!1}function _U(e){if(bT(e.provenance))return 0;if(e.source?.hash||e.source?.revision)return 1;if(e.artifact?.hash)return 0.85;if(e.provenance&&"source_refs"in e.provenance&&e.provenance.source_refs.length>0)return 0.75;return 0.55}function cU(e){if(e.citation?.chunk_id&&(e.source?.uri||e.artifact?.uri))return 1;if(e.provenance&&"citation_required"in e.provenance&&e.provenance.citation_required)return 0.75;if(e.artifact?.uri)return 0.65;return 0.35}function dU(e){if(e.kind==="wiki_chunk")return 0.85;if(e.kind==="source_chunk")return 0.8;if(e.kind==="legacy_item")return 0.6;if(e.kind==="wiki_page")return 0.65;return 0.55}function gU(e,r){let n={base_score:e.score,exact_score:iU(e,r),citation_score:cU(e),freshness_score:_U(e),authority_score:dU(e)},i=Math.min(1,n.base_score*0.65+n.exact_score*0.1+n.citation_score*0.1+n.freshness_score*0.1+n.authority_score*0.05),t=new Set(e.reasons);if(n.exact_score>0.5)t.add("exact_term");if(n.citation_score>=0.75)t.add("cited_source");if(n.freshness_score>=0.85)t.add("fresh_source");return{...e,score:Number(i.toFixed(6)),reasons:Array.from(t),rerank:{...n,final_score:Number(i.toFixed(6))}}}function IT(e,r){let n=e.text??e.title;if(!n)return null;let i=n.replace(/\s+/g," ").trim();return i.length<=r?i:`${i.slice(0,Math.max(0,r-1)).trim()}...`}function oU(e){return{id:ST("cite",`${e.kind}\x00${e.id}\x00${e.source?.uri??""}\x00${e.artifact?.uri??""}`),result_id:e.id,kind:e.kind,source_uri:e.source?.uri??null,source_ref:e.source?.ref??null,artifact_uri:e.artifact?.uri??null,artifact_path:e.artifact?.path??null,revision:e.source?.revision??null,hash:e.source?.hash??e.artifact?.hash??null,chunk_id:e.citation?.chunk_id??null,start_offset:e.citation?.start_offset??null,end_offset:e.citation?.end_offset??null,quote:IT(e,500),provenance:e.provenance}}function lU(e,r,n){let i=IT(e,n);if(!i)return null;return{id:ST("excerpt",`${e.kind}\x00${e.id}`),result_id:e.id,citation_id:r.id,kind:e.kind,text:i,score:e.score}}function Mu(e){return e.map(()=>"?").join(", ")}function aU(e,r){let n=r.map((c)=>c.citation?.chunk_id).filter((c)=>Boolean(c)),i=r.filter((c)=>c.kind==="wiki_page").map((c)=>c.id),t=[],u=[];if(n.length===0&&i.length===0)return{citations:t,backlinks:u};let _=A(e);try{if(n.length>0)t.push(..._.query(`SELECT id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset FROM citations - WHERE chunk_id IN (${M_(t)}) + WHERE chunk_id IN (${Mu(n)}) ORDER BY created_at DESC - LIMIT 50`).all(...t));if(i.length>0)n.push(...u.query(`SELECT id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset + LIMIT 50`).all(...n));if(i.length>0)t.push(..._.query(`SELECT id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset FROM citations - WHERE wiki_page_id IN (${M_(i)}) + WHERE wiki_page_id IN (${Mu(i)}) ORDER BY created_at DESC - LIMIT 50`).all(...i)),_.push(...u.query(`SELECT from_page_id, to_page_id, label + LIMIT 50`).all(...i)),u.push(..._.query(`SELECT from_page_id, to_page_id, label FROM wiki_backlinks - WHERE from_page_id IN (${M_(i)}) OR to_page_id IN (${M_(i)}) - LIMIT 50`).all(...i,...i))}finally{u.close()}return{citations:n,backlinks:_}}function C_(e,r={}){let t=Math.max(200,Math.min(r.contextChars??1200,4000)),i=tm(e.query),n=[...e.warnings],_=new Set,u=new Set,d=e.results.filter((g)=>{if(!_m(g.provenance))return n.push(`permission_filtered: ${g.kind}:${g.id}`),_.add("Dropped a result because provenance was not read-only."),!1;if(SN(g.provenance))return n.push(`stale_filtered: ${g.kind}:${g.id}`),u.add("Dropped a stale result whose source status requires reindexing."),!1;return!0}).map((g)=>om(g,i)).sort((g,E)=>E.score-g.score||g.id.localeCompare(E.id)).slice(0,e.limit),o=d.map(gm),a=d.map((g,E)=>lm(g,o[E],t)).filter((g)=>Boolean(g));for(let g of d){if(g.provenance&&"read_only"in g.provenance&&g.provenance.read_only)_.add("All source-backed excerpts are read-only and citation-required.");if(g.rerank.freshness_score>=0.85)u.add("Fresh source revision/hash or artifact hash is present for top context.")}return{query:e.query,normalized_query:IN(e.query),created_at:new Date().toISOString(),mode:e.mode,warnings:n,search_counts:e.counts,results:d,citations:o,excerpts:a,graph:r.dbPath?Em(r.dbPath,d):{citations:[],backlinks:[]},notes:{permissions:Array.from(_),freshness:Array.from(u)}}}async function Bt(e){let r=await J_(e);return C_(r,{dbPath:e.dbPath,contextChars:e.contextChars})}function Ao(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function yo(e){return`C${e+1}`}function am(e,r){if(r.excerpts.length===0)return`No indexed knowledge matched the prompt: ${e}`;return[`Found ${r.excerpts.length} relevant knowledge excerpt(s) for: ${e}`,"",...r.excerpts.slice(0,5).map((i,n)=>{let _=r.citations.find((c)=>c.id===i.citation_id),u=_?.source_ref??_?.source_uri??_?.artifact_path??_?.artifact_uri??"unknown source";return`[${yo(n)}] ${i.text} (${u})`})].join(` -`)}function Tm(e,r){let t=r.citations.map((n,_)=>({id:yo(_),source_ref:n.source_ref,source_uri:n.source_uri,artifact_path:n.artifact_path,revision:n.revision,hash:n.hash,quote:n.quote})),i=r.excerpts.map((n,_)=>({id:yo(_),kind:n.kind,text:n.text,score:n.score}));return[`Prompt: ${e}`,"","Use only the provided context. Cite claims with citation ids like [C1]. If context is insufficient, say what is missing.","",`Context excerpts: + WHERE from_page_id IN (${Mu(i)}) OR to_page_id IN (${Mu(i)}) + LIMIT 50`).all(...i,...i))}finally{_.close()}return{citations:t,backlinks:u}}function qu(e,r={}){let n=Math.max(200,Math.min(r.contextChars??1200,4000)),i=nU(e.query),t=[...e.warnings],u=new Set,_=new Set,d=e.results.filter((o)=>{if(!uU(o.provenance))return t.push(`permission_filtered: ${o.kind}:${o.id}`),u.add("Dropped a result because provenance was not read-only."),!1;if(bT(o.provenance))return t.push(`stale_filtered: ${o.kind}:${o.id}`),_.add("Dropped a stale result whose source status requires reindexing."),!1;return!0}).map((o)=>gU(o,i)).sort((o,a)=>a.score-o.score||o.id.localeCompare(a.id)).slice(0,e.limit),g=d.map(oU),f=d.map((o,a)=>lU(o,g[a],n)).filter((o)=>Boolean(o));for(let o of d){if(o.provenance&&"read_only"in o.provenance&&o.provenance.read_only)u.add("All source-backed excerpts are read-only and citation-required.");if(o.rerank.freshness_score>=0.85)_.add("Fresh source revision/hash or artifact hash is present for top context.")}return{query:e.query,normalized_query:NT(e.query),created_at:new Date().toISOString(),mode:e.mode,warnings:t,search_counts:e.counts,results:d,citations:g,excerpts:f,graph:r.dbPath?aU(r.dbPath,d):{citations:[],backlinks:[]},notes:{permissions:Array.from(u),freshness:Array.from(_)}}}async function Yn(e){let r=await zu(e);return qu(r,{dbPath:e.dbPath,contextChars:e.contextChars})}function Lg(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function yg(e){return`C${e+1}`}function fU(e,r){if(r.excerpts.length===0)return`No indexed knowledge matched the prompt: ${e}`;return[`Found ${r.excerpts.length} relevant knowledge excerpt(s) for: ${e}`,"",...r.excerpts.slice(0,5).map((i,t)=>{let u=r.citations.find((c)=>c.id===i.citation_id),_=u?.source_ref??u?.source_uri??u?.artifact_path??u?.artifact_uri??"unknown source";return`[${yg(t)}] ${i.text} (${_})`})].join(` +`)}function $U(e,r){let n=r.citations.map((t,u)=>({id:yg(u),source_ref:t.source_ref,source_uri:t.source_uri,artifact_path:t.artifact_path,revision:t.revision,hash:t.hash,quote:t.quote})),i=r.excerpts.map((t,u)=>({id:yg(u),kind:t.kind,text:t.text,score:t.score}));return[`Prompt: ${e}`,"","Use only the provided context. Cite claims with citation ids like [C1]. If context is insufficient, say what is missing.","",`Context excerpts: ${JSON.stringify(i,null,2)}`,"",`Citations: -${JSON.stringify(t,null,2)}`].join(` -`)}function fm(e,r){if(r.citations.length===0)return[];return[{kind:"answer_note",title:e.length>80?`${e.slice(0,77)}...`:e,citations:r.citations.map((t)=>t.id),requires_approval:!0}]}function $m(e,r){let t=A(e);try{t.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[r.runId,"knowledge-prompt",r.prompt,r.status,r.provider,r.model,JSON.stringify(r.metadata),r.now,r.now])}finally{t.close()}}function Xo(e,r){let t=A(e);try{t.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?)`,[`evt_${bN()}`,r.runId,r.level,r.event,JSON.stringify(r.metadata),r.now])}finally{t.close()}}function LN(e,r){let t=A(e);try{t.run(`UPDATE runs +${JSON.stringify(n,null,2)}`].join(` +`)}function vU(e,r){if(r.citations.length===0)return[];return[{kind:"answer_note",title:e.length>80?`${e.slice(0,77)}...`:e,citations:r.citations.map((n)=>n.id),requires_approval:!0}]}function EU(e,r){let n=A(e);try{n.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[r.runId,"knowledge-prompt",r.prompt,r.status,r.provider,r.model,JSON.stringify(r.metadata),r.now,r.now])}finally{n.close()}}function Ag(e,r){let n=A(e);try{n.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?)`,[`evt_${wT()}`,r.runId,r.level,r.event,JSON.stringify(r.metadata),r.now])}finally{n.close()}}function mT(e,r){let n=A(e);try{n.run(`UPDATE runs SET status = ?, provider = ?, model = ?, metadata_json = ?, updated_at = ? - WHERE id = ?`,[r.status,r.provider,r.model,JSON.stringify(r.metadata),r.now,r.runId])}finally{t.close()}}function vm(e,r,t,i,n,_,u={}){let c=A(e);try{qt(c,{run_id:r,provider:i,model:n,input_tokens:t.input_tokens,output_tokens:t.output_tokens,cost_usd:t.cost_usd,metadata:u,created_at:_})}finally{c.close()}}async function UN(e){let r=e.prompt.trim();if(!r)throw Error("Knowledge prompt is required.");let t=(e.now??new Date).toISOString(),i=`run_${bN()}`,n=se(e.modelRef??"default",e.config),_=le(n);x(e.dbPath),$m(e.dbPath,{runId:i,prompt:r,status:e.generate?"running":"dry_run",provider:e.generate?_.provider:"local",model:e.generate?_.model:"context-draft",metadata:{semantic:e.semantic===!0||e.fake===!0||Boolean(e.modelRef),approve_write:e.approveWrite===!0,generated:e.generate===!0},now:t});let{prompt:u,generate:c,approveWrite:d,now:o,...a}=e,g=await Bt({...a,query:r});Xo(e.dbPath,{runId:i,level:"info",event:"context_retrieved",metadata:{results:g.results.length,citations:g.citations.length,warnings:g.warnings},now:t});let E=am(r,g),l=!1,T="local",f="context-draft",v={input_tokens:Ao(r)+g.excerpts.reduce((S,U)=>S+Ao(U.text),0),output_tokens:Ao(E),cost_usd:0},N=[...g.warnings];if(e.generate)try{if(e.fake)l=!0,T=_.provider,f=_.model,E=`Fake generated answer for: ${r} + WHERE id = ?`,[r.status,r.provider,r.model,JSON.stringify(r.metadata),r.now,r.runId])}finally{n.close()}}function kU(e,r,n,i,t,u,_={}){let c=A(e);try{Hn(c,{run_id:r,provider:i,model:t,input_tokens:n.input_tokens,output_tokens:n.output_tokens,cost_usd:n.cost_usd,metadata:_,created_at:u})}finally{c.close()}}async function DT(e){let r=e.prompt.trim();if(!r)throw Error("Knowledge prompt is required.");let n=(e.now??new Date).toISOString(),i=`run_${wT()}`,t=se(e.modelRef??"default",e.config),u=le(t);P(e.dbPath),EU(e.dbPath,{runId:i,prompt:r,status:e.generate?"running":"dry_run",provider:e.generate?u.provider:"local",model:e.generate?u.model:"context-draft",metadata:{semantic:e.semantic===!0||e.fake===!0||Boolean(e.modelRef),approve_write:e.approveWrite===!0,generated:e.generate===!0},now:n});let{prompt:_,generate:c,approveWrite:d,now:g,...f}=e,o=await Yn({...f,query:r});Ag(e.dbPath,{runId:i,level:"info",event:"context_retrieved",metadata:{results:o.results.length,citations:o.citations.length,warnings:o.warnings},now:n});let a=fU(r,o),l=!1,$="local",v="context-draft",k={input_tokens:Lg(r)+o.excerpts.reduce((b,D)=>b+Lg(D.text),0),output_tokens:Lg(a),cost_usd:0},T=[...o.warnings];if(e.generate)try{if(e.fake)l=!0,$=u.provider,v=u.model,a=`Fake generated answer for: ${r} -${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config,env:e.env}),X=await S({model:U,system:"You answer company knowledge-base prompts using only provided context and citation ids.",prompt:Tm(r,g)});l=!0,T=_.provider,f=_.model,E=X.text;let j=Ct({provider:T,model:f,usage:X.usage,providerMetadata:X.providerMetadata});v={input_tokens:j.input_tokens,output_tokens:j.output_tokens,cost_usd:j.cost_usd}}}catch(S){throw Xo(e.dbPath,{runId:i,level:"error",event:"answer_generation_failed",metadata:{message:S instanceof Error?S.message:String(S)},now:t}),LN(e.dbPath,{runId:i,status:"failed",provider:_.provider,model:_.model,metadata:{generated:!1,error:S instanceof Error?S.message:String(S)},now:t}),S}let k=fm(r,g),R={approved:e.approveWrite===!0,durable_writes_performed:!1,reason:e.approveWrite?"Approval flag recorded; durable wiki writing is deferred to the wiki compile task.":"Dry-run mode: proposed wiki updates require approval before durable writes."};return Xo(e.dbPath,{runId:i,level:"info",event:l?"answer_generated":"answer_drafted",metadata:{provider:T,model:f,proposed_updates:k.length,durable_writes_performed:!1},now:t}),vm(e.dbPath,i,v,T,f,t,{generated:l,citations:g.citations.length}),LN(e.dbPath,{runId:i,status:l?"completed":"dry_run",provider:T,model:f,metadata:{generated:l,citations:g.citations.length,proposed_updates:k.length,approve_write:e.approveWrite===!0},now:t}),{run_id:i,prompt:r,generated:l,provider:T,model:f,answer:E,context:g,citations:g.citations,proposed_wiki_updates:k,write_policy:R,usage:v,warnings:N}}import{createHash as Nm}from"crypto";var km=1200,Im=6,Sm=12000,Om=50,mN=800;function Vt(e,r,t=16){return`${e}_${Nm("sha256").update(r).digest("hex").slice(0,t)}`}function jo(e){return e.normalize("NFKC").trim().replace(/\s+/g," ")}function Po(e){return jo(e).toLowerCase()}function Lm(e){return Array.from(new Set(Po(e).match(/[\p{L}\p{N}_]+/gu)??[])).slice(0,24)}function Tr(e,r){let t=jo(e);if(t.length<=r)return t;return`${t.slice(0,Math.max(0,r-1)).trim()}...`}function DN(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function Fo(e){return/(?:api[_-]?key|secret|token|password|private[_-]?key|credential)/i.test(e)}function xo(e){return Object.keys(e).filter((r)=>!Fo(r)).sort().slice(0,12)}function bm(e,r){for(let t of r){if(Fo(t))continue;let i=e[t];if(typeof i==="string"&&i.trim())return i.trim()}return null}function zn(e,r){if(!e)return null;let t=ye(e,r).text;try{let i=new URL(t),n=["token","access_token","api_key","apikey","key","secret","password","signature","sig"];for(let _ of n)i.searchParams.delete(_);for(let[_]of i.searchParams)if(Fo(_))i.searchParams.delete(_);return i.toString()}catch{return t}}function pe(e,r,t){return zn(bm(e,r),t)}function q_(e){let r=[];for(let t of xo(e).slice(0,6)){let i=e[t];if(typeof i==="string"&&i.trim())r.push(`${t}=${Tr(i,80)}`);else if(typeof i==="number"||typeof i==="boolean")r.push(`${t}=${String(i)}`);else if(i&&typeof i==="object")r.push(`${t}={...}`)}return r.join("; ")}function Um(e){if(!e.trim())return 0;return Math.max(1,Math.ceil(e.length/4))}function RN(e){return Um(JSON.stringify(e))}function mm(e){if(!Number.isFinite(e??NaN))return km;let r=Math.floor(e);if(rt.includes(n)).length;return Number((i/r.length).toFixed(6))}function Rm(e){return["This pack is read-only and performs no durable writes.","Use citation ids and refs instead of pasting raw artifacts into prompts.","Resolve source or artifact refs explicitly only when raw content is needed and allowed.","Run generated knowledge writes through approval-gated commands before applying.",e==="loops"||e==="runs"?"Run evidence is summarized from knowledge run ledgers; raw run artifacts remain referenced, not embedded.":"Search evidence is derived from indexed chunks/wiki catalog rows with citation metadata."]}function hm(e,r,t){let i=zn(r.source_ref,t),n=zn(r.source_uri,t),_=zn(r.artifact_uri,t),u=zn(r.artifact_path,t),c=i??n??u??_??r.id,d=r.quote?Ht(r.quote,t,e<3?220:140):null;return{citation:{id:Vt("cite",`${r.id}\x00${c}`,12),kind:r.artifact_uri||r.artifact_path?"artifact":"source",ref:c,source_ref:i,source_uri:n,artifact_uri:_,artifact_path:u,run_id:null,run_event_id:null,revision:r.revision??null,hash:r.hash??null,chunk_id:r.chunk_id??null,offsets:{start:r.start_offset??null,end:r.end_offset??null},quote_preview:d?.text??null},redactions:d?.redactions??0}}async function wm(e,r){let t=(e.query??e.topic??"").trim();if(!t)throw Error("Context pack query is required for search source.");let{config:i,dbPath:n,limit:_,semantic:u,modelRef:c,dimensions:d,fake:o,env:a,batchSize:g,maxParallelCalls:E,legacyStorePath:l}=e,T=await Bt({dbPath:n,config:i,legacyStorePath:l,query:t,limit:Math.max(r,_??r),semantic:u,modelRef:c,dimensions:d,fake:o,env:a,batchSize:g,maxParallelCalls:E,contextChars:Math.min(e.contextChars??700,1200)}),f=new Map,v=0;T.citations.forEach((S,U)=>{let X=hm(U,S,e.safetyPolicy);v+=X.redactions,f.set(S.id,X.citation)});let N=T.excerpts.slice(0,Math.max(r*2,r)).map((S)=>{let U=T.results.find((W)=>W.id===S.result_id),X=S.citation_id?f.get(S.citation_id):null,j=Ht(S.text,e.safetyPolicy,520);v+=j.redactions;let K=U?.title??X?.ref??S.kind;return{id:Vt("ev",`${S.kind}\x00${S.result_id}\x00${S.citation_id??""}`,14),kind:S.kind,title:Tr(K,100),text_preview:j.text,score:Number(S.score.toFixed(6)),citation_ids:X?[X.id]:[],provenance:{source:"search",record_ref:`${S.kind}:${S.result_id}`,created_at:T.created_at,updated_at:null,metadata_keys:[]}}}),k=new Set(N.flatMap((S)=>S.citation_ids));return{citations:Array.from(f.values()).filter((S)=>k.has(S.id)),evidence:N,duplicateCandidates:[],redactions:v,warnings:T.warnings,available:T.excerpts.length}}function Am(e,r,t){if(r)return e.query(`SELECT id, type, prompt, status, provider, model, cost_tokens, cost_usd, metadata_json, created_at, updated_at +${a}`;else{let{generateText:b}=await import("ai"),D=await Pu(t,{config:e.config,env:e.env}),y=await b({model:D,system:"You answer company knowledge-base prompts using only provided context and citation ids.",prompt:$U(r,o)});l=!0,$=u.provider,v=u.model,a=y.text;let x=Gn({provider:$,model:v,usage:y.usage,providerMetadata:y.providerMetadata});k={input_tokens:x.input_tokens,output_tokens:x.output_tokens,cost_usd:x.cost_usd}}}catch(b){throw Ag(e.dbPath,{runId:i,level:"error",event:"answer_generation_failed",metadata:{message:b instanceof Error?b.message:String(b)},now:n}),mT(e.dbPath,{runId:i,status:"failed",provider:u.provider,model:u.model,metadata:{generated:!1,error:b instanceof Error?b.message:String(b)},now:n}),b}let S=vU(r,o),O={approved:e.approveWrite===!0,durable_writes_performed:!1,reason:e.approveWrite?"Approval flag recorded; durable wiki writing is deferred to the wiki compile task.":"Dry-run mode: proposed wiki updates require approval before durable writes."};return Ag(e.dbPath,{runId:i,level:"info",event:l?"answer_generated":"answer_drafted",metadata:{provider:$,model:v,proposed_updates:S.length,durable_writes_performed:!1},now:n}),kU(e.dbPath,i,k,$,v,n,{generated:l,citations:o.citations.length}),mT(e.dbPath,{runId:i,status:l?"completed":"dry_run",provider:$,model:v,metadata:{generated:l,citations:o.citations.length,proposed_updates:S.length,approve_write:e.approveWrite===!0},now:n}),{run_id:i,prompt:r,generated:l,provider:$,model:v,answer:a,context:o,citations:o.citations,proposed_wiki_updates:S,write_policy:O,usage:k,warnings:T}}import{createHash as TU}from"crypto";var SU=1200,NU=6,bU=12000,IU=50,UT=800;function Qn(e,r,n=16){return`${e}_${TU("sha256").update(r).digest("hex").slice(0,n)}`}function Pg(e){return e.normalize("NFKC").trim().replace(/\s+/g," ")}function xg(e){return Pg(e).toLowerCase()}function mU(e){return Array.from(new Set(xg(e).match(/[\p{L}\p{N}_]+/gu)??[])).slice(0,24)}function $r(e,r){let n=Pg(e);if(n.length<=r)return n;return`${n.slice(0,Math.max(0,r-1)).trim()}...`}function hT(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function Xg(e){return/(?:api[_-]?key|secret|token|password|private[_-]?key|credential)/i.test(e)}function jg(e){return Object.keys(e).filter((r)=>!Xg(r)).sort().slice(0,12)}function wU(e,r){for(let n of r){if(Xg(n))continue;let i=e[n];if(typeof i==="string"&&i.trim())return i.trim()}return null}function Wt(e,r){if(!e)return null;let n=je(e,r).text;try{let i=new URL(n),t=["token","access_token","api_key","apikey","key","secret","password","signature","sig"];for(let u of t)i.searchParams.delete(u);for(let[u]of i.searchParams)if(Xg(u))i.searchParams.delete(u);return i.toString()}catch{return n}}function pe(e,r,n){return Wt(wU(e,r),n)}function Gu(e){let r=[];for(let n of jg(e).slice(0,6)){let i=e[n];if(typeof i==="string"&&i.trim())r.push(`${n}=${$r(i,80)}`);else if(typeof i==="number"||typeof i==="boolean")r.push(`${n}=${String(i)}`);else if(i&&typeof i==="object")r.push(`${n}={...}`)}return r.join("; ")}function DU(e){if(!e.trim())return 0;return Math.max(1,Math.ceil(e.length/4))}function OT(e){return DU(JSON.stringify(e))}function UU(e){if(!Number.isFinite(e??NaN))return SU;let r=Math.floor(e);if(rn.includes(t)).length;return Number((i/r.length).toFixed(6))}function OU(e){return["This pack is read-only and performs no durable writes.","Use citation ids and refs instead of pasting raw artifacts into prompts.","Resolve source or artifact refs explicitly only when raw content is needed and allowed.","Run generated knowledge writes through approval-gated commands before applying.",e==="loops"||e==="runs"?"Run evidence is summarized from knowledge run ledgers; raw run artifacts remain referenced, not embedded.":"Search evidence is derived from indexed chunks/wiki catalog rows with citation metadata."]}function RU(e,r,n){let i=Wt(r.source_ref,n),t=Wt(r.source_uri,n),u=Wt(r.artifact_uri,n),_=Wt(r.artifact_path,n),c=i??t??_??u??r.id,d=r.quote?Vn(r.quote,n,e<3?220:140):null;return{citation:{id:Qn("cite",`${r.id}\x00${c}`,12),kind:r.artifact_uri||r.artifact_path?"artifact":"source",ref:c,source_ref:i,source_uri:t,artifact_uri:u,artifact_path:_,run_id:null,run_event_id:null,revision:r.revision??null,hash:r.hash??null,chunk_id:r.chunk_id??null,offsets:{start:r.start_offset??null,end:r.end_offset??null},quote_preview:d?.text??null},redactions:d?.redactions??0}}async function LU(e,r){let n=(e.query??e.topic??"").trim();if(!n)throw Error("Context pack query is required for search source.");let{config:i,dbPath:t,limit:u,semantic:_,modelRef:c,dimensions:d,fake:g,env:f,batchSize:o,maxParallelCalls:a,legacyStorePath:l}=e,$=await Yn({dbPath:t,config:i,legacyStorePath:l,query:n,limit:Math.max(r,u??r),semantic:_,modelRef:c,dimensions:d,fake:g,env:f,batchSize:o,maxParallelCalls:a,contextChars:Math.min(e.contextChars??700,1200)}),v=new Map,k=0;$.citations.forEach((b,D)=>{let y=RU(D,b,e.safetyPolicy);k+=y.redactions,v.set(b.id,y.citation)});let T=$.excerpts.slice(0,Math.max(r*2,r)).map((b)=>{let D=$.results.find((J)=>J.id===b.result_id),y=b.citation_id?v.get(b.citation_id):null,x=Vn(b.text,e.safetyPolicy,520);k+=x.redactions;let F=D?.title??y?.ref??b.kind;return{id:Qn("ev",`${b.kind}\x00${b.result_id}\x00${b.citation_id??""}`,14),kind:b.kind,title:$r(F,100),text_preview:x.text,score:Number(b.score.toFixed(6)),citation_ids:y?[y.id]:[],provenance:{source:"search",record_ref:`${b.kind}:${b.result_id}`,created_at:$.created_at,updated_at:null,metadata_keys:[]}}}),S=new Set(T.flatMap((b)=>b.citation_ids));return{citations:Array.from(v.values()).filter((b)=>S.has(b.id)),evidence:T,duplicateCandidates:[],redactions:k,warnings:$.warnings,available:$.excerpts.length}}function AU(e,r,n){if(r)return e.query(`SELECT id, type, prompt, status, provider, model, cost_tokens, cost_usd, metadata_json, created_at, updated_at FROM runs WHERE updated_at >= ? OR created_at >= ? ORDER BY updated_at DESC, created_at DESC - LIMIT ?`).all(r,r,t);return e.query(`SELECT id, type, prompt, status, provider, model, cost_tokens, cost_usd, metadata_json, created_at, updated_at + LIMIT ?`).all(r,r,n);return e.query(`SELECT id, type, prompt, status, provider, model, cost_tokens, cost_usd, metadata_json, created_at, updated_at FROM runs ORDER BY updated_at DESC, created_at DESC - LIMIT ?`).all(t)}function Xm(e,r,t){if(r.length===0)return[];let i=r.map(()=>"?").join(", ");return e.query(`SELECT id, run_id, level, event, metadata_json, created_at + LIMIT ?`).all(n)}function yU(e,r,n){if(r.length===0)return[];let i=r.map(()=>"?").join(", ");return e.query(`SELECT id, run_id, level, event, metadata_json, created_at FROM run_events WHERE run_id IN (${i}) ORDER BY created_at DESC - LIMIT ?`).all(...r,t)}function ym(e,r){return`${e.type} ${e.metadata_json} ${r.map((i)=>`${i.event} ${i.metadata_json}`).join(" ")}`.toLowerCase().includes("loop")}function xm(e,r,t){let i=pe(r,["source_ref","source_uri","evidence_uri","receipt_uri"],t),n=pe(r,["artifact_uri"],t),_=pe(r,["artifact_path","artifact_key"],t),u=i??n??_??`knowledge://project/runs/${e.id}`,c=e.prompt?Ht(e.prompt,t,180).text:null;return{id:Vt("cite",`run\x00${e.id}\x00${u}`,12),kind:n||_?"artifact":"run",ref:u,source_ref:i?.startsWith("open-files://")?i:null,source_uri:i&&!i.startsWith("open-files://")?i:null,artifact_uri:n,artifact_path:_,run_id:e.id,run_event_id:null,revision:pe(r,["revision"],t),hash:pe(r,["hash","content_hash"],t),chunk_id:null,offsets:{start:null,end:null},quote_preview:c}}function jm(e,r,t){let i=pe(r,["source_ref","source_uri","evidence_uri","receipt_uri"],t),n=pe(r,["artifact_uri"],t),_=pe(r,["artifact_path","artifact_key"],t),u=i??n??_??`knowledge://project/runs/${e.run_id}`,c=Ht(e.event,t,160).text;return{id:Vt("cite",`event\x00${e.id}\x00${u}`,12),kind:n||_?"artifact":"run_event",ref:u,source_ref:i?.startsWith("open-files://")?i:null,source_uri:i&&!i.startsWith("open-files://")?i:null,artifact_uri:n,artifact_path:_,run_id:e.run_id,run_event_id:e.id,revision:pe(r,["revision"],t),hash:pe(r,["hash","content_hash"],t),chunk_id:null,offsets:{start:null,end:null},quote_preview:c}}function XN(e){let r=new Map;for(let t of e){let i=Po(`${t.title} ${t.text_preview}`).replace(/\b(?:file|https?|s3):\/\/\S+/g,"").replace(/\b(?:run|evt|task|loop)_[a-z0-9_]+\b/g,"").replace(/[^a-z0-9 ]+/g,"").replace(/\b(?:run|event|completed|dry_run|pending)\b/g,"").replace(/\s+/g," ").trim().slice(0,220);if(!i)continue;r.set(i,[...r.get(i)??[],t.id])}return Array.from(r.entries()).filter(([,t])=>t.length>1).map(([t,i])=>({id:Vt("dup",t,12),reason:"normalized_text_match",evidence_ids:i,confidence:i.length>2?"high":"medium"}))}async function Pm(e,r,t){let i=e.source==="loops"?"loops":"runs",n=(e.topic??e.query??"").trim(),_=Lm(n),u=AN(e.since,t),c=u.warning?[u.warning]:[];x(e.dbPath);let d=A(e.dbPath);try{let o=Am(d,u.cutoff,Math.max(r*8,40)),a=Xm(d,o.map((N)=>N.id),Math.max(r*12,80)),g=new Map;for(let N of a)g.set(N.run_id,[...g.get(N.run_id)??[],N]);let l=(i==="loops"?o.filter((N)=>ym(N,g.get(N.id)??[])):o).map((N)=>{let k=DN(N.metadata_json),R=`${N.type} ${N.status} ${N.prompt??""} ${q_(k)} ${(g.get(N.id)??[]).map((S)=>`${S.event} ${S.metadata_json}`).join(" ")}`;return{row:N,metadata:k,score:hN(R,_),text:R}}).filter((N)=>_.length===0||N.score>0).sort((N,k)=>k.score-N.score||k.row.updated_at.localeCompare(N.row.updated_at)||N.row.id.localeCompare(k.row.id)),T=[],f=[],v=0;for(let N of l.slice(0,Math.max(r*2,r))){let k=xm(N.row,N.metadata,e.safetyPolicy);T.push(k);let R=q_(N.metadata),S=[N.row.prompt,R].filter(Boolean).join(" | ")||`${N.row.type} ${N.row.status}`,U=Ht(S,e.safetyPolicy,420);v+=U.redactions,f.push({id:`run:${N.row.id}`,kind:N.row.type,title:Tr(`${N.row.type}: ${N.row.status}`,100),text_preview:U.text,score:N.score,citation_ids:[k.id],provenance:{source:i,record_ref:`knowledge://project/runs/${N.row.id}`,created_at:N.row.created_at,updated_at:N.row.updated_at,metadata_keys:xo(N.metadata)}});let X=(g.get(N.row.id)??[]).map((j)=>{let K=DN(j.metadata_json),W=`${j.event} ${q_(K)} ${j.metadata_json}`;return{event:j,metadata:K,score:hN(W,_),text:W}}).filter((j)=>_.length===0||j.score>0).sort((j,K)=>K.score-j.score||K.event.created_at.localeCompare(j.event.created_at)||j.event.id.localeCompare(K.event.id)).slice(0,2);for(let j of X){let K=jm(j.event,j.metadata,e.safetyPolicy);T.push(K);let W=Ht(`${j.event}: ${q_(j.metadata)}`,e.safetyPolicy,320);v+=W.redactions,f.push({id:`event:${j.event.id}`,kind:`run_event:${j.event.level}`,title:Tr(j.event.event,100),text_preview:W.text,score:j.score,citation_ids:[K.id],provenance:{source:i,record_ref:`knowledge://project/runs/${j.event.run_id}`,created_at:j.event.created_at,updated_at:null,metadata_keys:xo(j.metadata)}})}}return{citations:T,evidence:f,duplicateCandidates:e.dedupe?XN(f):[],redactions:v,warnings:c,available:l.length}}finally{d.close()}}function Fm(e){let r=e.purpose==="proposal"?`Proposal context: ${Tr(e.query||"loop evidence",80)}`:`Knowledge context: ${Tr(e.query,80)}`,t=e.evidence.slice(0,8).map((_)=>_.id),i=e.duplicates.slice(0,5).map((_)=>_.id),n=e.evidence.slice(0,5).map((_)=>`${_.id}: ${_.title}`);if(e.evidence.length===0)n.push("No matching bounded evidence was found.");return{title:r,bullets:n,evidence_ids:t,duplicate_candidate_ids:i,next_actions:e.source==="loops"?["Review duplicate_candidates before drafting a new proposal.","Use cited run refs for provenance; inspect a run only when more detail is needed.","Keep proposal writes approval-gated and idempotent."]:["Use evidence_ids and citation_ids in prompts instead of raw excerpts when possible.","Inspect cited refs only if the bounded preview is insufficient.","Use knowledge build/file-answer only with explicit approval for durable writes."]}}function yN(e){let r=new Set(e.evidence.flatMap((t)=>t.citation_ids));e.citations=e.citations.filter((t)=>r.has(t.id))}function wN(e){e.outline.evidence_ids=e.evidence.slice(0,8).map((r)=>r.id),e.outline.bullets=e.evidence.length>0?e.evidence.slice(0,5).map((r)=>`${r.id}: ${r.title}`):["No matching bounded evidence was found."],e.outline.duplicate_candidate_ids=e.duplicate_candidates.slice(0,5).map((r)=>r.id)}function Km(e){let r=e.budgets.max_tokens,t=new Set(e.warnings);while(RN(e)>r){let i=e.evidence.map((_,u)=>({entry:_,index:u})).filter(({entry:_})=>_.text_preview.length>180).sort((_,u)=>u.entry.text_preview.length-_.entry.text_preview.length)[0];if(i){i.entry.text_preview=Tr(i.entry.text_preview,180),t.add("text_preview_truncated_for_token_budget");continue}let n=e.citations.filter((_)=>(_.quote_preview?.length??0)>120).sort((_,u)=>(u.quote_preview?.length??0)-(_.quote_preview?.length??0))[0];if(n?.quote_preview){n.quote_preview=Tr(n.quote_preview,120),t.add("citation_quote_truncated_for_token_budget");continue}if(e.evidence.length>0){e.evidence.pop(),e.budgets.items_truncated+=1,e.duplicate_candidates=e.duplicate_candidates.map((_)=>({..._,evidence_ids:_.evidence_ids.filter((u)=>e.evidence.some((c)=>c.id===u))})).filter((_)=>_.evidence_ids.length>1),wN(e),t.add("evidence_truncated_for_token_budget"),yN(e);continue}if(e.outline.next_actions.length>1){e.outline.next_actions.pop(),t.add("outline_truncated_for_token_budget");continue}t.add("token_budget_floor_exceeded");break}if(e.warnings=Array.from(t).sort(),e.budgets.items_included=e.evidence.length,wN(e),e.budgets.estimated_tokens=RN(e),e.budgets.token_budget_exceeded=e.budgets.estimated_tokens>r,e.budgets.token_budget_exceeded)throw Error(`Unable to build context pack within ${r} token budget; increase --max-tokens.`);return e.message=`${e.evidence.length} bounded evidence item(s), estimated ${e.budgets.estimated_tokens}/${r} token(s)`,e}async function xN(e){let r=e.now??new Date,t=e.source??"search",i=e.purpose??(t==="loops"||t==="runs"?"proposal":"agent_context"),n=mm(e.maxTokens),_=Dm(e.maxItems,e.limit),u=jo(e.query??e.topic??"");if(i==="proposal"&&t!=="search"&&!u)throw Error("Proposal context requires --topic or a positional topic.");if(t!=="search")x(e.dbPath);let c=AN(e.since,r).cutoff??e.since??"",d=t==="search"?await wm(e,_):await Pm(e,_,r),o=d.evidence.sort((T,f)=>f.score-T.score||T.id.localeCompare(f.id)).slice(0,_),a=d.citations.filter((T,f,v)=>v.findIndex((N)=>N.id===T.id)===f).sort((T,f)=>T.id.localeCompare(f.id)),g=e.dedupe?XN(o):d.duplicateCandidates.filter((T)=>T.evidence_ids.every((f)=>o.some((v)=>v.id===f))),E=Fm({source:t,purpose:i,query:u,evidence:o,duplicates:g}),l={ok:!0,format:"knowledge-agent-context-pack",version:1,created_at:r.toISOString(),source:t,purpose:i,query:u,topic:e.topic??null,since:e.since??null,dry_run:!0,idempotency_key:Vt("ctx",[t,i,u,c,e.dedupe===!0?"dedupe":"no-dedupe",e.semantic===!0?"semantic":"keyword",e.modelRef??"",e.limit??"",n,_,o.map((T)=>T.id).join(","),a.map((T)=>T.id).join(",")].join("\x00"),20),budgets:{max_tokens:n,estimated_tokens:0,max_items:_,items_included:o.length,items_available:d.available,items_truncated:Math.max(0,d.available-o.length),token_budget_exceeded:!1},safety:{raw_artifact_content_included:!1,durable_writes_performed:!1,redactions:d.redactions,reminders:Rm(t)},citations:a,evidence:o,duplicate_candidates:g,outline:E,warnings:d.warnings,message:`${o.length} bounded evidence item(s), estimated under ${n} token(s)`};return yN(l),Km(l)}import{randomUUID as iS}from"crypto";import{createHash as Wm,randomUUID as Jm}from"crypto";import{existsSync as zm,readFileSync as Mm}from"fs";import{hostname as JN}from"os";import{fileURLToPath as zN}from"url";import{relative as MN,resolve as jN,sep as Cm}from"path";var B_=["sources","wiki_pages","source_revisions","chunks","chunk_embeddings","wiki_backlinks","citations","knowledge_indexes","runs","run_events","provider_usage","redaction_findings","storage_objects","audit_events","approval_gates","vector_index_entries","reindex_queue","knowledge_machines","knowledge_sync_snapshots","knowledge_sync_changes","knowledge_sync_conflicts","knowledge_sync_table_clocks","knowledge_sync_imports"],wr=2,Ar=1,Gn={sources:["id"],wiki_pages:["id"],source_revisions:["id"],chunks:["id"],chunk_embeddings:["id"],wiki_backlinks:["from_page_id","to_page_id"],citations:["id"],knowledge_indexes:["id"],runs:["id"],run_events:["id"],provider_usage:["id"],redaction_findings:["id"],storage_objects:["id"],audit_events:["id"],approval_gates:["id"],vector_index_entries:["id"],reindex_queue:["id"],knowledge_machines:["machine_id"],knowledge_sync_snapshots:["id"],knowledge_sync_changes:["id"],knowledge_sync_conflicts:["id"],knowledge_sync_table_clocks:["table_name","machine_id"],knowledge_sync_imports:["bundle_id"]},Yn=new Set(["storage_objects","knowledge_sync_changes","knowledge_sync_table_clocks","knowledge_sync_imports"]);function er(e=new Date){return e.toISOString()}function Co(e){return`${e}_${Date.now().toString(36)}_${Jm().slice(0,8)}`}function CN(e){let r=e?.trim();if(r)return r;return process.env.HASNA_MACHINE_ID??process.env.OPEN_MACHINES_MACHINE_ID??process.env.MACHINE_ID??JN()}function Zt(e){if(Array.isArray(e))return`[${e.map(Zt).join(",")}]`;if(e&&typeof e==="object"){let r=e;return`{${Object.keys(r).sort().map((t)=>`${JSON.stringify(t)}:${Zt(r[t])}`).join(",")}}`}return JSON.stringify(e)}function V_(e){return`sha256:${Wm("sha256").update(e).digest("hex")}`}function G_(e,r){return e.query(`SELECT COUNT(*) AS n FROM ${r}`).get()?.n??0}function Q_(e,r){try{return JSON.parse(e)}catch{return r}}function De(e){return`"${e.replace(/"/g,'""')}"`}function qm(e){if(e===void 0||e===null)return null;if(typeof e==="string"||typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return e;if(e instanceof Date)return e.toISOString();if(Buffer.isBuffer(e)||e instanceof Uint8Array)return e;if(typeof e==="object")return JSON.stringify(e);return String(e)}function qN(e,r){return r.filter((t)=>xe(e,t))}function xe(e,r){let t=e.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(r);return Boolean(t)}function Gm(e,r){let t=e.query(`PRAGMA table_info(${De(r)})`).all();return new Set(t.map((i)=>i.name))}function Ym(e,r,t){let i=Gm(e,r);return t.filter((n)=>i.has(n))}function GN(e){if(!e||e.length===0)return[...B_];let r=new Set(B_),t=e.map((n)=>n.trim()).filter(Boolean),i=t.filter((n)=>!r.has(n));if(i.length>0)throw Error(`Unknown knowledge sync table(s): ${i.join(", ")}`);return t}function rt(e,r){return Gn[e].map((i)=>`${i}=${JSON.stringify(r[i]??null)}`).join("&")}var Bm=new Set(["raw","raw_bytes","raw_content","content_base64","source_bytes","source_content","body_bytes"]);function Cn(e,r=0){if(r>8)return"[truncated-depth]";if(typeof e==="string")return e.length>4000?`${e.slice(0,4000)}...[truncated]`:e;if(e===null||typeof e!=="object")return e;if(Array.isArray(e))return e.slice(0,50).map((i)=>Cn(i,r+1));let t={};for(let[i,n]of Object.entries(e)){if(Bm.has(i.toLowerCase()))continue;t[i]=Cn(n,r+1)}return t}function Mn(e){if(!e)return null;return Cn(e)}function qo(e){return V_(Zt(e))}function Hm(e,r){let t={};for(let[i,n]of Object.entries(e))if(i==="artifact_uri"&&typeof n==="string"&&r.has(n))t[i]=`artifact:${r.get(n)}`;else t[i]=n;return t}function et(e,r=new Map){return qo(Hm(e,r))}function YN(e,r){if(!xe(e,r))return[];return e.query(`SELECT * FROM ${De(r)} ORDER BY rowid ASC`).all()}function H_(e,r,t=new Map){return qo(r.map((i)=>({key:rt(e,i),hash:et(i,t)})).sort((i,n)=>i.key.localeCompare(n.key)))}function qn(e,r,t){return e.query("SELECT * FROM knowledge_sync_table_clocks WHERE table_name = ? AND machine_id = ?").get(r,t)??null}function Vm(e){if(!xe(e,"knowledge_sync_table_clocks"))return[];return e.query("SELECT * FROM knowledge_sync_table_clocks ORDER BY table_name ASC, machine_id ASC").all()}function Z_(e,r){let t=r.now??er(),n=qn(e,r.table,r.machineId)?.created_at??t;e.query(` + LIMIT ?`).all(...r,n)}function jU(e,r){return`${e.type} ${e.metadata_json} ${r.map((i)=>`${i.event} ${i.metadata_json}`).join(" ")}`.toLowerCase().includes("loop")}function PU(e,r,n){let i=pe(r,["source_ref","source_uri","evidence_uri","receipt_uri"],n),t=pe(r,["artifact_uri"],n),u=pe(r,["artifact_path","artifact_key"],n),_=i??t??u??`knowledge://project/runs/${e.id}`,c=e.prompt?Vn(e.prompt,n,180).text:null;return{id:Qn("cite",`run\x00${e.id}\x00${_}`,12),kind:t||u?"artifact":"run",ref:_,source_ref:i?.startsWith("open-files://")?i:null,source_uri:i&&!i.startsWith("open-files://")?i:null,artifact_uri:t,artifact_path:u,run_id:e.id,run_event_id:null,revision:pe(r,["revision"],n),hash:pe(r,["hash","content_hash"],n),chunk_id:null,offsets:{start:null,end:null},quote_preview:c}}function xU(e,r,n){let i=pe(r,["source_ref","source_uri","evidence_uri","receipt_uri"],n),t=pe(r,["artifact_uri"],n),u=pe(r,["artifact_path","artifact_key"],n),_=i??t??u??`knowledge://project/runs/${e.run_id}`,c=Vn(e.event,n,160).text;return{id:Qn("cite",`event\x00${e.id}\x00${_}`,12),kind:t||u?"artifact":"run_event",ref:_,source_ref:i?.startsWith("open-files://")?i:null,source_uri:i&&!i.startsWith("open-files://")?i:null,artifact_uri:t,artifact_path:u,run_id:e.run_id,run_event_id:e.id,revision:pe(r,["revision"],n),hash:pe(r,["hash","content_hash"],n),chunk_id:null,offsets:{start:null,end:null},quote_preview:c}}function yT(e){let r=new Map;for(let n of e){let i=xg(`${n.title} ${n.text_preview}`).replace(/\b(?:file|https?|s3):\/\/\S+/g,"").replace(/\b(?:run|evt|task|loop)_[a-z0-9_]+\b/g,"").replace(/[^a-z0-9 ]+/g,"").replace(/\b(?:run|event|completed|dry_run|pending)\b/g,"").replace(/\s+/g," ").trim().slice(0,220);if(!i)continue;r.set(i,[...r.get(i)??[],n.id])}return Array.from(r.entries()).filter(([,n])=>n.length>1).map(([n,i])=>({id:Qn("dup",n,12),reason:"normalized_text_match",evidence_ids:i,confidence:i.length>2?"high":"medium"}))}async function XU(e,r,n){let i=e.source==="loops"?"loops":"runs",t=(e.topic??e.query??"").trim(),u=mU(t),_=AT(e.since,n),c=_.warning?[_.warning]:[];P(e.dbPath);let d=A(e.dbPath);try{let g=AU(d,_.cutoff,Math.max(r*8,40)),f=yU(d,g.map((T)=>T.id),Math.max(r*12,80)),o=new Map;for(let T of f)o.set(T.run_id,[...o.get(T.run_id)??[],T]);let l=(i==="loops"?g.filter((T)=>jU(T,o.get(T.id)??[])):g).map((T)=>{let S=hT(T.metadata_json),O=`${T.type} ${T.status} ${T.prompt??""} ${Gu(S)} ${(o.get(T.id)??[]).map((b)=>`${b.event} ${b.metadata_json}`).join(" ")}`;return{row:T,metadata:S,score:RT(O,u),text:O}}).filter((T)=>u.length===0||T.score>0).sort((T,S)=>S.score-T.score||S.row.updated_at.localeCompare(T.row.updated_at)||T.row.id.localeCompare(S.row.id)),$=[],v=[],k=0;for(let T of l.slice(0,Math.max(r*2,r))){let S=PU(T.row,T.metadata,e.safetyPolicy);$.push(S);let O=Gu(T.metadata),b=[T.row.prompt,O].filter(Boolean).join(" | ")||`${T.row.type} ${T.row.status}`,D=Vn(b,e.safetyPolicy,420);k+=D.redactions,v.push({id:`run:${T.row.id}`,kind:T.row.type,title:$r(`${T.row.type}: ${T.row.status}`,100),text_preview:D.text,score:T.score,citation_ids:[S.id],provenance:{source:i,record_ref:`knowledge://project/runs/${T.row.id}`,created_at:T.row.created_at,updated_at:T.row.updated_at,metadata_keys:jg(T.metadata)}});let y=(o.get(T.row.id)??[]).map((x)=>{let F=hT(x.metadata_json),J=`${x.event} ${Gu(F)} ${x.metadata_json}`;return{event:x,metadata:F,score:RT(J,u),text:J}}).filter((x)=>u.length===0||x.score>0).sort((x,F)=>F.score-x.score||F.event.created_at.localeCompare(x.event.created_at)||x.event.id.localeCompare(F.event.id)).slice(0,2);for(let x of y){let F=xU(x.event,x.metadata,e.safetyPolicy);$.push(F);let J=Vn(`${x.event}: ${Gu(x.metadata)}`,e.safetyPolicy,320);k+=J.redactions,v.push({id:`event:${x.event.id}`,kind:`run_event:${x.event.level}`,title:$r(x.event.event,100),text_preview:J.text,score:x.score,citation_ids:[F.id],provenance:{source:i,record_ref:`knowledge://project/runs/${x.event.run_id}`,created_at:x.event.created_at,updated_at:null,metadata_keys:jg(x.metadata)}})}}return{citations:$,evidence:v,duplicateCandidates:e.dedupe?yT(v):[],redactions:k,warnings:c,available:l.length}}finally{d.close()}}function KU(e){let r=e.purpose==="proposal"?`Proposal context: ${$r(e.query||"loop evidence",80)}`:`Knowledge context: ${$r(e.query,80)}`,n=e.evidence.slice(0,8).map((u)=>u.id),i=e.duplicates.slice(0,5).map((u)=>u.id),t=e.evidence.slice(0,5).map((u)=>`${u.id}: ${u.title}`);if(e.evidence.length===0)t.push("No matching bounded evidence was found.");return{title:r,bullets:t,evidence_ids:n,duplicate_candidate_ids:i,next_actions:e.source==="loops"?["Review duplicate_candidates before drafting a new proposal.","Use cited run refs for provenance; inspect a run only when more detail is needed.","Keep proposal writes approval-gated and idempotent."]:["Use evidence_ids and citation_ids in prompts instead of raw excerpts when possible.","Inspect cited refs only if the bounded preview is insufficient.","Use knowledge build/file-answer only with explicit approval for durable writes."]}}function jT(e){let r=new Set(e.evidence.flatMap((n)=>n.citation_ids));e.citations=e.citations.filter((n)=>r.has(n.id))}function LT(e){e.outline.evidence_ids=e.evidence.slice(0,8).map((r)=>r.id),e.outline.bullets=e.evidence.length>0?e.evidence.slice(0,5).map((r)=>`${r.id}: ${r.title}`):["No matching bounded evidence was found."],e.outline.duplicate_candidate_ids=e.duplicate_candidates.slice(0,5).map((r)=>r.id)}function FU(e){let r=e.budgets.max_tokens,n=new Set(e.warnings);while(OT(e)>r){let i=e.evidence.map((u,_)=>({entry:u,index:_})).filter(({entry:u})=>u.text_preview.length>180).sort((u,_)=>_.entry.text_preview.length-u.entry.text_preview.length)[0];if(i){i.entry.text_preview=$r(i.entry.text_preview,180),n.add("text_preview_truncated_for_token_budget");continue}let t=e.citations.filter((u)=>(u.quote_preview?.length??0)>120).sort((u,_)=>(_.quote_preview?.length??0)-(u.quote_preview?.length??0))[0];if(t?.quote_preview){t.quote_preview=$r(t.quote_preview,120),n.add("citation_quote_truncated_for_token_budget");continue}if(e.evidence.length>0){e.evidence.pop(),e.budgets.items_truncated+=1,e.duplicate_candidates=e.duplicate_candidates.map((u)=>({...u,evidence_ids:u.evidence_ids.filter((_)=>e.evidence.some((c)=>c.id===_))})).filter((u)=>u.evidence_ids.length>1),LT(e),n.add("evidence_truncated_for_token_budget"),jT(e);continue}if(e.outline.next_actions.length>1){e.outline.next_actions.pop(),n.add("outline_truncated_for_token_budget");continue}n.add("token_budget_floor_exceeded");break}if(e.warnings=Array.from(n).sort(),e.budgets.items_included=e.evidence.length,LT(e),e.budgets.estimated_tokens=OT(e),e.budgets.token_budget_exceeded=e.budgets.estimated_tokens>r,e.budgets.token_budget_exceeded)throw Error(`Unable to build context pack within ${r} token budget; increase --max-tokens.`);return e.message=`${e.evidence.length} bounded evidence item(s), estimated ${e.budgets.estimated_tokens}/${r} token(s)`,e}async function PT(e){let r=e.now??new Date,n=e.source??"search",i=e.purpose??(n==="loops"||n==="runs"?"proposal":"agent_context"),t=UU(e.maxTokens),u=hU(e.maxItems,e.limit),_=Pg(e.query??e.topic??"");if(i==="proposal"&&n!=="search"&&!_)throw Error("Proposal context requires --topic or a positional topic.");if(n!=="search")P(e.dbPath);let c=AT(e.since,r).cutoff??e.since??"",d=n==="search"?await LU(e,u):await XU(e,u,r),g=d.evidence.sort(($,v)=>v.score-$.score||$.id.localeCompare(v.id)).slice(0,u),f=d.citations.filter(($,v,k)=>k.findIndex((T)=>T.id===$.id)===v).sort(($,v)=>$.id.localeCompare(v.id)),o=e.dedupe?yT(g):d.duplicateCandidates.filter(($)=>$.evidence_ids.every((v)=>g.some((k)=>k.id===v))),a=KU({source:n,purpose:i,query:_,evidence:g,duplicates:o}),l={ok:!0,format:"knowledge-agent-context-pack",version:1,created_at:r.toISOString(),source:n,purpose:i,query:_,topic:e.topic??null,since:e.since??null,dry_run:!0,idempotency_key:Qn("ctx",[n,i,_,c,e.dedupe===!0?"dedupe":"no-dedupe",e.semantic===!0?"semantic":"keyword",e.modelRef??"",e.limit??"",t,u,g.map(($)=>$.id).join(","),f.map(($)=>$.id).join(",")].join("\x00"),20),budgets:{max_tokens:t,estimated_tokens:0,max_items:u,items_included:g.length,items_available:d.available,items_truncated:Math.max(0,d.available-g.length),token_budget_exceeded:!1},safety:{raw_artifact_content_included:!1,durable_writes_performed:!1,redactions:d.redactions,reminders:OU(n)},citations:f,evidence:g,duplicate_candidates:o,outline:a,warnings:d.warnings,message:`${g.length} bounded evidence item(s), estimated under ${t} token(s)`};return jT(l),FU(l)}import{randomUUID as ib}from"crypto";import{createHash as JU,randomUUID as zU}from"crypto";import{existsSync as WU,readFileSync as MU}from"fs";import{hostname as zT}from"os";import{fileURLToPath as WT}from"url";import{relative as MT,resolve as xT,sep as qU}from"path";var Cu=["sources","wiki_pages","source_revisions","chunks","chunk_embeddings","wiki_backlinks","citations","knowledge_indexes","runs","run_events","provider_usage","redaction_findings","storage_objects","audit_events","approval_gates","vector_index_entries","reindex_queue","knowledge_machines","knowledge_sync_snapshots","knowledge_sync_changes","knowledge_sync_conflicts","knowledge_sync_table_clocks","knowledge_sync_imports"],Lr=2,Ar=1,Ht={sources:["id"],wiki_pages:["id"],source_revisions:["id"],chunks:["id"],chunk_embeddings:["id"],wiki_backlinks:["from_page_id","to_page_id"],citations:["id"],knowledge_indexes:["id"],runs:["id"],run_events:["id"],provider_usage:["id"],redaction_findings:["id"],storage_objects:["id"],audit_events:["id"],approval_gates:["id"],vector_index_entries:["id"],reindex_queue:["id"],knowledge_machines:["machine_id"],knowledge_sync_snapshots:["id"],knowledge_sync_changes:["id"],knowledge_sync_conflicts:["id"],knowledge_sync_table_clocks:["table_name","machine_id"],knowledge_sync_imports:["bundle_id"]},Bt=new Set(["storage_objects","knowledge_sync_changes","knowledge_sync_table_clocks","knowledge_sync_imports"]);function er(e=new Date){return e.toISOString()}function Mg(e){return`${e}_${Date.now().toString(36)}_${zU().slice(0,8)}`}function qT(e){let r=e?.trim();if(r)return r;return process.env.HASNA_MACHINE_ID??process.env.OPEN_MACHINES_MACHINE_ID??process.env.MACHINE_ID??zT()}function sn(e){if(Array.isArray(e))return`[${e.map(sn).join(",")}]`;if(e&&typeof e==="object"){let r=e;return`{${Object.keys(r).sort().map((n)=>`${JSON.stringify(n)}:${sn(r[n])}`).join(",")}}`}return JSON.stringify(e)}function Vu(e){return`sha256:${JU("sha256").update(e).digest("hex")}`}function Hu(e,r){return e.query(`SELECT COUNT(*) AS n FROM ${r}`).get()?.n??0}function Qu(e,r){try{return JSON.parse(e)}catch{return r}}function he(e){return`"${e.replace(/"/g,'""')}"`}function GU(e){if(e===void 0||e===null)return null;if(typeof e==="string"||typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return e;if(e instanceof Date)return e.toISOString();if(Buffer.isBuffer(e)||e instanceof Uint8Array)return e;if(typeof e==="object")return JSON.stringify(e);return String(e)}function GT(e,r){return r.filter((n)=>Pe(e,n))}function Pe(e,r){let n=e.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(r);return Boolean(n)}function HU(e,r){let n=e.query(`PRAGMA table_info(${he(r)})`).all();return new Set(n.map((i)=>i.name))}function BU(e,r,n){let i=HU(e,r);return n.filter((t)=>i.has(t))}function HT(e){if(!e||e.length===0)return[...Cu];let r=new Set(Cu),n=e.map((t)=>t.trim()).filter(Boolean),i=n.filter((t)=>!r.has(t));if(i.length>0)throw Error(`Unknown knowledge sync table(s): ${i.join(", ")}`);return n}function rn(e,r){return Ht[e].map((i)=>`${i}=${JSON.stringify(r[i]??null)}`).join("&")}var CU=new Set(["raw","raw_bytes","raw_content","content_base64","source_bytes","source_content","body_bytes"]);function qt(e,r=0){if(r>8)return"[truncated-depth]";if(typeof e==="string")return e.length>4000?`${e.slice(0,4000)}...[truncated]`:e;if(e===null||typeof e!=="object")return e;if(Array.isArray(e))return e.slice(0,50).map((i)=>qt(i,r+1));let n={};for(let[i,t]of Object.entries(e)){if(CU.has(i.toLowerCase()))continue;n[i]=qt(t,r+1)}return n}function Mt(e){if(!e)return null;return qt(e)}function qg(e){return Vu(sn(e))}function YU(e,r){let n={};for(let[i,t]of Object.entries(e))if(i==="artifact_uri"&&typeof t==="string"&&r.has(t))n[i]=`artifact:${r.get(t)}`;else n[i]=t;return n}function en(e,r=new Map){return qg(YU(e,r))}function BT(e,r){if(!Pe(e,r))return[];return e.query(`SELECT * FROM ${he(r)} ORDER BY rowid ASC`).all()}function Yu(e,r,n=new Map){return qg(r.map((i)=>({key:rn(e,i),hash:en(i,n)})).sort((i,t)=>i.key.localeCompare(t.key)))}function Gt(e,r,n){return e.query("SELECT * FROM knowledge_sync_table_clocks WHERE table_name = ? AND machine_id = ?").get(r,n)??null}function VU(e){if(!Pe(e,"knowledge_sync_table_clocks"))return[];return e.query("SELECT * FROM knowledge_sync_table_clocks ORDER BY table_name ASC, machine_id ASC").all()}function Zu(e,r){let n=r.now??er(),t=Gt(e,r.table,r.machineId)?.created_at??n;e.query(` INSERT INTO knowledge_sync_table_clocks ( table_name, machine_id, logical_clock, high_water_hash, high_water_bundle_id, origin_machine_id, updated_by_machine_id, last_applied_at, metadata_json, @@ -747,17 +747,17 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, last_applied_at = excluded.last_applied_at, metadata_json = excluded.metadata_json, updated_at = excluded.updated_at - `).run(r.table,r.machineId,r.logicalClock,r.highWaterHash,r.highWaterBundleId??null,r.originMachineId??r.machineId,r.updatedByMachineId??r.machineId,r.lastAppliedAt??t,JSON.stringify(r.metadata??{}),n,t);let _=qn(e,r.table,r.machineId);if(!_)throw Error(`Failed to record sync clock for ${r.table}:${r.machineId}`);return _}function Qm(e,r){let t=qn(e,r.table,r.machineId),i=t?.high_water_hash===r.highWaterHash?t.logical_clock:(t?.logical_clock??0)+1,n=r.record?Z_(e,{table:r.table,machineId:r.machineId,logicalClock:i,highWaterHash:r.highWaterHash,highWaterBundleId:null,originMachineId:t?.origin_machine_id??r.machineId,updatedByMachineId:r.machineId,lastAppliedAt:r.now,metadata:{source:"export",row_count:r.rowCount},now:r.now}):{table_name:r.table,machine_id:r.machineId,logical_clock:i,high_water_hash:r.highWaterHash,high_water_bundle_id:t?.high_water_bundle_id??null,origin_machine_id:t?.origin_machine_id??r.machineId,updated_by_machine_id:r.machineId,last_applied_at:r.now,metadata_json:"{}",created_at:t?.created_at??r.now,updated_at:r.now};return{table:r.table,machine_id:r.machineId,logical_clock:n.logical_clock,high_water_hash:r.highWaterHash,high_water_bundle_id:n.high_water_bundle_id,row_count:r.rowCount,updated_at:n.updated_at}}function Zm(e,r,t,i,n){if(r.high_water_bundle_id=t,!i)return;Z_(e,{table:r.table,machineId:r.machine_id,logicalClock:r.logical_clock,highWaterHash:r.high_water_hash,highWaterBundleId:t,originMachineId:r.machine_id,updatedByMachineId:r.machine_id,lastAppliedAt:n,metadata:{source:"export",row_count:r.row_count},now:n})}function BN(e,r){return e.table_clocks?.find((t)=>t.table===r)??null}function sm(e,r){if(!e||!r)return!1;return r.logical_clock"?").join(", "),c=n.map(De).join(", "),d=i.filter((l)=>!n.includes(l)),o=n[0],a=d.length>0?d.map((l)=>`${De(l)} = excluded.${De(l)}`).join(", "):`${De(o)} = excluded.${De(o)}`,g=e.query(`INSERT INTO ${De(r)} (${_}) VALUES (${u}) - ON CONFLICT (${c}) DO UPDATE SET ${a}`);return e.transaction((l)=>{for(let T of l)g.run(...i.map((f)=>qm(T[f])))})(t),t.length}function HN(e,r){let t=Gn[e],i=[],n=r;for(let _=0;_=0?d.slice(0,g):d;try{i.push(JSON.parse(E))}catch{return null}n=g>=0&&a?d.slice(g+1):""}return n.length===0?i:null}function VN(e){return Gn[e].map((r)=>`${De(r)} = ?`).join(" AND ")}function eD(e,r,t){if(!xe(e,"knowledge_sync_changes"))return new Map;let i=e.query(`SELECT entity_id, next_hash + `).run(r.table,r.machineId,r.logicalClock,r.highWaterHash,r.highWaterBundleId??null,r.originMachineId??r.machineId,r.updatedByMachineId??r.machineId,r.lastAppliedAt??n,JSON.stringify(r.metadata??{}),t,n);let u=Gt(e,r.table,r.machineId);if(!u)throw Error(`Failed to record sync clock for ${r.table}:${r.machineId}`);return u}function QU(e,r){let n=Gt(e,r.table,r.machineId),i=n?.high_water_hash===r.highWaterHash?n.logical_clock:(n?.logical_clock??0)+1,t=r.record?Zu(e,{table:r.table,machineId:r.machineId,logicalClock:i,highWaterHash:r.highWaterHash,highWaterBundleId:null,originMachineId:n?.origin_machine_id??r.machineId,updatedByMachineId:r.machineId,lastAppliedAt:r.now,metadata:{source:"export",row_count:r.rowCount},now:r.now}):{table_name:r.table,machine_id:r.machineId,logical_clock:i,high_water_hash:r.highWaterHash,high_water_bundle_id:n?.high_water_bundle_id??null,origin_machine_id:n?.origin_machine_id??r.machineId,updated_by_machine_id:r.machineId,last_applied_at:r.now,metadata_json:"{}",created_at:n?.created_at??r.now,updated_at:r.now};return{table:r.table,machine_id:r.machineId,logical_clock:t.logical_clock,high_water_hash:r.highWaterHash,high_water_bundle_id:t.high_water_bundle_id,row_count:r.rowCount,updated_at:t.updated_at}}function ZU(e,r,n,i,t){if(r.high_water_bundle_id=n,!i)return;Zu(e,{table:r.table,machineId:r.machine_id,logicalClock:r.logical_clock,highWaterHash:r.high_water_hash,highWaterBundleId:n,originMachineId:r.machine_id,updatedByMachineId:r.machine_id,lastAppliedAt:t,metadata:{source:"export",row_count:r.row_count},now:t})}function CT(e,r){return e.table_clocks?.find((n)=>n.table===r)??null}function sU(e,r){if(!e||!r)return!1;return r.logical_clock"?").join(", "),c=t.map(he).join(", "),d=i.filter((l)=>!t.includes(l)),g=t[0],f=d.length>0?d.map((l)=>`${he(l)} = excluded.${he(l)}`).join(", "):`${he(g)} = excluded.${he(g)}`,o=e.query(`INSERT INTO ${he(r)} (${u}) VALUES (${_}) + ON CONFLICT (${c}) DO UPDATE SET ${f}`);return e.transaction((l)=>{for(let $ of l)o.run(...i.map((v)=>GU($[v])))})(n),n.length}function YT(e,r){let n=Ht[e],i=[],t=r;for(let u=0;u=0?d.slice(0,o):d;try{i.push(JSON.parse(a))}catch{return null}t=o>=0&&f?d.slice(o+1):""}return t.length===0?i:null}function VT(e){return Ht[e].map((r)=>`${he(r)} = ?`).join(" AND ")}function eh(e,r,n){if(!Pe(e,"knowledge_sync_changes"))return new Map;let i=e.query(`SELECT entity_id, next_hash FROM knowledge_sync_changes WHERE origin_machine_id = ? AND entity_kind = ? - ORDER BY created_at ASC, id ASC`).all(t,r),n=new Map;for(let _ of i)n.set(_.entity_id,_.next_hash);return n}function rD(e,r){if(xe(e,"chunks_fts"))e.query("DELETE FROM chunks_fts WHERE chunk_id = ?").run(r);if(xe(e,"chunk_embeddings"))e.query("DELETE FROM chunk_embeddings WHERE chunk_id = ?").run(r);if(xe(e,"vector_index_entries"))e.query("DELETE FROM vector_index_entries WHERE chunk_id = ?").run(r);if(xe(e,"citations"))e.query("DELETE FROM citations WHERE chunk_id = ?").run(r)}function tD(e,r,t){let i=HN(r,t);if(!i)return!1;let n=VN(r),_=e.query(`SELECT * FROM ${De(r)} WHERE ${n} LIMIT 1`).get(...i);if(!_)return!1;if(r==="chunks"&&typeof _.id==="string")rD(e,_.id);return e.query(`DELETE FROM ${De(r)} WHERE ${n}`).run(...i),!0}function nD(e,r){if(!xe(e,"chunks_fts"))return;for(let t of r){let i=typeof t.id==="string"?t.id:null,n=typeof t.text==="string"?t.text:null;if(!i||n===null)continue;let _="",u="",c=typeof t.source_revision_id==="string"?t.source_revision_id:null;if(c){let d=e.query(`SELECT s.title, s.uri + ORDER BY created_at ASC, id ASC`).all(n,r),t=new Map;for(let u of i)t.set(u.entity_id,u.next_hash);return t}function rh(e,r){if(Pe(e,"chunks_fts"))e.query("DELETE FROM chunks_fts WHERE chunk_id = ?").run(r);if(Pe(e,"chunk_embeddings"))e.query("DELETE FROM chunk_embeddings WHERE chunk_id = ?").run(r);if(Pe(e,"vector_index_entries"))e.query("DELETE FROM vector_index_entries WHERE chunk_id = ?").run(r);if(Pe(e,"citations"))e.query("DELETE FROM citations WHERE chunk_id = ?").run(r)}function nh(e,r,n){let i=YT(r,n);if(!i)return!1;let t=VT(r),u=e.query(`SELECT * FROM ${he(r)} WHERE ${t} LIMIT 1`).get(...i);if(!u)return!1;if(r==="chunks"&&typeof u.id==="string")rh(e,u.id);return e.query(`DELETE FROM ${he(r)} WHERE ${t}`).run(...i),!0}function th(e,r){if(!Pe(e,"chunks_fts"))return;for(let n of r){let i=typeof n.id==="string"?n.id:null,t=typeof n.text==="string"?n.text:null;if(!i||t===null)continue;let u="",_="",c=typeof n.source_revision_id==="string"?n.source_revision_id:null;if(c){let d=e.query(`SELECT s.title, s.uri FROM source_revisions sr JOIN sources s ON s.id = sr.source_id WHERE sr.id = ? - LIMIT 1`).get(c);_=d?.title??"",u=d?.uri??""}if(!u&&typeof t.metadata_json==="string"){let d=Q_(t.metadata_json,{});u=typeof d.source_uri==="string"?d.source_uri:""}e.query("DELETE FROM chunks_fts WHERE chunk_id = ?").run(i),e.query("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)").run(i,n,_,u)}}function iD(e,r,t){if(r==="chunks")nD(e,t)}function _D(e,r){let t=MN(e,r);return t!==".."&&!t.startsWith("..")&&!t.startsWith(`..${Cm}`)}function uD(e,r){let t=Q_(e.metadata_json,{});if(typeof t.key==="string")return t.key;if(!e.artifact_uri.startsWith("file://"))return null;try{let i=zN(e.artifact_uri),n=jN(r),_=jN(i);if(!_D(n,_))return null;let u=MN(n,_).replace(/\\/g,"/");return u?Ze(u):null}catch{return null}}function tt(e){let r=new Map;for(let t of e)if(t.key)r.set(t.artifact_uri,t.key);return r}function Rr(e){return qo({key:e.key,kind:e.kind,hash:e.hash,size_bytes:e.size_bytes})}function s_(e){return e.key??e.artifact_uri}function cD(e,r){return e.artifact_uri.startsWith("s3://")&&r.artifact_store.type==="s3"&&e.artifact_uri.startsWith(r.artifact_store.uri_prefix)}function QN(e){return Object.fromEntries(B_.map((r)=>[r,xe(e,r)?G_(e,r):0]))}function dD(e){return e.query(`SELECT artifact_uri, kind, hash, size_bytes + LIMIT 1`).get(c);u=d?.title??"",_=d?.uri??""}if(!_&&typeof n.metadata_json==="string"){let d=Qu(n.metadata_json,{});_=typeof d.source_uri==="string"?d.source_uri:""}e.query("DELETE FROM chunks_fts WHERE chunk_id = ?").run(i),e.query("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)").run(i,t,u,_)}}function ih(e,r,n){if(r==="chunks")th(e,n)}function uh(e,r){let n=MT(e,r);return n!==".."&&!n.startsWith("..")&&!n.startsWith(`..${qU}`)}function _h(e,r){let n=Qu(e.metadata_json,{});if(typeof n.key==="string")return n.key;if(!e.artifact_uri.startsWith("file://"))return null;try{let i=WT(e.artifact_uri),t=xT(r),u=xT(i);if(!uh(t,u))return null;let _=MT(t,u).replace(/\\/g,"/");return _?Ze(_):null}catch{return null}}function nn(e){let r=new Map;for(let n of e)if(n.key)r.set(n.artifact_uri,n.key);return r}function Or(e){return qg({key:e.key,kind:e.kind,hash:e.hash,size_bytes:e.size_bytes})}function su(e){return e.key??e.artifact_uri}function ch(e,r){return e.artifact_uri.startsWith("s3://")&&r.artifact_store.type==="s3"&&e.artifact_uri.startsWith(r.artifact_store.uri_prefix)}function QT(e){return Object.fromEntries(Cu.map((r)=>[r,Pe(e,r)?Hu(e,r):0]))}function dh(e){return e.query(`SELECT artifact_uri, kind, hash, size_bytes FROM storage_objects - ORDER BY artifact_uri ASC`).all()}function oD(e,r){return{machine_id:e.machine_id,hostname:e.hostname,platform:e.platform,user_label:e.user,workspace_home:e.workspace_path,tailscale_dns:e.tailscale.dns_name,tailscale_ips_json:JSON.stringify(e.tailscale.ips),ssh_target:e.ssh.command_target,last_seen_at:e.local||e.tailscale.online===!0||e.heartbeat_status==="online"?r:e.last_heartbeat_at,capabilities_json:JSON.stringify({route_hints:e.route_hints,heartbeat_status:e.heartbeat_status,manifest_declared:e.manifest_declared}),metadata_json:JSON.stringify({...e.metadata,source:e.source,tags:e.tags,tailscale:e.tailscale,ssh:e.ssh}),created_at:r,updated_at:r}}function Ko(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function gD(e){if(!e)return[];try{let r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function hr(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function Y_(e){return Object.fromEntries(Object.entries(e).filter(([,r])=>r!==void 0))}function Qt(e){if(Array.isArray(e))return`[${e.map(Qt).join(",")}]`;if(e&&typeof e==="object")return`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[t])=>r.localeCompare(t)).map(([r,t])=>`${JSON.stringify(r)}:${Qt(t)}`).join(",")}}`;return JSON.stringify(e)}function PN(e){let{recorded_at:r,...t}=e;return t}function ne(e){return typeof e==="string"&&e.length>0?e:null}function lD(e){return typeof e==="number"&&Number.isFinite(e)?e:null}function FN(e){return typeof e==="boolean"?e:null}function ED(e){return Array.isArray(e)?e.filter((r)=>typeof r==="string"):[]}function ZN(e){let r=hr(e),t=ne(r.observed_at),i=ne(r.source_authority);if(!t||!i)return null;return{observed_at:t,verified_at:ne(r.verified_at),expires_at:ne(r.expires_at),ttl_ms:lD(r.ttl_ms),source_authority:i,confidence:ne(r.confidence),cacheable:r.cacheable===!0,stale:r.stale===!0,reasons:ED(r.reasons)}}function sN(e,r){if(!e||e.stale)return!1;if(!e.expires_at)return!0;let t=Date.parse(e.expires_at),i=Date.parse(r);return Number.isNaN(t)||Number.isNaN(i)||t>i}function aD(e,r){return ne(r.source)===e.source&&ne(r.target)===e.target&&ne(r.route)===e.route&&ne(r.target_kind)===e.targetKind&&ne(r.confidence)===e.confidence}function TD(e,r){return ne(r.source)===e.source&&ne(r.requested_machine_id)===e.requested_machine_id&&ne(r.machine_id)===e.machine_id&&ne(r.project_id)===e.project_id&&ne(r.repo_name)===e.repo_name&&ne(r.project_root)===e.project_root&&ne(r.project_root_source)===e.project_root_source&&ne(r.workspace_root)===e.workspace_root&&ne(r.workspace_root_source)===e.workspace_root_source&&ne(r.open_files_root)===e.open_files_root&&ne(r.open_files_root_source)===e.open_files_root_source&&ne(r.trust_status)===e.trust_status&&ne(r.auth_status)===e.auth_status&&FN(r.current)===e.current&&FN(r.primary)===e.primary}function fD(e,r,t){if(!e)return null;let i=ZN(r.cacheability);if(i&&sN(i,t)&&aD(e,r))return{...e,cacheability:i};return e}function $D(e,r,t){if(!e)return null;let i=ZN(r.cacheability);if(i&&sN(i,t)&&TD(e,r))return{...e,cacheability:i};return e}function vD(e){return e.workspace?.machine_id??e.workspace?.requested_machine_id??e.machineId??e.route?.target??JN()}function ND(e,r){let t=new Set,i=Array.isArray(r.sources)?r.sources:[];for(let n of i)if(typeof n==="string")t.add(n);if(typeof r.source==="string")t.add(r.source);if(e.route?.source)t.add(e.route.source);if(e.workspace?.source)t.add(e.workspace.source);return t.add("knowledge"),[...t].sort()}function KN(e,r){if(r?.target&&(r.route==="tailscale"||r.targetKind==="tailscale"))return r.target;return e?.tailscale_dns??null}function kD(e,r,t){let i=hr(r.resolver_evidence),n=e.route?Y_({source:e.route.source,target:e.route.target,route:e.route.route,target_kind:e.route.targetKind,confidence:e.route.confidence,adapter:e.route.adapter,evidence:e.route.evidence,cacheability:e.route.cacheability,warnings:e.route.warnings}):hr(i.route),_=e.workspace?Y_({source:e.workspace.source,requested_machine_id:e.workspace.requested_machine_id,machine_id:e.workspace.machine_id,project_id:e.workspace.project_id,repo_name:e.workspace.repo_name,project_root:e.workspace.project_root,project_root_source:e.workspace.project_root_source,workspace_root:e.workspace.workspace_root,workspace_root_source:e.workspace.workspace_root_source,open_files_root:e.workspace.open_files_root,open_files_root_source:e.workspace.open_files_root_source,trust_status:e.workspace.trust_status,auth_status:e.workspace.auth_status,current:e.workspace.current,primary:e.workspace.primary,diagnostics:e.workspace.diagnostics,repair_hints:e.workspace.repair_hints,evidence:e.workspace.evidence,cacheability:e.workspace.cacheability,warnings:e.workspace.warnings}):hr(i.workspace);return Y_({...i,recorded_at:t,route:n,workspace:_})}function pN(e,r){x(e);let t=A(e);try{let i=vD(r),n=t.query("SELECT * FROM knowledge_machines WHERE machine_id = ?").get(i)??null,_=er(r.now),u=Ko(n?.capabilities_json),c=Ko(n?.metadata_json),d=hr(u.resolver),o=hr(c.resolver_evidence),a=hr(o.route),g=hr(o.workspace),E=fD(r.route?.source==="registry"?null:r.route??null,a,_),l=$D(r.workspace?.source==="registry"?null:r.workspace??null,g,_),T={...r,route:E,workspace:l},f={...u,resolver:Y_({...d,route_source:E?.source??d.route_source,route_kind:E?.route??d.route_kind,route_target_kind:E?.targetKind??d.route_target_kind,route_confidence:E?.confidence??d.route_confidence,route_cacheable:E?.cacheability?.cacheable??d.route_cacheable,route_stale:E?.cacheability?.stale??d.route_stale,route_expires_at:E?.cacheability?.expires_at??d.route_expires_at,route_observed_at:E?.cacheability?.observed_at??d.route_observed_at,route_source_authority:E?.cacheability?.source_authority??d.route_source_authority,workspace_source:l?.source??d.workspace_source,project_root_source:l?.project_root_source??d.project_root_source,workspace_root_source:l?.workspace_root_source??d.workspace_root_source,open_files_root_source:l?.open_files_root_source??d.open_files_root_source,trust_status:l?.trust_status??d.trust_status,auth_status:l?.auth_status??d.auth_status,workspace_cacheable:l?.cacheability?.cacheable??d.workspace_cacheable,workspace_stale:l?.cacheability?.stale??d.workspace_stale,workspace_expires_at:l?.cacheability?.expires_at??d.workspace_expires_at,workspace_observed_at:l?.cacheability?.observed_at??d.workspace_observed_at,workspace_source_authority:l?.cacheability?.source_authority??d.workspace_source_authority}),route_fallback:Boolean(E?.target??n?.ssh_target),workspace_fallback:Boolean(l?.project_root??n?.workspace_home)},v=kD(T,c,_);if(n){let k=o;if(n.workspace_home===(l?.project_root??n.workspace_home??null)&&n.tailscale_dns===KN(n,E)&&n.ssh_target===(E?.target??n.ssh_target??null)&&Qt(Ko(n.capabilities_json))===Qt(f)&&Qt(PN(k))===Qt(PN(v)))return n}let N={machine_id:i,hostname:n?.hostname??null,platform:n?.platform??null,user_label:n?.user_label??null,workspace_home:l?.project_root??n?.workspace_home??null,tailscale_dns:KN(n,E),tailscale_ips_json:JSON.stringify(gD(n?.tailscale_ips_json)),ssh_target:E?.target??n?.ssh_target??null,last_seen_at:_,capabilities_json:JSON.stringify(f),metadata_json:JSON.stringify({...c,source:"knowledge",sources:ND(T,c),resolver_evidence:v}),created_at:n?.created_at??_,updated_at:_};return ek(t,N),N}finally{t.close()}}function ek(e,r){e.query(` + ORDER BY artifact_uri ASC`).all()}function gh(e,r){return{machine_id:e.machine_id,hostname:e.hostname,platform:e.platform,user_label:e.user,workspace_home:e.workspace_path,tailscale_dns:e.tailscale.dns_name,tailscale_ips_json:JSON.stringify(e.tailscale.ips),ssh_target:e.ssh.command_target,last_seen_at:e.local||e.tailscale.online===!0||e.heartbeat_status==="online"?r:e.last_heartbeat_at,capabilities_json:JSON.stringify({route_hints:e.route_hints,heartbeat_status:e.heartbeat_status,manifest_declared:e.manifest_declared}),metadata_json:JSON.stringify({...e.metadata,source:e.source,tags:e.tags,tailscale:e.tailscale,ssh:e.ssh}),created_at:r,updated_at:r}}function Kg(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function oh(e){if(!e)return[];try{let r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function Rr(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function Bu(e){return Object.fromEntries(Object.entries(e).filter(([,r])=>r!==void 0))}function Zn(e){if(Array.isArray(e))return`[${e.map(Zn).join(",")}]`;if(e&&typeof e==="object")return`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>`${JSON.stringify(r)}:${Zn(n)}`).join(",")}}`;return JSON.stringify(e)}function XT(e){let{recorded_at:r,...n}=e;return n}function te(e){return typeof e==="string"&&e.length>0?e:null}function lh(e){return typeof e==="number"&&Number.isFinite(e)?e:null}function KT(e){return typeof e==="boolean"?e:null}function ah(e){return Array.isArray(e)?e.filter((r)=>typeof r==="string"):[]}function ZT(e){let r=Rr(e),n=te(r.observed_at),i=te(r.source_authority);if(!n||!i)return null;return{observed_at:n,verified_at:te(r.verified_at),expires_at:te(r.expires_at),ttl_ms:lh(r.ttl_ms),source_authority:i,confidence:te(r.confidence),cacheable:r.cacheable===!0,stale:r.stale===!0,reasons:ah(r.reasons)}}function sT(e,r){if(!e||e.stale)return!1;if(!e.expires_at)return!0;let n=Date.parse(e.expires_at),i=Date.parse(r);return Number.isNaN(n)||Number.isNaN(i)||n>i}function fh(e,r){return te(r.source)===e.source&&te(r.target)===e.target&&te(r.route)===e.route&&te(r.target_kind)===e.targetKind&&te(r.confidence)===e.confidence}function $h(e,r){return te(r.source)===e.source&&te(r.requested_machine_id)===e.requested_machine_id&&te(r.machine_id)===e.machine_id&&te(r.project_id)===e.project_id&&te(r.repo_name)===e.repo_name&&te(r.project_root)===e.project_root&&te(r.project_root_source)===e.project_root_source&&te(r.workspace_root)===e.workspace_root&&te(r.workspace_root_source)===e.workspace_root_source&&te(r.open_files_root)===e.open_files_root&&te(r.open_files_root_source)===e.open_files_root_source&&te(r.trust_status)===e.trust_status&&te(r.auth_status)===e.auth_status&&KT(r.current)===e.current&&KT(r.primary)===e.primary}function vh(e,r,n){if(!e)return null;let i=ZT(r.cacheability);if(i&&sT(i,n)&&fh(e,r))return{...e,cacheability:i};return e}function Eh(e,r,n){if(!e)return null;let i=ZT(r.cacheability);if(i&&sT(i,n)&&$h(e,r))return{...e,cacheability:i};return e}function kh(e){return e.workspace?.machine_id??e.workspace?.requested_machine_id??e.machineId??e.route?.target??zT()}function Th(e,r){let n=new Set,i=Array.isArray(r.sources)?r.sources:[];for(let t of i)if(typeof t==="string")n.add(t);if(typeof r.source==="string")n.add(r.source);if(e.route?.source)n.add(e.route.source);if(e.workspace?.source)n.add(e.workspace.source);return n.add("knowledge"),[...n].sort()}function FT(e,r){if(r?.target&&(r.route==="tailscale"||r.targetKind==="tailscale"))return r.target;return e?.tailscale_dns??null}function Sh(e,r,n){let i=Rr(r.resolver_evidence),t=e.route?Bu({source:e.route.source,target:e.route.target,route:e.route.route,target_kind:e.route.targetKind,confidence:e.route.confidence,adapter:e.route.adapter,evidence:e.route.evidence,cacheability:e.route.cacheability,warnings:e.route.warnings}):Rr(i.route),u=e.workspace?Bu({source:e.workspace.source,requested_machine_id:e.workspace.requested_machine_id,machine_id:e.workspace.machine_id,project_id:e.workspace.project_id,repo_name:e.workspace.repo_name,project_root:e.workspace.project_root,project_root_source:e.workspace.project_root_source,workspace_root:e.workspace.workspace_root,workspace_root_source:e.workspace.workspace_root_source,open_files_root:e.workspace.open_files_root,open_files_root_source:e.workspace.open_files_root_source,trust_status:e.workspace.trust_status,auth_status:e.workspace.auth_status,current:e.workspace.current,primary:e.workspace.primary,diagnostics:e.workspace.diagnostics,repair_hints:e.workspace.repair_hints,evidence:e.workspace.evidence,cacheability:e.workspace.cacheability,warnings:e.workspace.warnings}):Rr(i.workspace);return Bu({...i,recorded_at:n,route:t,workspace:u})}function pT(e,r){P(e);let n=A(e);try{let i=kh(r),t=n.query("SELECT * FROM knowledge_machines WHERE machine_id = ?").get(i)??null,u=er(r.now),_=Kg(t?.capabilities_json),c=Kg(t?.metadata_json),d=Rr(_.resolver),g=Rr(c.resolver_evidence),f=Rr(g.route),o=Rr(g.workspace),a=vh(r.route?.source==="registry"?null:r.route??null,f,u),l=Eh(r.workspace?.source==="registry"?null:r.workspace??null,o,u),$={...r,route:a,workspace:l},v={..._,resolver:Bu({...d,route_source:a?.source??d.route_source,route_kind:a?.route??d.route_kind,route_target_kind:a?.targetKind??d.route_target_kind,route_confidence:a?.confidence??d.route_confidence,route_cacheable:a?.cacheability?.cacheable??d.route_cacheable,route_stale:a?.cacheability?.stale??d.route_stale,route_expires_at:a?.cacheability?.expires_at??d.route_expires_at,route_observed_at:a?.cacheability?.observed_at??d.route_observed_at,route_source_authority:a?.cacheability?.source_authority??d.route_source_authority,workspace_source:l?.source??d.workspace_source,project_root_source:l?.project_root_source??d.project_root_source,workspace_root_source:l?.workspace_root_source??d.workspace_root_source,open_files_root_source:l?.open_files_root_source??d.open_files_root_source,trust_status:l?.trust_status??d.trust_status,auth_status:l?.auth_status??d.auth_status,workspace_cacheable:l?.cacheability?.cacheable??d.workspace_cacheable,workspace_stale:l?.cacheability?.stale??d.workspace_stale,workspace_expires_at:l?.cacheability?.expires_at??d.workspace_expires_at,workspace_observed_at:l?.cacheability?.observed_at??d.workspace_observed_at,workspace_source_authority:l?.cacheability?.source_authority??d.workspace_source_authority}),route_fallback:Boolean(a?.target??t?.ssh_target),workspace_fallback:Boolean(l?.project_root??t?.workspace_home)},k=Sh($,c,u);if(t){let S=g;if(t.workspace_home===(l?.project_root??t.workspace_home??null)&&t.tailscale_dns===FT(t,a)&&t.ssh_target===(a?.target??t.ssh_target??null)&&Zn(Kg(t.capabilities_json))===Zn(v)&&Zn(XT(S))===Zn(XT(k)))return t}let T={machine_id:i,hostname:t?.hostname??null,platform:t?.platform??null,user_label:t?.user_label??null,workspace_home:l?.project_root??t?.workspace_home??null,tailscale_dns:FT(t,a),tailscale_ips_json:JSON.stringify(oh(t?.tailscale_ips_json)),ssh_target:a?.target??t?.ssh_target??null,last_seen_at:u,capabilities_json:JSON.stringify(v),metadata_json:JSON.stringify({...c,source:"knowledge",sources:Th($,c),resolver_evidence:k}),created_at:t?.created_at??u,updated_at:u};return eS(n,T),T}finally{n.close()}}function eS(e,r){e.query(` INSERT INTO knowledge_machines ( machine_id, hostname, platform, user_label, workspace_home, tailscale_dns, tailscale_ips_json, ssh_target, last_seen_at, capabilities_json, @@ -775,15 +775,15 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, capabilities_json = excluded.capabilities_json, metadata_json = excluded.metadata_json, updated_at = excluded.updated_at - `).run(r.machine_id,r.hostname,r.platform,r.user_label,r.workspace_home,r.tailscale_dns,r.tailscale_ips_json,r.ssh_target,r.last_seen_at,r.capabilities_json,r.metadata_json,r.created_at,r.updated_at)}function ID(e,r,t=er()){for(let i of r.machines)ek(e,oD(i,t));return r.machines.length}function Go(e){x(e);let r=A(e);try{return r.query("SELECT * FROM knowledge_machines ORDER BY machine_id ASC").all()}finally{r.close()}}function Bn(e){x(e.dbPath);let r=A(e.dbPath),t=[],i=er(e.now),n=CN(e.machineId),_=e.recordClocks!==!1;try{let u=qN(r,GN(e.tables)),d=r.query(`SELECT id, artifact_uri, kind, content_type, hash, size_bytes, metadata_json + `).run(r.machine_id,r.hostname,r.platform,r.user_label,r.workspace_home,r.tailscale_dns,r.tailscale_ips_json,r.ssh_target,r.last_seen_at,r.capabilities_json,r.metadata_json,r.created_at,r.updated_at)}function Nh(e,r,n=er()){for(let i of r.machines)eS(e,gh(i,n));return r.machines.length}function Gg(e){P(e);let r=A(e);try{return r.query("SELECT * FROM knowledge_machines ORDER BY machine_id ASC").all()}finally{r.close()}}function Ct(e){P(e.dbPath);let r=A(e.dbPath),n=[],i=er(e.now),t=qT(e.machineId),u=e.recordClocks!==!1;try{let _=GT(r,HT(e.tables)),d=r.query(`SELECT id, artifact_uri, kind, content_type, hash, size_bytes, metadata_json FROM storage_objects - ORDER BY artifact_uri ASC`).all().map((T)=>{let f=uD(T,e.storage.local_layout.directories.artifacts),v={...T,key:f};if(e.includeArtifactContent!==!1&&f&&T.artifact_uri.startsWith("file://"))try{let N=zN(T.artifact_uri);if(zm(N))v.content_base64=Mm(N).toString("base64");else t.push(`artifact_missing:${T.artifact_uri}`)}catch(N){t.push(`artifact_read_failed:${T.artifact_uri}:${N instanceof Error?N.message:String(N)}`)}else if(e.includeArtifactContent!==!1&&T.artifact_uri.startsWith("s3://"))t.push(`artifact_content_not_embedded:${T.artifact_uri}`);return v}),o=tt(d),a=u.filter((T)=>!Yn.has(T)).map((T)=>({table:T,primary_keys:Gn[T],rows:YN(r,T)})),g=a.map((T)=>Qm(r,{table:T.table,machineId:n,highWaterHash:H_(T.table,T.rows,o),rowCount:T.rows.length,record:_,now:i})),E=V_(Zt({source:{scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:Te(r),machine_id:n,artifact_root_uri:e.storage.artifact_store.uri_prefix},tables:a.map((T)=>({table:T.table,primary_keys:T.primary_keys,rows:T.rows.map((f)=>({key:rt(T.table,f),hash:et(f,o)})).sort((f,v)=>f.key.localeCompare(v.key))})),table_clocks:g.map((T)=>({table:T.table,machine_id:T.machine_id,logical_clock:T.logical_clock,high_water_hash:T.high_water_hash,row_count:T.row_count})),artifacts:d.map((T)=>({identity:s_(T),fingerprint:Rr(T)})).sort((T,f)=>T.identity.localeCompare(f.identity))})),l=`syncbundle_${E.replace("sha256:","").slice(0,32)}`;for(let T of g)Zm(r,T,l,_,i);return{ok:!0,format:"knowledge-sync-bundle",version:1,protocol_version:wr,min_protocol_version:Ar,bundle_id:l,content_hash:E,generated_at:i,source:{scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:Te(r),machine_id:n,artifact_root_uri:e.storage.artifact_store.uri_prefix},table_clocks:g,tables:a,artifacts:d,warnings:t,message:`${a.reduce((T,f)=>T+f.rows.length,0)} row(s), ${d.length} artifact(s) exported`}}finally{r.close()}}function SD(e,r){let t=typeof e.protocol_version==="number"?e.protocol_version:null,i=typeof e.min_protocol_version==="number"?e.min_protocol_version:null;if(t===null||i===null||twr)throw Error(`Unsupported ${r} protocol. Expected knowledge sync protocol v${wr} with min v${Ar}.`)}function OD(e){if(!e||e.format!=="knowledge-sync-bundle"||e.version!==1)throw Error("Invalid knowledge sync bundle.");SD(e,"knowledge sync bundle")}function Yo(e,r){return e.tables.find((t)=>t.table===r)??null}function rk(e){if(typeof e.content_hash==="string"&&e.content_hash.length>0)return e.content_hash;return V_(Zt({source:e.source,tables:e.tables.map((r)=>({table:r.table,rows:r.rows.map((t)=>({key:rt(r.table,t),hash:et(t,tt(e.artifacts))})).sort((t,i)=>t.key.localeCompare(i.key))})),artifacts:e.artifacts.map((r)=>({identity:s_(r),fingerprint:Rr(r)})).sort((r,t)=>r.identity.localeCompare(t.identity))}))}function LD(e){if(typeof e.bundle_id==="string"&&e.bundle_id.length>0)return e.bundle_id;return`syncbundle_${rk(e).replace("sha256:","").slice(0,32)}`}function bD(e,r){return new Map(r.map((t)=>[rt(e,t),t]))}function UD(e){return new Map(e.artifacts.map((r)=>[s_(r),r]))}async function mD(e){let r=UD(e.targetBundle),t=new Map,i=[],n={source_artifacts:e.bundle.artifacts.length,target_artifacts:e.targetBundle.artifacts.length,copied:0,skipped:0,conflicts:0,missing_content:0};for(let _ of e.bundle.artifacts){let u=s_(_),c=r.get(u);if(c&&Rr(c)===Rr(_)){if(c.artifact_uri)t.set(_.artifact_uri,c.artifact_uri);n.skipped+=1;continue}if(c&&Rr(c)!==Rr(_)){let T={entityKind:"storage_object",entityId:u,localMachineId:e.localMachineId,remoteMachineId:e.bundle.source.machine_id??"unknown",localHash:Rr(c),remoteHash:Rr(_),metadata:{direction:e.direction,target_artifact_uri:c.artifact_uri,source_artifact_uri:_.artifact_uri,local_artifact:Cn(c),remote_artifact:Cn(_)}};if(zo(e.db,T)){n.skipped+=1;continue}n.conflicts+=1,i.push(T);continue}let d=Boolean(_.key&&_.content_base64),o=cD(_,e.targetStorage);if(!d&&!o){n.missing_content+=1,e.warnings.push(`artifact_content_missing:${_.artifact_uri}`);continue}if(e.dryRun){n.copied+=1;continue}let a=_.artifact_uri;if(d&&_.key&&_.content_base64)a=(await e.targetStore.put({key:_.key,body:Buffer.from(_.content_base64,"base64"),content_type:_.content_type??void 0})).uri,t.set(_.artifact_uri,a);else if(o)t.set(_.artifact_uri,a);let g=Q_(_.metadata_json,{}),E=typeof g.artifact_modified_at==="string"?g.artifact_modified_at:void 0,l={uri:a,key:_.key??g.key??_.artifact_uri,kind:_.kind,content_type:_.content_type??void 0,hash:_.hash??void 0,size_bytes:_.size_bytes??void 0,modified_at:E,metadata:{...g,synced_from_artifact_uri:_.artifact_uri,synced_from_machine_id:e.bundle.source.machine_id??void 0}};lr(e.db,[l]),n.copied+=1}return{result:n,uriMap:t,conflicts:i}}function Wo(e,r){let t={...e};if(typeof t.artifact_uri==="string"&&r.has(t.artifact_uri))t.artifact_uri=r.get(t.artifact_uri);return t}function DD(e,r){let t=er();e.query(` + ORDER BY artifact_uri ASC`).all().map(($)=>{let v=_h($,e.storage.local_layout.directories.artifacts),k={...$,key:v};if(e.includeArtifactContent!==!1&&v&&$.artifact_uri.startsWith("file://"))try{let T=WT($.artifact_uri);if(WU(T))k.content_base64=MU(T).toString("base64");else n.push(`artifact_missing:${$.artifact_uri}`)}catch(T){n.push(`artifact_read_failed:${$.artifact_uri}:${T instanceof Error?T.message:String(T)}`)}else if(e.includeArtifactContent!==!1&&$.artifact_uri.startsWith("s3://"))n.push(`artifact_content_not_embedded:${$.artifact_uri}`);return k}),g=nn(d),f=_.filter(($)=>!Bt.has($)).map(($)=>({table:$,primary_keys:Ht[$],rows:BT(r,$)})),o=f.map(($)=>QU(r,{table:$.table,machineId:t,highWaterHash:Yu($.table,$.rows,g),rowCount:$.rows.length,record:u,now:i})),a=Vu(sn({source:{scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:$e(r),machine_id:t,artifact_root_uri:e.storage.artifact_store.uri_prefix},tables:f.map(($)=>({table:$.table,primary_keys:$.primary_keys,rows:$.rows.map((v)=>({key:rn($.table,v),hash:en(v,g)})).sort((v,k)=>v.key.localeCompare(k.key))})),table_clocks:o.map(($)=>({table:$.table,machine_id:$.machine_id,logical_clock:$.logical_clock,high_water_hash:$.high_water_hash,row_count:$.row_count})),artifacts:d.map(($)=>({identity:su($),fingerprint:Or($)})).sort(($,v)=>$.identity.localeCompare(v.identity))})),l=`syncbundle_${a.replace("sha256:","").slice(0,32)}`;for(let $ of o)ZU(r,$,l,u,i);return{ok:!0,format:"knowledge-sync-bundle",version:1,protocol_version:Lr,min_protocol_version:Ar,bundle_id:l,content_hash:a,generated_at:i,source:{scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:$e(r),machine_id:t,artifact_root_uri:e.storage.artifact_store.uri_prefix},table_clocks:o,tables:f,artifacts:d,warnings:n,message:`${f.reduce(($,v)=>$+v.rows.length,0)} row(s), ${d.length} artifact(s) exported`}}finally{r.close()}}function bh(e,r){let n=typeof e.protocol_version==="number"?e.protocol_version:null,i=typeof e.min_protocol_version==="number"?e.min_protocol_version:null;if(n===null||i===null||nLr)throw Error(`Unsupported ${r} protocol. Expected knowledge sync protocol v${Lr} with min v${Ar}.`)}function Ih(e){if(!e||e.format!=="knowledge-sync-bundle"||e.version!==1)throw Error("Invalid knowledge sync bundle.");bh(e,"knowledge sync bundle")}function Hg(e,r){return e.tables.find((n)=>n.table===r)??null}function rS(e){if(typeof e.content_hash==="string"&&e.content_hash.length>0)return e.content_hash;return Vu(sn({source:e.source,tables:e.tables.map((r)=>({table:r.table,rows:r.rows.map((n)=>({key:rn(r.table,n),hash:en(n,nn(e.artifacts))})).sort((n,i)=>n.key.localeCompare(i.key))})),artifacts:e.artifacts.map((r)=>({identity:su(r),fingerprint:Or(r)})).sort((r,n)=>r.identity.localeCompare(n.identity))}))}function mh(e){if(typeof e.bundle_id==="string"&&e.bundle_id.length>0)return e.bundle_id;return`syncbundle_${rS(e).replace("sha256:","").slice(0,32)}`}function wh(e,r){return new Map(r.map((n)=>[rn(e,n),n]))}function Dh(e){return new Map(e.artifacts.map((r)=>[su(r),r]))}async function Uh(e){let r=Dh(e.targetBundle),n=new Map,i=[],t={source_artifacts:e.bundle.artifacts.length,target_artifacts:e.targetBundle.artifacts.length,copied:0,skipped:0,conflicts:0,missing_content:0};for(let u of e.bundle.artifacts){let _=su(u),c=r.get(_);if(c&&Or(c)===Or(u)){if(c.artifact_uri)n.set(u.artifact_uri,c.artifact_uri);t.skipped+=1;continue}if(c&&Or(c)!==Or(u)){let $={entityKind:"storage_object",entityId:_,localMachineId:e.localMachineId,remoteMachineId:e.bundle.source.machine_id??"unknown",localHash:Or(c),remoteHash:Or(u),metadata:{direction:e.direction,target_artifact_uri:c.artifact_uri,source_artifact_uri:u.artifact_uri,local_artifact:qt(c),remote_artifact:qt(u)}};if(zg(e.db,$)){t.skipped+=1;continue}t.conflicts+=1,i.push($);continue}let d=Boolean(u.key&&u.content_base64),g=ch(u,e.targetStorage);if(!d&&!g){t.missing_content+=1,e.warnings.push(`artifact_content_missing:${u.artifact_uri}`);continue}if(e.dryRun){t.copied+=1;continue}let f=u.artifact_uri;if(d&&u.key&&u.content_base64)f=(await e.targetStore.put({key:u.key,body:Buffer.from(u.content_base64,"base64"),content_type:u.content_type??void 0})).uri,n.set(u.artifact_uri,f);else if(g)n.set(u.artifact_uri,f);let o=Qu(u.metadata_json,{}),a=typeof o.artifact_modified_at==="string"?o.artifact_modified_at:void 0,l={uri:f,key:u.key??o.key??u.artifact_uri,kind:u.kind,content_type:u.content_type??void 0,hash:u.hash??void 0,size_bytes:u.size_bytes??void 0,modified_at:a,metadata:{...o,synced_from_artifact_uri:u.artifact_uri,synced_from_machine_id:e.bundle.source.machine_id??void 0}};lr(e.db,[l]),t.copied+=1}return{result:t,uriMap:n,conflicts:i}}function Fg(e,r){let n={...e};if(typeof n.artifact_uri==="string"&&r.has(n.artifact_uri))n.artifact_uri=r.get(n.artifact_uri);return n}function hh(e,r){let n=er();e.query(` INSERT INTO knowledge_sync_changes ( id, origin_machine_id, updated_by_machine_id, entity_kind, entity_id, operation, base_hash, next_hash, source_ref, source_revision_id, artifact_uri, logical_clock, bundle_id, metadata_json, created_at ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(Co("syncchg"),r.sourceMachineId,r.localMachineId,r.entityKind,r.entityId,r.direction,null,r.nextHash,typeof r.row?.source_ref==="string"?r.row.source_ref:typeof r.row?.source_uri==="string"?r.row.source_uri:null,typeof r.row?.source_revision_id==="string"?r.row.source_revision_id:null,typeof r.row?.artifact_uri==="string"?r.row.artifact_uri:null,r.logicalClock,r.bundleId,JSON.stringify({source_machine_id:r.sourceMachineId,bundle_id:r.bundleId}),t)}function zo(e,r){let t=r.localHash??"",i=r.remoteHash??"";if(e.query(` + `).run(Mg("syncchg"),r.sourceMachineId,r.localMachineId,r.entityKind,r.entityId,r.direction,null,r.nextHash,typeof r.row?.source_ref==="string"?r.row.source_ref:typeof r.row?.source_uri==="string"?r.row.source_uri:null,typeof r.row?.source_revision_id==="string"?r.row.source_revision_id:null,typeof r.row?.artifact_uri==="string"?r.row.artifact_uri:null,r.logicalClock,r.bundleId,JSON.stringify({source_machine_id:r.sourceMachineId,bundle_id:r.bundleId}),n)}function zg(e,r){let n=r.localHash??"",i=r.remoteHash??"";if(e.query(` SELECT id FROM knowledge_sync_conflicts WHERE entity_kind = ? AND entity_id = ? @@ -794,7 +794,7 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, AND status IN ('resolved', 'ignored') AND resolved_at IS NOT NULL LIMIT 1 - `).get(r.entityKind,r.entityId,r.localMachineId,r.remoteMachineId,t,i))return!0;let _=e.query(` + `).get(r.entityKind,r.entityId,r.localMachineId,r.remoteMachineId,n,i))return!0;let u=e.query(` SELECT id FROM knowledge_sync_conflicts WHERE entity_kind = ? AND entity_id = ? @@ -805,7 +805,7 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, AND status IN ('resolved', 'ignored') AND resolved_at IS NOT NULL LIMIT 1 - `).get(r.entityKind,r.entityId,r.remoteMachineId,r.localMachineId,i,t);return Boolean(_)}function Jo(e,r){if(e.query(` + `).get(r.entityKind,r.entityId,r.remoteMachineId,r.localMachineId,i,n);return Boolean(u)}function Jg(e,r){if(e.query(` SELECT id FROM knowledge_sync_conflicts WHERE entity_kind = ? AND entity_id = ? @@ -822,7 +822,7 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, local_hash, remote_hash, base_hash, status, resolution_strategy, proposed_patch_uri, approved_by, resolved_at, metadata_json, created_at ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(Co("syncconf"),r.entityKind,r.entityId,r.localMachineId,r.remoteMachineId,r.localHash??null,r.remoteHash??null,r.baseHash??null,r.status??"open",r.resolutionStrategy??null,r.proposedPatchUri??null,r.approvedBy??null,r.resolvedAt??null,JSON.stringify(r.metadata??{}),i),!0}function RD(e,r){return e.query("SELECT * FROM knowledge_sync_imports WHERE bundle_id = ?").get(r)??null}function hD(e,r){let t=r.now??er();e.query(` + `).run(Mg("syncconf"),r.entityKind,r.entityId,r.localMachineId,r.remoteMachineId,r.localHash??null,r.remoteHash??null,r.baseHash??null,r.status??"open",r.resolutionStrategy??null,r.proposedPatchUri??null,r.approvedBy??null,r.resolvedAt??null,JSON.stringify(r.metadata??{}),i),!0}function Oh(e,r){return e.query("SELECT * FROM knowledge_sync_imports WHERE bundle_id = ?").get(r)??null}function Rh(e,r){let n=r.now??er();e.query(` INSERT INTO knowledge_sync_imports ( bundle_id, source_machine_id, target_machine_id, direction, status, content_hash, table_clocks_json, tables_json, generated_at, applied_at, @@ -832,13 +832,13 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, status = excluded.status, applied_at = excluded.applied_at, metadata_json = excluded.metadata_json - `).run(r.bundleId,r.sourceMachineId,r.targetMachineId,r.direction,r.status,r.contentHash,JSON.stringify(r.bundle.table_clocks??[]),JSON.stringify(r.tableResults),r.bundle.generated_at,t,JSON.stringify({conflicts:r.conflicts,artifacts:r.artifacts,source_workspace_home:r.bundle.source.workspace_home}))}function wD(e){return{ok:!0,protocol_version:wr,min_protocol_version:Ar,dry_run:!1,direction:e.direction,source:e.bundle.source,target:{scope:e.targetScope,workspace_home:e.targetWorkspaceHome,sqlite_schema_version:e.targetBundle.source.sqlite_schema_version,artifact_root_uri:e.targetStorage.artifact_store.uri_prefix},tables:e.bundle.tables.filter((r)=>!Yn.has(r.table)).map((r)=>({table:r.table,source_rows:r.rows.length,target_rows:Yo(e.targetBundle,r.table)?.rows.length??0,inserted:0,updated:0,deleted:0,skipped:r.rows.length,conflicts:0,stale_skipped:0})),artifacts:{source_artifacts:e.bundle.artifacts.length,target_artifacts:e.targetBundle.artifacts.length,copied:0,skipped:e.bundle.artifacts.length,conflicts:0,missing_content:0},conflicts_created:0,bundle_id:e.bundleId,replayed:!0,clocks:{advanced:0,stale_tables:0},warnings:[...e.warnings,`bundle_replay_skipped:${e.bundleId}`],message:`Skipped already-applied bundle ${e.bundleId}`}}function AD(e,r){let t=tt(e.artifacts),i=tt(r.artifacts);for(let n of e.tables){if(Yn.has(n.table))continue;let _=Yo(r,n.table),c=BN(e,n.table)?.high_water_hash??H_(n.table,n.rows,t);if(H_(n.table,_?.rows??[],i)!==c)return!1}return!0}async function p_(e){OD(e.bundle),x(e.targetDbPath);let r=[...e.bundle.warnings],t=e.dryRun===!0,i=CN(e.localMachineId),n=e.bundle.source.machine_id??"unknown",_=LD(e.bundle),u=rk(e.bundle),c=e.targetBundle??Bn({dbPath:e.targetDbPath,scope:e.targetScope,workspaceHome:e.targetWorkspaceHome,storage:e.targetStorage,machineId:i,includeArtifactContent:!1,recordClocks:!t}),d=A(e.targetDbPath);try{if(!t&&RD(d,_)&&AD(e.bundle,c))return wD({bundle:e.bundle,targetBundle:c,targetScope:e.targetScope,targetWorkspaceHome:e.targetWorkspaceHome,targetStorage:e.targetStorage,direction:e.direction,warnings:r,bundleId:_});let o=await mD({db:d,bundle:e.bundle,targetBundle:c,targetStorage:e.targetStorage,targetStore:e.targetStore,dryRun:t,direction:e.direction,localMachineId:i,warnings:r}),a=tt(e.bundle.artifacts),g=tt(c.artifacts),E=[],l=0,T=0,f=0;for(let k of e.bundle.tables){if(k.table==="storage_objects"||Yn.has(k.table))continue;if(!xe(d,k.table))continue;let R=BN(e.bundle,k.table),S=qn(d,k.table,n),U=Yo(c,k.table),X=bD(k.table,U?.rows??[]),j=new Set(k.rows.map((q)=>rt(k.table,q))),K=eD(d,k.table,n),W=[],te={table:k.table,source_rows:k.rows.length,target_rows:U?.rows.length??0,inserted:0,updated:0,deleted:0,skipped:0,conflicts:0,stale_skipped:0};if(!R)r.push(`legacy_clock_missing:${k.table}`);else if(sm(S,R)){f+=1,te.skipped+=k.rows.length,te.stale_skipped=k.rows.length,r.push(`stale_table_skipped:${k.table}:${n}:${R.logical_clock}`),E.push(te);continue}for(let q of k.rows){let oe=rt(k.table,q),Ke=X.get(oe),_r=et(q,a);if(!Ke){te.inserted+=1,W.push(Wo(q,o.uriMap));continue}let ur=et(Ke,g);if(ur===_r){te.skipped+=1;continue}let p=K.get(oe);if(K.has(oe)&&p===ur){te.updated+=1,W.push(Wo(q,o.uriMap));continue}let ce={entityKind:k.table,entityId:oe,localMachineId:i,remoteMachineId:n,localHash:ur,remoteHash:_r,baseHash:S?.high_water_hash??null,metadata:{direction:e.direction,bundle_id:_,incoming_logical_clock:R?.logical_clock??null,current_logical_clock:S?.logical_clock??null,source_workspace_home:e.bundle.source.workspace_home,target_workspace_home:e.targetWorkspaceHome,local_row:Mn(Ke),remote_row:Mn(q)}};if(zo(d,ce)){te.skipped+=1;continue}if(te.conflicts+=1,!t&&Jo(d,ce))l+=1}if(!t&&W.length>0){let q=W.map((oe)=>Wo(oe,o.uriMap));pm(d,k.table,q),iD(d,k.table,q);for(let oe of q)DD(d,{direction:e.direction,sourceMachineId:e.bundle.source.machine_id??"unknown",localMachineId:i,entityKind:k.table,entityId:rt(k.table,oe),nextHash:et(oe,tt(e.bundle.artifacts)),logicalClock:R?.logical_clock??0,bundleId:_,row:oe})}for(let[q,oe]of K){if(j.has(q))continue;let Ke=X.get(q);if(!Ke)continue;let _r=et(Ke,g);if(oe&&_r!==oe){let ur={entityKind:k.table,entityId:q,localMachineId:i,remoteMachineId:n,localHash:_r,remoteHash:null,baseHash:oe,metadata:{direction:e.direction,bundle_id:_,reason:"remote_owned_row_missing_from_incoming_bundle",source_workspace_home:e.bundle.source.workspace_home,target_workspace_home:e.targetWorkspaceHome,local_row:Mn(Ke),remote_row:null}};if(zo(d,ur)){te.skipped+=1;continue}if(te.conflicts+=1,!t&&Jo(d,ur))l+=1;continue}if(te.deleted+=1,!t)tD(d,k.table,q)}if(!t&&R)Z_(d,{table:k.table,machineId:n,logicalClock:R.logical_clock,highWaterHash:R.high_water_hash,highWaterBundleId:_,originMachineId:n,updatedByMachineId:i,lastAppliedAt:er(),metadata:{source:"import",direction:e.direction,row_count:k.rows.length,inserted:te.inserted,updated:te.updated,deleted:te.deleted,skipped:te.skipped,conflicts:te.conflicts}}),T+=1;E.push(te)}for(let k of o.conflicts)if(!t){if(Jo(d,{...k,baseHash:k.baseHash??null,metadata:{...k.metadata,bundle_id:_}}))l+=1}let v=E.reduce((k,R)=>k+R.inserted,0),N=E.reduce((k,R)=>k+R.conflicts,0)+o.result.conflicts;if(!t)hD(d,{bundle:e.bundle,bundleId:_,contentHash:u,sourceMachineId:n,targetMachineId:i,direction:e.direction,status:N===0?"applied":"conflicted",tableResults:E,conflicts:N,artifacts:o.result});return{ok:N===0,protocol_version:wr,min_protocol_version:Ar,dry_run:t,direction:e.direction,source:e.bundle.source,target:{scope:e.targetScope,workspace_home:e.targetWorkspaceHome,sqlite_schema_version:Te(d),artifact_root_uri:e.targetStorage.artifact_store.uri_prefix},tables:E,artifacts:o.result,conflicts_created:l,bundle_id:_,replayed:!1,clocks:{advanced:T,stale_tables:f},warnings:r,message:`${e.dryRun?"Would import":"Imported"} ${v} row(s), copied ${o.result.copied} artifact(s), ${N} conflict(s)`}}finally{d.close()}}function tk(e){x(e.dbPath);let r=A(e.dbPath),t=er(e.now);try{let i=e.topology?ID(r,e.topology,t):0,n=QN(r),_=dD(r),u=e.machineId??e.topology?.local_machine_id??"unknown",c=e.storage.artifact_store.uri_prefix,d=V_(Zt({machine_id:u,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:Te(r),artifact_root_uri:c,tables:n,artifacts:_})),o={id:Co("syncsnap"),machine_id:u,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:Te(r),artifact_root_uri:c,content_hash:d,tables_json:JSON.stringify(n),artifact_hashes_json:JSON.stringify(_),created_at:t};r.query(` + `).run(r.bundleId,r.sourceMachineId,r.targetMachineId,r.direction,r.status,r.contentHash,JSON.stringify(r.bundle.table_clocks??[]),JSON.stringify(r.tableResults),r.bundle.generated_at,n,JSON.stringify({conflicts:r.conflicts,artifacts:r.artifacts,source_workspace_home:r.bundle.source.workspace_home}))}function Lh(e){return{ok:!0,protocol_version:Lr,min_protocol_version:Ar,dry_run:!1,direction:e.direction,source:e.bundle.source,target:{scope:e.targetScope,workspace_home:e.targetWorkspaceHome,sqlite_schema_version:e.targetBundle.source.sqlite_schema_version,artifact_root_uri:e.targetStorage.artifact_store.uri_prefix},tables:e.bundle.tables.filter((r)=>!Bt.has(r.table)).map((r)=>({table:r.table,source_rows:r.rows.length,target_rows:Hg(e.targetBundle,r.table)?.rows.length??0,inserted:0,updated:0,deleted:0,skipped:r.rows.length,conflicts:0,stale_skipped:0})),artifacts:{source_artifacts:e.bundle.artifacts.length,target_artifacts:e.targetBundle.artifacts.length,copied:0,skipped:e.bundle.artifacts.length,conflicts:0,missing_content:0},conflicts_created:0,bundle_id:e.bundleId,replayed:!0,clocks:{advanced:0,stale_tables:0},warnings:[...e.warnings,`bundle_replay_skipped:${e.bundleId}`],message:`Skipped already-applied bundle ${e.bundleId}`}}function Ah(e,r){let n=nn(e.artifacts),i=nn(r.artifacts);for(let t of e.tables){if(Bt.has(t.table))continue;let u=Hg(r,t.table),c=CT(e,t.table)?.high_water_hash??Yu(t.table,t.rows,n);if(Yu(t.table,u?.rows??[],i)!==c)return!1}return!0}async function pu(e){Ih(e.bundle),P(e.targetDbPath);let r=[...e.bundle.warnings],n=e.dryRun===!0,i=qT(e.localMachineId),t=e.bundle.source.machine_id??"unknown",u=mh(e.bundle),_=rS(e.bundle),c=e.targetBundle??Ct({dbPath:e.targetDbPath,scope:e.targetScope,workspaceHome:e.targetWorkspaceHome,storage:e.targetStorage,machineId:i,includeArtifactContent:!1,recordClocks:!n}),d=A(e.targetDbPath);try{if(!n&&Oh(d,u)&&Ah(e.bundle,c))return Lh({bundle:e.bundle,targetBundle:c,targetScope:e.targetScope,targetWorkspaceHome:e.targetWorkspaceHome,targetStorage:e.targetStorage,direction:e.direction,warnings:r,bundleId:u});let g=await Uh({db:d,bundle:e.bundle,targetBundle:c,targetStorage:e.targetStorage,targetStore:e.targetStore,dryRun:n,direction:e.direction,localMachineId:i,warnings:r}),f=nn(e.bundle.artifacts),o=nn(c.artifacts),a=[],l=0,$=0,v=0;for(let S of e.bundle.tables){if(S.table==="storage_objects"||Bt.has(S.table))continue;if(!Pe(d,S.table))continue;let O=CT(e.bundle,S.table),b=Gt(d,S.table,t),D=Hg(c,S.table),y=wh(S.table,D?.rows??[]),x=new Set(S.rows.map((G)=>rn(S.table,G))),F=eh(d,S.table,t),J=[],ne={table:S.table,source_rows:S.rows.length,target_rows:D?.rows.length??0,inserted:0,updated:0,deleted:0,skipped:0,conflicts:0,stale_skipped:0};if(!O)r.push(`legacy_clock_missing:${S.table}`);else if(sU(b,O)){v+=1,ne.skipped+=S.rows.length,ne.stale_skipped=S.rows.length,r.push(`stale_table_skipped:${S.table}:${t}:${O.logical_clock}`),a.push(ne);continue}for(let G of S.rows){let ge=rn(S.table,G),Fe=y.get(ge),ur=en(G,f);if(!Fe){ne.inserted+=1,J.push(Fg(G,g.uriMap));continue}let _r=en(Fe,o);if(_r===ur){ne.skipped+=1;continue}let p=F.get(ge);if(F.has(ge)&&p===_r){ne.updated+=1,J.push(Fg(G,g.uriMap));continue}let ce={entityKind:S.table,entityId:ge,localMachineId:i,remoteMachineId:t,localHash:_r,remoteHash:ur,baseHash:b?.high_water_hash??null,metadata:{direction:e.direction,bundle_id:u,incoming_logical_clock:O?.logical_clock??null,current_logical_clock:b?.logical_clock??null,source_workspace_home:e.bundle.source.workspace_home,target_workspace_home:e.targetWorkspaceHome,local_row:Mt(Fe),remote_row:Mt(G)}};if(zg(d,ce)){ne.skipped+=1;continue}if(ne.conflicts+=1,!n&&Jg(d,ce))l+=1}if(!n&&J.length>0){let G=J.map((ge)=>Fg(ge,g.uriMap));pU(d,S.table,G),ih(d,S.table,G);for(let ge of G)hh(d,{direction:e.direction,sourceMachineId:e.bundle.source.machine_id??"unknown",localMachineId:i,entityKind:S.table,entityId:rn(S.table,ge),nextHash:en(ge,nn(e.bundle.artifacts)),logicalClock:O?.logical_clock??0,bundleId:u,row:ge})}for(let[G,ge]of F){if(x.has(G))continue;let Fe=y.get(G);if(!Fe)continue;let ur=en(Fe,o);if(ge&&ur!==ge){let _r={entityKind:S.table,entityId:G,localMachineId:i,remoteMachineId:t,localHash:ur,remoteHash:null,baseHash:ge,metadata:{direction:e.direction,bundle_id:u,reason:"remote_owned_row_missing_from_incoming_bundle",source_workspace_home:e.bundle.source.workspace_home,target_workspace_home:e.targetWorkspaceHome,local_row:Mt(Fe),remote_row:null}};if(zg(d,_r)){ne.skipped+=1;continue}if(ne.conflicts+=1,!n&&Jg(d,_r))l+=1;continue}if(ne.deleted+=1,!n)nh(d,S.table,G)}if(!n&&O)Zu(d,{table:S.table,machineId:t,logicalClock:O.logical_clock,highWaterHash:O.high_water_hash,highWaterBundleId:u,originMachineId:t,updatedByMachineId:i,lastAppliedAt:er(),metadata:{source:"import",direction:e.direction,row_count:S.rows.length,inserted:ne.inserted,updated:ne.updated,deleted:ne.deleted,skipped:ne.skipped,conflicts:ne.conflicts}}),$+=1;a.push(ne)}for(let S of g.conflicts)if(!n){if(Jg(d,{...S,baseHash:S.baseHash??null,metadata:{...S.metadata,bundle_id:u}}))l+=1}let k=a.reduce((S,O)=>S+O.inserted,0),T=a.reduce((S,O)=>S+O.conflicts,0)+g.result.conflicts;if(!n)Rh(d,{bundle:e.bundle,bundleId:u,contentHash:_,sourceMachineId:t,targetMachineId:i,direction:e.direction,status:T===0?"applied":"conflicted",tableResults:a,conflicts:T,artifacts:g.result});return{ok:T===0,protocol_version:Lr,min_protocol_version:Ar,dry_run:n,direction:e.direction,source:e.bundle.source,target:{scope:e.targetScope,workspace_home:e.targetWorkspaceHome,sqlite_schema_version:$e(d),artifact_root_uri:e.targetStorage.artifact_store.uri_prefix},tables:a,artifacts:g.result,conflicts_created:l,bundle_id:u,replayed:!1,clocks:{advanced:$,stale_tables:v},warnings:r,message:`${e.dryRun?"Would import":"Imported"} ${k} row(s), copied ${g.result.copied} artifact(s), ${T} conflict(s)`}}finally{d.close()}}function nS(e){P(e.dbPath);let r=A(e.dbPath),n=er(e.now);try{let i=e.topology?Nh(r,e.topology,n):0,t=QT(r),u=dh(r),_=e.machineId??e.topology?.local_machine_id??"unknown",c=e.storage.artifact_store.uri_prefix,d=Vu(sn({machine_id:_,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:$e(r),artifact_root_uri:c,tables:t,artifacts:u})),g={id:Mg("syncsnap"),machine_id:_,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:$e(r),artifact_root_uri:c,content_hash:d,tables_json:JSON.stringify(t),artifact_hashes_json:JSON.stringify(u),created_at:n};r.query(` INSERT INTO knowledge_sync_snapshots ( id, machine_id, scope, workspace_home, sqlite_schema_version, artifact_root_uri, content_hash, tables_json, artifact_hashes_json, created_at ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(o.id,o.machine_id,o.scope,o.workspace_home,o.sqlite_schema_version,o.artifact_root_uri,o.content_hash,o.tables_json,o.artifact_hashes_json,o.created_at);let a=new Map;for(let g of qN(r,GN()).filter((E)=>!Yn.has(E))){let E=YN(r,g),l=H_(g,E,a),T=qn(r,g,u),f=T?.high_water_hash===l?T.logical_clock:(T?.logical_clock??0)+1;Z_(r,{table:g,machineId:u,logicalClock:f,highWaterHash:l,highWaterBundleId:o.id,originMachineId:T?.origin_machine_id??u,updatedByMachineId:u,lastAppliedAt:t,metadata:{source:"snapshot",row_count:E.length},now:t})}return{ok:!0,snapshot:{...o,tables:n,artifact_hashes:_},machines_upserted:i,message:`Recorded sync snapshot ${o.id}`}}finally{r.close()}}function nk(e){x(e.dbPath);let r=A(e.dbPath);try{let t=r.query("SELECT * FROM knowledge_machines ORDER BY machine_id ASC").all(),i=r.query("SELECT * FROM knowledge_sync_snapshots ORDER BY created_at DESC LIMIT 1").get()??null,n=r.query("SELECT status, COUNT(*) AS count FROM knowledge_sync_conflicts GROUP BY status ORDER BY status").all(),_=r.query("SELECT operation, COUNT(*) AS count FROM knowledge_sync_changes GROUP BY operation ORDER BY operation").all(),u=Vm(r),c=r.query("SELECT * FROM knowledge_sync_imports ORDER BY applied_at DESC LIMIT 1").get()??null,d=n.reduce((a,g)=>a+g.count,0),o=n.filter((a)=>a.status!=="resolved"&&a.status!=="ignored").reduce((a,g)=>a+g.count,0);return{ok:!0,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:Te(r),local_machine_id:e.localMachineId??null,machines:{total:t.length,rows:t},snapshots:{total:G_(r,"knowledge_sync_snapshots"),latest:i},changes:{total:G_(r,"knowledge_sync_changes"),by_operation:_},clocks:{total:u.length,rows:u},imports:{total:G_(r,"knowledge_sync_imports"),latest:c},conflicts:{total:d,by_status:n,open:o},table_counts:QN(r),message:`${t.length} machine(s), ${o} open sync conflict(s)`}}finally{r.close()}}function Bo(e){return{...e,metadata:Q_(e.metadata_json,{})}}function eu(e,r){x(e);let t=A(e);try{let i=t.query("SELECT * FROM knowledge_sync_conflicts WHERE id = ?").get(r);return i?Bo(i):null}finally{t.close()}}function ik(e,r={}){x(e);let t=A(e),i=Math.max(1,Math.min(r.limit??50,200));try{return(r.status?t.query("SELECT * FROM knowledge_sync_conflicts WHERE status = ? ORDER BY created_at DESC LIMIT ?").all(r.status,i):t.query("SELECT * FROM knowledge_sync_conflicts ORDER BY created_at DESC LIMIT ?").all(i)).map(Bo)}finally{t.close()}}function XD(e){return B_.includes(e)?e:null}function yD(e,r){let t=XD(r.entity_kind);if(!t||!xe(e,t))return null;let i=HN(t,r.entity_id);if(!i)return null;let n=VN(t);return e.query(`SELECT * FROM ${De(t)} WHERE ${n} LIMIT 1`).get(...i)}function xD(e,r){for(let t of r){let i=e[t];if(i&&typeof i==="object"&&!Array.isArray(i))return Mn(i)}return null}function WN(e,r){if(typeof r!=="string")return;let t=r.trim();if(!t)return;if(t.startsWith("open-files://")||t.startsWith("s3://")||t.startsWith("file://")||t.startsWith("https://")||t.startsWith("http://"))e.add(t)}function Mo(e,r=new Set,t=0){if(t>8||e===null||e===void 0)return r;if(typeof e==="string")return WN(r,e),r;if(Array.isArray(e)){for(let i of e)Mo(i,r,t+1);return r}if(typeof e==="object")for(let[i,n]of Object.entries(e)){if(i==="source_ref"||i==="source_uri"||i==="artifact_uri"||i.endsWith("_uri"))WN(r,n);Mo(n,r,t+1)}return r}function _k(e){let r=[{id:"conflict",kind:"metadata",ref:`knowledge-sync-conflict://${e.conflict.id}`,hash:e.conflict.base_hash,quote:`Conflict on ${e.conflict.entity_kind}:${e.conflict.entity_id}`}];if(e.localRow)r.push({id:"local-row",kind:"row",ref:`${e.conflict.entity_kind}:${e.conflict.entity_id}:local`,hash:e.conflict.local_hash,quote:JSON.stringify(e.localRow).slice(0,300)});if(e.remoteRow)r.push({id:"remote-row",kind:"row",ref:`${e.conflict.entity_kind}:${e.conflict.entity_id}:remote`,hash:e.conflict.remote_hash,quote:JSON.stringify(e.remoteRow).slice(0,300)});return e.sourceRefs.slice(0,10).forEach((t,i)=>{r.push({id:`source-${i+1}`,kind:t.startsWith("file://")||t.startsWith("s3://")?"artifact":"source_ref",ref:t,hash:null,quote:null})}),r}function uk(e,r){let t=eu(e,r);if(!t)throw Error(`Sync conflict not found: ${r}`);x(e);let i=A(e);try{let n=Mn(yD(i,t)),_=xD(t.metadata,["remote_row","source_row","incoming_row"]),c=[...Mo({conflict:{entity_kind:t.entity_kind,entity_id:t.entity_id,metadata:t.metadata},local_row:n,remote_row:_})].slice(0,25),d=[{name:"knowledge_sync_conflict_get",input:{id:r},output_summary:`${t.entity_kind}:${t.entity_id} status=${t.status}`},{name:"knowledge_catalog_row_get",input:{table:t.entity_kind,key:t.entity_id},output_summary:n?"local row found":"local row unavailable"},{name:"knowledge_source_ref_extract",input:{id:r},output_summary:`${c.length} source/artifact ref(s) found`}];return{conflict:t,local_row:n,remote_row:_,source_refs:c,citations:_k({conflict:t,localRow:n,remoteRow:_,sourceRefs:c}),read_only_tools:d}}finally{i.close()}}function Hn(e,r){let t=eu(e,r);if(!t)throw Error(`Sync conflict not found: ${r}`);let i=t.entity_kind==="wiki_pages"?"manual-merge":"review-and-select",n=[`Conflict ${t.id} affects ${t.entity_kind}:${t.entity_id}.`,`Local machine ${t.local_machine_id} has ${t.local_hash??"unknown hash"}.`,`Remote machine ${t.remote_machine_id} has ${t.remote_hash??"unknown hash"}.`].join(" "),_=["Review this knowledge sync conflict before any durable write.",`Entity: ${t.entity_kind}:${t.entity_id}`,`Local machine/hash: ${t.local_machine_id} / ${t.local_hash??"unknown"}`,`Remote machine/hash: ${t.remote_machine_id} / ${t.remote_hash??"unknown"}`,`Base hash: ${t.base_hash??"unknown"}`,`Metadata: ${JSON.stringify(t.metadata)}`,"Return a concise merge recommendation with citations to the competing records. Do not write changes without approval."].join(` -`);return{ok:!0,conflict:t,requires_approval:!0,mode:"deterministic",proposed_strategy:i,summary:n,merge_prompt:_,proposed_patch:null,citations:_k({conflict:t,localRow:null,remoteRow:null,sourceRefs:[]}),confidence:null,agent:null,warnings:t.status==="resolved"?["conflict_already_resolved"]:[],message:`Prepared approval-gated merge proposal for ${t.id}`}}function ck(e,r){x(e);let t=A(e),i=er();try{let n=t.query("SELECT * FROM knowledge_sync_conflicts WHERE id = ?").get(r.id);if(!n)throw Error(`Sync conflict not found: ${r.id}`);t.query(` + `).run(g.id,g.machine_id,g.scope,g.workspace_home,g.sqlite_schema_version,g.artifact_root_uri,g.content_hash,g.tables_json,g.artifact_hashes_json,g.created_at);let f=new Map;for(let o of GT(r,HT()).filter((a)=>!Bt.has(a))){let a=BT(r,o),l=Yu(o,a,f),$=Gt(r,o,_),v=$?.high_water_hash===l?$.logical_clock:($?.logical_clock??0)+1;Zu(r,{table:o,machineId:_,logicalClock:v,highWaterHash:l,highWaterBundleId:g.id,originMachineId:$?.origin_machine_id??_,updatedByMachineId:_,lastAppliedAt:n,metadata:{source:"snapshot",row_count:a.length},now:n})}return{ok:!0,snapshot:{...g,tables:t,artifact_hashes:u},machines_upserted:i,message:`Recorded sync snapshot ${g.id}`}}finally{r.close()}}function tS(e){P(e.dbPath);let r=A(e.dbPath);try{let n=r.query("SELECT * FROM knowledge_machines ORDER BY machine_id ASC").all(),i=r.query("SELECT * FROM knowledge_sync_snapshots ORDER BY created_at DESC LIMIT 1").get()??null,t=r.query("SELECT status, COUNT(*) AS count FROM knowledge_sync_conflicts GROUP BY status ORDER BY status").all(),u=r.query("SELECT operation, COUNT(*) AS count FROM knowledge_sync_changes GROUP BY operation ORDER BY operation").all(),_=VU(r),c=r.query("SELECT * FROM knowledge_sync_imports ORDER BY applied_at DESC LIMIT 1").get()??null,d=t.reduce((f,o)=>f+o.count,0),g=t.filter((f)=>f.status!=="resolved"&&f.status!=="ignored").reduce((f,o)=>f+o.count,0);return{ok:!0,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:$e(r),local_machine_id:e.localMachineId??null,machines:{total:n.length,rows:n},snapshots:{total:Hu(r,"knowledge_sync_snapshots"),latest:i},changes:{total:Hu(r,"knowledge_sync_changes"),by_operation:u},clocks:{total:_.length,rows:_},imports:{total:Hu(r,"knowledge_sync_imports"),latest:c},conflicts:{total:d,by_status:t,open:g},table_counts:QT(r),message:`${n.length} machine(s), ${g} open sync conflict(s)`}}finally{r.close()}}function Bg(e){return{...e,metadata:Qu(e.metadata_json,{})}}function e_(e,r){P(e);let n=A(e);try{let i=n.query("SELECT * FROM knowledge_sync_conflicts WHERE id = ?").get(r);return i?Bg(i):null}finally{n.close()}}function iS(e,r={}){P(e);let n=A(e),i=Math.max(1,Math.min(r.limit??50,200));try{return(r.status?n.query("SELECT * FROM knowledge_sync_conflicts WHERE status = ? ORDER BY created_at DESC LIMIT ?").all(r.status,i):n.query("SELECT * FROM knowledge_sync_conflicts ORDER BY created_at DESC LIMIT ?").all(i)).map(Bg)}finally{n.close()}}function yh(e){return Cu.includes(e)?e:null}function jh(e,r){let n=yh(r.entity_kind);if(!n||!Pe(e,n))return null;let i=YT(n,r.entity_id);if(!i)return null;let t=VT(n);return e.query(`SELECT * FROM ${he(n)} WHERE ${t} LIMIT 1`).get(...i)}function Ph(e,r){for(let n of r){let i=e[n];if(i&&typeof i==="object"&&!Array.isArray(i))return Mt(i)}return null}function JT(e,r){if(typeof r!=="string")return;let n=r.trim();if(!n)return;if(n.startsWith("open-files://")||n.startsWith("s3://")||n.startsWith("file://")||n.startsWith("https://")||n.startsWith("http://"))e.add(n)}function Wg(e,r=new Set,n=0){if(n>8||e===null||e===void 0)return r;if(typeof e==="string")return JT(r,e),r;if(Array.isArray(e)){for(let i of e)Wg(i,r,n+1);return r}if(typeof e==="object")for(let[i,t]of Object.entries(e)){if(i==="source_ref"||i==="source_uri"||i==="artifact_uri"||i.endsWith("_uri"))JT(r,t);Wg(t,r,n+1)}return r}function uS(e){let r=[{id:"conflict",kind:"metadata",ref:`knowledge-sync-conflict://${e.conflict.id}`,hash:e.conflict.base_hash,quote:`Conflict on ${e.conflict.entity_kind}:${e.conflict.entity_id}`}];if(e.localRow)r.push({id:"local-row",kind:"row",ref:`${e.conflict.entity_kind}:${e.conflict.entity_id}:local`,hash:e.conflict.local_hash,quote:JSON.stringify(e.localRow).slice(0,300)});if(e.remoteRow)r.push({id:"remote-row",kind:"row",ref:`${e.conflict.entity_kind}:${e.conflict.entity_id}:remote`,hash:e.conflict.remote_hash,quote:JSON.stringify(e.remoteRow).slice(0,300)});return e.sourceRefs.slice(0,10).forEach((n,i)=>{r.push({id:`source-${i+1}`,kind:n.startsWith("file://")||n.startsWith("s3://")?"artifact":"source_ref",ref:n,hash:null,quote:null})}),r}function _S(e,r){let n=e_(e,r);if(!n)throw Error(`Sync conflict not found: ${r}`);P(e);let i=A(e);try{let t=Mt(jh(i,n)),u=Ph(n.metadata,["remote_row","source_row","incoming_row"]),c=[...Wg({conflict:{entity_kind:n.entity_kind,entity_id:n.entity_id,metadata:n.metadata},local_row:t,remote_row:u})].slice(0,25),d=[{name:"knowledge_sync_conflict_get",input:{id:r},output_summary:`${n.entity_kind}:${n.entity_id} status=${n.status}`},{name:"knowledge_catalog_row_get",input:{table:n.entity_kind,key:n.entity_id},output_summary:t?"local row found":"local row unavailable"},{name:"knowledge_source_ref_extract",input:{id:r},output_summary:`${c.length} source/artifact ref(s) found`}];return{conflict:n,local_row:t,remote_row:u,source_refs:c,citations:uS({conflict:n,localRow:t,remoteRow:u,sourceRefs:c}),read_only_tools:d}}finally{i.close()}}function Yt(e,r){let n=e_(e,r);if(!n)throw Error(`Sync conflict not found: ${r}`);let i=n.entity_kind==="wiki_pages"?"manual-merge":"review-and-select",t=[`Conflict ${n.id} affects ${n.entity_kind}:${n.entity_id}.`,`Local machine ${n.local_machine_id} has ${n.local_hash??"unknown hash"}.`,`Remote machine ${n.remote_machine_id} has ${n.remote_hash??"unknown hash"}.`].join(" "),u=["Review this knowledge sync conflict before any durable write.",`Entity: ${n.entity_kind}:${n.entity_id}`,`Local machine/hash: ${n.local_machine_id} / ${n.local_hash??"unknown"}`,`Remote machine/hash: ${n.remote_machine_id} / ${n.remote_hash??"unknown"}`,`Base hash: ${n.base_hash??"unknown"}`,`Metadata: ${JSON.stringify(n.metadata)}`,"Return a concise merge recommendation with citations to the competing records. Do not write changes without approval."].join(` +`);return{ok:!0,conflict:n,requires_approval:!0,mode:"deterministic",proposed_strategy:i,summary:t,merge_prompt:u,proposed_patch:null,citations:uS({conflict:n,localRow:null,remoteRow:null,sourceRefs:[]}),confidence:null,agent:null,warnings:n.status==="resolved"?["conflict_already_resolved"]:[],message:`Prepared approval-gated merge proposal for ${n.id}`}}function cS(e,r){P(e);let n=A(e),i=er();try{let t=n.query("SELECT * FROM knowledge_sync_conflicts WHERE id = ?").get(r.id);if(!t)throw Error(`Sync conflict not found: ${r.id}`);n.query(` UPDATE knowledge_sync_conflicts SET status = 'resolved', resolution_strategy = ?, @@ -846,35 +846,35 @@ ${E}`;else{let{generateText:S}=await import("ai"),U=await x_(n,{config:e.config, approved_by = ?, resolved_at = ? WHERE id = ? - `).run(r.strategy,r.proposedPatchUri??n.proposed_patch_uri,r.approvedBy,i,r.id);let _=t.query("SELECT * FROM knowledge_sync_conflicts WHERE id = ?").get(r.id);if(!_)throw Error(`Sync conflict not found after resolve: ${r.id}`);return Bo(_)}finally{t.close()}}function c$(e){let t=(typeof e==="string"?e:JSON.stringify(e)).trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(t*1.25))}function Ow(e){let r=A(e.dbPath);try{r.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[e.runId,"sync-conflict-proposal",e.prompt,e.status,e.provider,e.model,JSON.stringify(e.metadata),e.now,e.now])}finally{r.close()}}function nS(e){let r=A(e.dbPath);try{r.run(`UPDATE runs + `).run(r.strategy,r.proposedPatchUri??t.proposed_patch_uri,r.approvedBy,i,r.id);let u=n.query("SELECT * FROM knowledge_sync_conflicts WHERE id = ?").get(r.id);if(!u)throw Error(`Sync conflict not found after resolve: ${r.id}`);return Bg(u)}finally{n.close()}}function cE(e){let n=(typeof e==="string"?e:JSON.stringify(e)).trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(n*1.25))}function I0(e){let r=A(e.dbPath);try{r.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[e.runId,"sync-conflict-proposal",e.prompt,e.status,e.provider,e.model,JSON.stringify(e.metadata),e.now,e.now])}finally{r.close()}}function tb(e){let r=A(e.dbPath);try{r.run(`UPDATE runs SET status = ?, provider = ?, model = ?, cost_tokens = ?, cost_usd = ?, metadata_json = ?, updated_at = ? - WHERE id = ?`,[e.status,e.provider,e.model,e.usage.input_tokens+e.usage.output_tokens,e.usage.cost_usd,JSON.stringify(e.metadata),e.now,e.runId])}finally{r.close()}}function d$(e){let r=A(e.dbPath);try{r.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?)`,[`event_${iS()}`,e.runId,e.level,e.event,JSON.stringify(e.metadata),e.now])}finally{r.close()}}function Lw(e,r,t,i){let n=A(e);try{qt(n,{...t,run_id:r,created_at:i})}finally{n.close()}}function bw(e){return["Build an approval-gated merge proposal for this knowledge sync conflict.","Use only the supplied JSON evidence. Do not claim to inspect external files or write changes.","Return a patch recommendation that a human can review before approval.","",`Deterministic proposal: + WHERE id = ?`,[e.status,e.provider,e.model,e.usage.input_tokens+e.usage.output_tokens,e.usage.cost_usd,JSON.stringify(e.metadata),e.now,e.runId])}finally{r.close()}}function dE(e){let r=A(e.dbPath);try{r.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?)`,[`event_${ib()}`,e.runId,e.level,e.event,JSON.stringify(e.metadata),e.now])}finally{r.close()}}function m0(e,r,n,i){let t=A(e);try{Hn(t,{...n,run_id:r,created_at:i})}finally{t.close()}}function w0(e){return["Build an approval-gated merge proposal for this knowledge sync conflict.","Use only the supplied JSON evidence. Do not claim to inspect external files or write changes.","Return a patch recommendation that a human can review before approval.","",`Deterministic proposal: ${JSON.stringify({proposed_strategy:e.deterministic.proposed_strategy,summary:e.deterministic.summary,warnings:e.deterministic.warnings},null,2)}`,"",`Conflict evidence: ${JSON.stringify(e.evidence,null,2)}`].join(` -`)}function Uw(e){let r=typeof e==="number"&&Number.isFinite(e)?e:0.5;return Math.max(0,Math.min(1,r))}function mw(e,r){let t=e.kind==="choose_local"||e.kind==="choose_remote"||e.kind==="no_op"||e.kind==="custom"||e.kind==="manual_merge"?e.kind:"manual_merge";return{kind:t,target:typeof e.target==="string"&&e.target?e.target:r,strategy:typeof e.strategy==="string"&&e.strategy?e.strategy:t.replace("_","-"),summary:typeof e.summary==="string"&&e.summary?e.summary:"Review both sides before applying a merge.",diff:typeof e.diff==="string"&&e.diff?e.diff:null,metadata:e.metadata&&typeof e.metadata==="object"&&!Array.isArray(e.metadata)?e.metadata:{}}}function Dw(e){let r=`${e.conflict.entity_kind}:${e.conflict.entity_id}`,t=Boolean(e.local_row&&e.remote_row);return{kind:t?"manual_merge":"custom",target:r,strategy:t?"manual-merge":"review-and-select",summary:t?`Fake AI proposal: compare local and remote ${r} row snapshots, then apply a reviewed manual merge.`:`Fake AI proposal: inspect ${r} with available conflict metadata before selecting a side.`,diff:t?[`--- ${r} local`,`+++ ${r} remote`,"@@ review-required @@",JSON.stringify({local:e.local_row,remote:e.remote_row},null,2).slice(0,1200)].join(` -`):null,metadata:{fake:!0,local_hash:e.conflict.local_hash,remote_hash:e.conflict.remote_hash,source_refs:e.source_refs}}}async function _S(e){let r=(e.now??new Date).toISOString();x(e.dbPath);let t=Hn(e.dbPath,e.id),i=uk(e.dbPath,e.id),n=se(e.modelRef??"default",e.config),_=le(n),u=`run_${iS()}`,c=bw({deterministic:t,evidence:i});Ow({dbPath:e.dbPath,runId:u,prompt:c,provider:_.provider,model:_.model,status:e.fake?"dry_run":"running",metadata:{conflict_id:e.id,mode:"ai",fake:e.fake===!0,read_only_tools:i.read_only_tools.map((E)=>E.name)},now:r}),d$({dbPath:e.dbPath,runId:u,level:"info",event:"conflict_evidence_retrieved",metadata:{citations:i.citations.length,source_refs:i.source_refs.length,read_only_tools:i.read_only_tools},now:r});let d,o,a=0.5,g={input_tokens:c$(c),output_tokens:0,cost_usd:0};if(e.fake)d=Dw(i),o=d.summary,g.output_tokens=c$(o)+c$(d.diff??"");else try{let{generateObject:E}=await import("ai"),{z:l}=await Promise.resolve().then(() => (tS(),rS)),T=await x_(n,{config:e.config,env:e.env}),f=l.object({summary:l.string(),confidence:l.number().min(0).max(1),proposed_patch:l.object({kind:l.enum(["manual_merge","choose_local","choose_remote","no_op","custom"]),target:l.string(),strategy:l.string(),summary:l.string(),diff:l.string().nullable(),metadata:l.record(l.string(),l.unknown()).default({})})}),v=await E({model:T,schema:f,system:"You are a read-only knowledge sync conflict proposal agent. You produce reviewable proposals only; never approve or apply writes.",prompt:c});o=v.object.summary,a=Uw(v.object.confidence),d=mw(v.object.proposed_patch,`${i.conflict.entity_kind}:${i.conflict.entity_id}`);let N=Ct({provider:_.provider,model:_.model,usage:v.usage,providerMetadata:v.providerMetadata});g={input_tokens:N.input_tokens,output_tokens:N.output_tokens,cost_usd:N.cost_usd},Lw(e.dbPath,u,N,r)}catch(E){throw d$({dbPath:e.dbPath,runId:u,level:"error",event:"conflict_proposal_generation_failed",metadata:{message:E instanceof Error?E.message:String(E)},now:r}),nS({dbPath:e.dbPath,runId:u,status:"failed",provider:_.provider,model:_.model,usage:g,metadata:{conflict_id:e.id,mode:"ai",error:E instanceof Error?E.message:String(E)},now:r}),E}return nS({dbPath:e.dbPath,runId:u,status:e.fake?"dry_run":"completed",provider:_.provider,model:_.model,usage:g,metadata:{conflict_id:e.id,mode:"ai",fake:e.fake===!0,confidence:a,proposed_strategy:d.strategy,citation_count:i.citations.length},now:r}),d$({dbPath:e.dbPath,runId:u,level:"info",event:e.fake?"fake_conflict_proposal_generated":"conflict_proposal_generated",metadata:{strategy:d.strategy,confidence:a,patch_kind:d.kind},now:r}),{...t,mode:"ai",proposed_strategy:d.strategy,summary:o,proposed_patch:d,citations:i.citations,confidence:a,agent:{generated:!0,provider:_.provider,model:_.model,run_id:u,read_only_tools:i.read_only_tools,usage:g},warnings:[...t.warnings,...i.remote_row?[]:["remote_row_snapshot_unavailable"]],message:`Prepared AI SDK approval-gated merge proposal for ${e.id}`}}import{createHash as Rw,randomUUID as hw}from"crypto";import{existsSync as ww,readFileSync as Aw}from"fs";import{basename as Xw}from"path";function ad(e,r){return`${e}_${Rw("sha256").update(r).digest("hex").slice(0,20)}`}function Un(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:void 0}function V(e){return typeof e==="string"&&e.length>0?e:void 0}function yw(e){let r=V(e.source_ref)??V(e.source_uri)??V(e.uri);if(r)return r;let t=V(e.file_id);if(t){let _=V(e.revision_id)??V(e.revision),u=`open-files://file/${encodeURIComponent(t)}`;return _?`${u}/revision/${encodeURIComponent(_)}`:u}let i=V(e.source_id),n=V(e.path);if(i&&n)return`open-files://source/${encodeURIComponent(i)}/path/${encodeURIComponent(n)}`;throw Error("Outbox event is missing source_ref, file_id, or source_id/path.")}function xw(e,r){if(r.kind==="open-files"&&r.entity==="file"&&r.revision_id)return e.replace(/\/revision\/[^/]+$/,"");return e}function jw(e){return V(e.hash)??V(e.checksum)??V(e.sha256)??null}function Pw(e,r,t){return V(e.revision_id)??V(e.revision)??V(e.version_id)??(r.kind==="open-files"?r.revision_id:void 0)??t??null}function Fw(e){return V(e.previous_revision_id)??V(e.previous_revision)??V(e.previous_version_id)??null}function Kw(e){return(V(e.event_type)??V(e.event)??V(e.type)??V(e.action)??V(e.change_type)??"changed").toLowerCase()}function Ww(e){let r=V(e.path);return V(e.title)??V(e.name)??(r?Xw(r):null)}function Jw(e,r){let t=yw(e),i=Xe(t),n=jw(e);return{raw:e,eventType:Kw(e),sourceRef:t,sourceUri:xw(t,i),kind:i.kind,title:Ww(e),revision:Pw(e,i,n),previousRevision:Fw(e),hash:n,status:V(e.status)?.toLowerCase()??null,updatedAt:V(e.updated_at)??r,acl:e.permissions??e.acl??void 0}}function zw(e){let r=e.trim();if(!r)return[];if(r.startsWith("[")){let t=JSON.parse(r);if(!Array.isArray(t))throw Error("Outbox array parse failed.");return t.map((i)=>{let n=Un(i);if(!n)throw Error("Outbox array entries must be objects.");return n})}if(r.startsWith("{"))try{let t=JSON.parse(r),i=Un(t);if(!i)throw Error("Outbox object parse failed.");if(Array.isArray(i.events))return i.events.map((n)=>{let _=Un(n);if(!_)throw Error("Outbox events entries must be objects.");return _});if("source_ref"in i||"source_uri"in i||"file_id"in i)return[i]}catch(t){let i=r.split(/\r?\n/).filter((n)=>n.trim().length>0);if(i.length<=1)throw t;return i.map((n)=>{let _=Un(JSON.parse(n));if(!_)throw Error("Outbox JSONL entries must be objects.");return _})}return r.split(/\r?\n/).filter((t)=>t.trim().length>0).map((t)=>{let i=Un(JSON.parse(t));if(!i)throw Error("Outbox JSONL entries must be objects.");return i})}async function Mw(e,r,t){let i=new URL(e),n=i.hostname,_=decodeURIComponent(i.pathname.replace(/^\/+/,""));if(!n||!_)throw Error(`Invalid S3 outbox URI: ${e}`);if(t)Dr(e,t);let[{S3Client:u,GetObjectCommand:c},{fromIni:d}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]),o=r?.storage.type==="s3"&&r.storage.s3?.bucket===n?r.storage.s3:void 0,g=await new u({region:o?.region,credentials:o?.profile?d({profile:o.profile}):void 0,maxAttempts:o?.max_attempts}).send(new c({Bucket:n,Key:_}));if(!g.Body)return"";return await g.Body.transformToString()}async function Cw(e,r,t){if(e.startsWith("s3://"))return Mw(e,r,t);if(!ww(e))throw Error(`Outbox not found: ${e}`);return Aw(e,"utf8")}function uS(e,r){let t={};if(e)try{t=Un(JSON.parse(e))??{}}catch{t={}}return JSON.stringify({...t,...r})}function qw(e,r,t){let i=ad("src",r.sourceUri);e.run(`INSERT INTO sources (id, uri, kind, title, metadata_json, acl_json, created_at, updated_at) +`)}function D0(e){let r=typeof e==="number"&&Number.isFinite(e)?e:0.5;return Math.max(0,Math.min(1,r))}function U0(e,r){let n=e.kind==="choose_local"||e.kind==="choose_remote"||e.kind==="no_op"||e.kind==="custom"||e.kind==="manual_merge"?e.kind:"manual_merge";return{kind:n,target:typeof e.target==="string"&&e.target?e.target:r,strategy:typeof e.strategy==="string"&&e.strategy?e.strategy:n.replace("_","-"),summary:typeof e.summary==="string"&&e.summary?e.summary:"Review both sides before applying a merge.",diff:typeof e.diff==="string"&&e.diff?e.diff:null,metadata:e.metadata&&typeof e.metadata==="object"&&!Array.isArray(e.metadata)?e.metadata:{}}}function h0(e){let r=`${e.conflict.entity_kind}:${e.conflict.entity_id}`,n=Boolean(e.local_row&&e.remote_row);return{kind:n?"manual_merge":"custom",target:r,strategy:n?"manual-merge":"review-and-select",summary:n?`Fake AI proposal: compare local and remote ${r} row snapshots, then apply a reviewed manual merge.`:`Fake AI proposal: inspect ${r} with available conflict metadata before selecting a side.`,diff:n?[`--- ${r} local`,`+++ ${r} remote`,"@@ review-required @@",JSON.stringify({local:e.local_row,remote:e.remote_row},null,2).slice(0,1200)].join(` +`):null,metadata:{fake:!0,local_hash:e.conflict.local_hash,remote_hash:e.conflict.remote_hash,source_refs:e.source_refs}}}async function ub(e){let r=(e.now??new Date).toISOString();P(e.dbPath);let n=Yt(e.dbPath,e.id),i=_S(e.dbPath,e.id),t=se(e.modelRef??"default",e.config),u=le(t),_=`run_${ib()}`,c=w0({deterministic:n,evidence:i});I0({dbPath:e.dbPath,runId:_,prompt:c,provider:u.provider,model:u.model,status:e.fake?"dry_run":"running",metadata:{conflict_id:e.id,mode:"ai",fake:e.fake===!0,read_only_tools:i.read_only_tools.map((a)=>a.name)},now:r}),dE({dbPath:e.dbPath,runId:_,level:"info",event:"conflict_evidence_retrieved",metadata:{citations:i.citations.length,source_refs:i.source_refs.length,read_only_tools:i.read_only_tools},now:r});let d,g,f=0.5,o={input_tokens:cE(c),output_tokens:0,cost_usd:0};if(e.fake)d=h0(i),g=d.summary,o.output_tokens=cE(g)+cE(d.diff??"");else try{let{generateObject:a}=await import("ai"),{z:l}=await Promise.resolve().then(() => (nb(),rb)),$=await Pu(t,{config:e.config,env:e.env}),v=l.object({summary:l.string(),confidence:l.number().min(0).max(1),proposed_patch:l.object({kind:l.enum(["manual_merge","choose_local","choose_remote","no_op","custom"]),target:l.string(),strategy:l.string(),summary:l.string(),diff:l.string().nullable(),metadata:l.record(l.string(),l.unknown()).default({})})}),k=await a({model:$,schema:v,system:"You are a read-only knowledge sync conflict proposal agent. You produce reviewable proposals only; never approve or apply writes.",prompt:c});g=k.object.summary,f=D0(k.object.confidence),d=U0(k.object.proposed_patch,`${i.conflict.entity_kind}:${i.conflict.entity_id}`);let T=Gn({provider:u.provider,model:u.model,usage:k.usage,providerMetadata:k.providerMetadata});o={input_tokens:T.input_tokens,output_tokens:T.output_tokens,cost_usd:T.cost_usd},m0(e.dbPath,_,T,r)}catch(a){throw dE({dbPath:e.dbPath,runId:_,level:"error",event:"conflict_proposal_generation_failed",metadata:{message:a instanceof Error?a.message:String(a)},now:r}),tb({dbPath:e.dbPath,runId:_,status:"failed",provider:u.provider,model:u.model,usage:o,metadata:{conflict_id:e.id,mode:"ai",error:a instanceof Error?a.message:String(a)},now:r}),a}return tb({dbPath:e.dbPath,runId:_,status:e.fake?"dry_run":"completed",provider:u.provider,model:u.model,usage:o,metadata:{conflict_id:e.id,mode:"ai",fake:e.fake===!0,confidence:f,proposed_strategy:d.strategy,citation_count:i.citations.length},now:r}),dE({dbPath:e.dbPath,runId:_,level:"info",event:e.fake?"fake_conflict_proposal_generated":"conflict_proposal_generated",metadata:{strategy:d.strategy,confidence:f,patch_kind:d.kind},now:r}),{...n,mode:"ai",proposed_strategy:d.strategy,summary:g,proposed_patch:d,citations:i.citations,confidence:f,agent:{generated:!0,provider:u.provider,model:u.model,run_id:_,read_only_tools:i.read_only_tools,usage:o},warnings:[...n.warnings,...i.remote_row?[]:["remote_row_snapshot_unavailable"]],message:`Prepared AI SDK approval-gated merge proposal for ${e.id}`}}import{createHash as O0,randomUUID as R0}from"crypto";import{existsSync as L0,readFileSync as A0}from"fs";import{basename as y0}from"path";function fd(e,r){return`${e}_${O0("sha256").update(r).digest("hex").slice(0,20)}`}function Dt(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:void 0}function V(e){return typeof e==="string"&&e.length>0?e:void 0}function j0(e){let r=V(e.source_ref)??V(e.source_uri)??V(e.uri);if(r)return r;let n=V(e.file_id);if(n){let u=V(e.revision_id)??V(e.revision),_=`open-files://file/${encodeURIComponent(n)}`;return u?`${_}/revision/${encodeURIComponent(u)}`:_}let i=V(e.source_id),t=V(e.path);if(i&&t)return`open-files://source/${encodeURIComponent(i)}/path/${encodeURIComponent(t)}`;throw Error("Outbox event is missing source_ref, file_id, or source_id/path.")}function P0(e,r){if(r.kind==="open-files"&&r.entity==="file"&&r.revision_id)return e.replace(/\/revision\/[^/]+$/,"");return e}function x0(e){return V(e.hash)??V(e.checksum)??V(e.sha256)??null}function X0(e,r,n){return V(e.revision_id)??V(e.revision)??V(e.version_id)??(r.kind==="open-files"?r.revision_id:void 0)??n??null}function K0(e){return V(e.previous_revision_id)??V(e.previous_revision)??V(e.previous_version_id)??null}function F0(e){return(V(e.event_type)??V(e.event)??V(e.type)??V(e.action)??V(e.change_type)??"changed").toLowerCase()}function J0(e){let r=V(e.path);return V(e.title)??V(e.name)??(r?y0(r):null)}function z0(e,r){let n=j0(e),i=ye(n),t=x0(e);return{raw:e,eventType:F0(e),sourceRef:n,sourceUri:P0(n,i),kind:i.kind,title:J0(e),revision:X0(e,i,t),previousRevision:K0(e),hash:t,status:V(e.status)?.toLowerCase()??null,updatedAt:V(e.updated_at)??r,acl:e.permissions??e.acl??void 0}}function W0(e){let r=e.trim();if(!r)return[];if(r.startsWith("[")){let n=JSON.parse(r);if(!Array.isArray(n))throw Error("Outbox array parse failed.");return n.map((i)=>{let t=Dt(i);if(!t)throw Error("Outbox array entries must be objects.");return t})}if(r.startsWith("{"))try{let n=JSON.parse(r),i=Dt(n);if(!i)throw Error("Outbox object parse failed.");if(Array.isArray(i.events))return i.events.map((t)=>{let u=Dt(t);if(!u)throw Error("Outbox events entries must be objects.");return u});if("source_ref"in i||"source_uri"in i||"file_id"in i)return[i]}catch(n){let i=r.split(/\r?\n/).filter((t)=>t.trim().length>0);if(i.length<=1)throw n;return i.map((t)=>{let u=Dt(JSON.parse(t));if(!u)throw Error("Outbox JSONL entries must be objects.");return u})}return r.split(/\r?\n/).filter((n)=>n.trim().length>0).map((n)=>{let i=Dt(JSON.parse(n));if(!i)throw Error("Outbox JSONL entries must be objects.");return i})}async function M0(e,r,n){let i=new URL(e),t=i.hostname,u=decodeURIComponent(i.pathname.replace(/^\/+/,""));if(!t||!u)throw Error(`Invalid S3 outbox URI: ${e}`);if(n)hr(e,n);let[{S3Client:_,GetObjectCommand:c},{fromIni:d}]=await Promise.all([import("@aws-sdk/client-s3"),import("@aws-sdk/credential-providers")]),g=r?.storage.type==="s3"&&r.storage.s3?.bucket===t?r.storage.s3:void 0,o=await new _({region:g?.region,credentials:g?.profile?d({profile:g.profile}):void 0,maxAttempts:g?.max_attempts}).send(new c({Bucket:t,Key:u}));if(!o.Body)return"";return await o.Body.transformToString()}async function q0(e,r,n){if(e.startsWith("s3://"))return M0(e,r,n);if(!L0(e))throw Error(`Outbox not found: ${e}`);return A0(e,"utf8")}function _b(e,r){let n={};if(e)try{n=Dt(JSON.parse(e))??{}}catch{n={}}return JSON.stringify({...n,...r})}function G0(e,r,n){let i=fd("src",r.sourceUri);e.run(`INSERT INTO sources (id, uri, kind, title, metadata_json, acl_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(uri) DO UPDATE SET kind = excluded.kind, title = COALESCE(excluded.title, sources.title), - updated_at = excluded.updated_at`,[i,r.sourceUri,r.kind,r.title,JSON.stringify({source_ref:r.sourceRef,source_uri:r.sourceUri,status:r.status,last_outbox_event:r.eventType}),JSON.stringify(r.acl??{}),t,r.updatedAt]);let n=e.query("SELECT id, metadata_json, acl_json FROM sources WHERE uri = ?").get(r.sourceUri);if(!n)throw Error(`Failed to upsert source for outbox event: ${r.sourceUri}`);let _={source_ref:r.sourceRef,source_uri:r.sourceUri,last_outbox_event:r.eventType,last_outbox_at:r.updatedAt};if(r.status)_.status=r.status;if(V(r.raw.path))_.path=r.raw.path;return e.run("UPDATE sources SET metadata_json = ?, acl_json = CASE WHEN ? IS NULL THEN acl_json ELSE ? END, updated_at = ? WHERE id = ?",[uS(n.metadata_json,_),r.acl===void 0?null:JSON.stringify(r.acl),r.acl===void 0?null:JSON.stringify(r.acl),r.updatedAt,n.id]),n.id}function Gw(e,r,t,i){if(!t.revision)return null;let n=ad("rev",`${r}\x00${t.revision}`),_={source_ref:t.sourceRef,source_uri:t.sourceUri,status:t.status,last_outbox_event:t.eventType,reindex_required:!0};return e.run(`INSERT INTO source_revisions (id, source_id, revision, hash, extracted_text_uri, metadata_json, created_at) + updated_at = excluded.updated_at`,[i,r.sourceUri,r.kind,r.title,JSON.stringify({source_ref:r.sourceRef,source_uri:r.sourceUri,status:r.status,last_outbox_event:r.eventType}),JSON.stringify(r.acl??{}),n,r.updatedAt]);let t=e.query("SELECT id, metadata_json, acl_json FROM sources WHERE uri = ?").get(r.sourceUri);if(!t)throw Error(`Failed to upsert source for outbox event: ${r.sourceUri}`);let u={source_ref:r.sourceRef,source_uri:r.sourceUri,last_outbox_event:r.eventType,last_outbox_at:r.updatedAt};if(r.status)u.status=r.status;if(V(r.raw.path))u.path=r.raw.path;return e.run("UPDATE sources SET metadata_json = ?, acl_json = CASE WHEN ? IS NULL THEN acl_json ELSE ? END, updated_at = ? WHERE id = ?",[_b(t.metadata_json,u),r.acl===void 0?null:JSON.stringify(r.acl),r.acl===void 0?null:JSON.stringify(r.acl),r.updatedAt,t.id]),t.id}function H0(e,r,n,i){if(!n.revision)return null;let t=fd("rev",`${r}\x00${n.revision}`),u={source_ref:n.sourceRef,source_uri:n.sourceUri,status:n.status,last_outbox_event:n.eventType,reindex_required:!0};return e.run(`INSERT INTO source_revisions (id, source_id, revision, hash, extracted_text_uri, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(source_id, revision) DO UPDATE SET hash = COALESCE(excluded.hash, source_revisions.hash), - metadata_json = excluded.metadata_json`,[n,r,t.revision,t.hash,V(t.raw.extracted_text_ref)??null,JSON.stringify(_),i]),e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").get(r,t.revision)?.id??null}function Yw(e,r,t){if(t.previousRevision){let i=e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").all(r,t.previousRevision).map((n)=>n.id);if(i.length>0)return i}if(t.revision)return e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").all(r,t.revision).map((i)=>i.id);if(t.hash)return e.query("SELECT id FROM source_revisions WHERE source_id = ? AND hash = ?").all(r,t.hash).map((i)=>i.id);return e.query("SELECT id FROM source_revisions WHERE source_id = ?").all(r).map((i)=>i.id)}function Bw(e,r){let t=e.query("SELECT id FROM chunks WHERE source_revision_id = ?").all(r),i=0,n=0;for(let u of t){let c=e.query("SELECT COUNT(*) AS n FROM chunk_embeddings WHERE chunk_id = ?").get(u.id);i+=c?.n??0;let d=e.query("SELECT COUNT(*) AS n FROM vector_index_entries WHERE chunk_id = ?").get(u.id);n+=d?.n??0,e.run("DELETE FROM vector_index_entries WHERE chunk_id = ?",[u.id]),e.run("DELETE FROM chunk_embeddings WHERE chunk_id = ?",[u.id]),e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[u.id])}e.run("DELETE FROM chunks WHERE source_revision_id = ?",[r]);let _=e.query("SELECT metadata_json FROM source_revisions WHERE id = ?").get(r);return e.run("UPDATE source_revisions SET metadata_json = ? WHERE id = ?",[uS(_?.metadata_json,{reindex_required:!0,invalidated_at:new Date().toISOString()}),r]),{chunksDeleted:t.length,embeddingsDeleted:i,vectorEntriesDeleted:n}}function Hw(e,r){return r==="deleted"||["delete","deleted","remove","removed"].includes(e)}function Vw(e){return["move","moved","rename","renamed","path_changed","canonical_key_changed"].includes(e)}function Qw(e){return["permission","permissions","permission_changed","acl_changed","acl_revoked"].includes(e)}async function cS(e){let r=(e.now??new Date).toISOString();if(e.safetyPolicy)Er(e.dbPath,e.safetyPolicy);x(e.dbPath);let t=await Cw(e.input,e.config,e.safetyPolicy),i=zw(t),n=A(e.dbPath),_=`run_${hw()}`;try{return n.transaction(()=>{n.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[_,"open-files-outbox",e.input,"completed","local","open-files-outbox",JSON.stringify({path:e.input,events:i.length}),r,r]);let u=new Set,c=new Set,d=0,o=0,a=0,g=0,E=0,l=0,T=0;return re(n,{event_type:"source_read",action:e.input.startsWith("s3://")?"s3_outbox_read":"local_outbox_read",target_uri:e.input,decision:"allow",metadata:{events:i.length,read_only:!0},created_at:r}),i.forEach((f,v)=>{let N=Jw(f,r),k=qw(n,N,r);u.add(k);let R=Gw(n,k,N,r);if(R)c.add(R);let S=Yw(n,k,N);for(let U of S){c.add(U);let X=Bw(n,U);d+=X.chunksDeleted,o+=X.embeddingsDeleted,a+=X.vectorEntriesDeleted,g+=1}if(Hw(N.eventType,N.status))E+=1;if(Vw(N.eventType))l+=1;if(Qw(N.eventType)||N.acl!==void 0)T+=1;n.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?)`,[ad("evt",`${_}\x00${v}\x00${N.sourceRef}\x00${N.eventType}`),_,"info",N.eventType,JSON.stringify({source_ref:N.sourceRef,source_uri:N.sourceUri,revision:N.revision,hash:N.hash,status:N.status,affected_revisions:S.length}),N.updatedAt])}),n.run(`INSERT INTO provider_usage (id, run_id, provider, model, input_tokens, output_tokens, cost_usd, metadata_json, created_at) - VALUES (?, ?, ?, ?, 0, 0, 0, ?, ?)`,[ad("usage",_),_,"local","open-files-outbox",JSON.stringify({note:"No model provider used for outbox invalidation."}),r]),re(n,{event_type:"write",action:"knowledge_outbox_invalidation",target_uri:e.dbPath,decision:"allow",metadata:{run_id:_,events:i.length,sources:u.size,revisions:c.size,chunks_deleted:d,embeddings_deleted:o,vector_entries_deleted:a},created_at:r}),{path:e.input,db_path:e.dbPath,run_id:_,events_seen:i.length,sources_touched:u.size,revisions_touched:c.size,chunks_deleted:d,embeddings_deleted:o,vector_entries_deleted:a,stale_revisions:g,deleted_sources:E,moved_sources:l,permission_updates:T}})()}finally{n.close()}}import{spawnSync as gS}from"child_process";import{hostname as At,platform as lS,userInfo as Zw}from"os";var sw=1,pw="@hasna/machines",eA="@hasna/machines/consumer";function P(e){return typeof e==="string"&&e.length>0?e:null}function qr(e){return Array.isArray(e)?e.filter((r)=>typeof r==="string"):[]}function Ne(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function kd(e){return typeof e==="boolean"?e:null}function rA(e){return typeof e==="number"&&Number.isFinite(e)?e:null}function Id(e=lS()){let r=e.toLowerCase();if(r==="darwin"||r==="macos")return"macos";if(r==="win32"||r==="windows")return"windows";if(r==="linux")return"linux";return e}function i_(e){let r=gS("bash",["-c",e],{encoding:"utf8",env:process.env});return{stdout:r.stdout||"",stderr:r.stderr||"",exitCode:r.status??1}}async function mn(e,r){return await e(r)}async function __(e,r){return(await mn(r,`command -v ${e} >/dev/null 2>&1`)).exitCode===0}function tA(e){try{let r=JSON.parse(e);if(!r||typeof r!=="object")return null;return r}catch{return null}}function dS(e){if(!e)return null;return e.HostName??e.DNSName?.split(".")[0]??null}async function nA(e,r){let t=new Map;if(!await __("tailscale",e))return r.push("tailscale_not_available"),{peers:t,selfKey:null};let i=await mn(e,"tailscale status --json");if(i.exitCode!==0)return r.push(`tailscale_status_failed:${i.stderr.trim()||i.exitCode}`),{peers:t,selfKey:null};let n=tA(i.stdout);if(!n)return r.push("tailscale_status_invalid_json"),{peers:t,selfKey:null};let _=(u)=>{let c=dS(u);if(c&&u)t.set(c,u)};_(n.Self);for(let u of Object.values(n.Peer??{}))_(u);return{peers:t,selfKey:dS(n.Self)}}function iA(e){return process.env.HASNA_MACHINE_ID??process.env.OPEN_MACHINES_MACHINE_ID??process.env.MACHINE_ID??e??At()}function _A(e){let r=e.machineId===e.localMachineId||e.machineId===At(),t=e.peer?.DNSName?.replace(/\.$/,"")??null,i=t??e.peer?.TailscaleIPs?.[0]??null,n=[];if(r)n.push({kind:"local",target:"localhost",reachable:!0});if(i)n.push({kind:"tailscale",target:i,reachable:e.peer?.Online??null});let _=n.find((u)=>u.kind==="local")??n.find((u)=>u.kind==="tailscale")??null;return{machine_id:e.machineId,hostname:e.peer?.HostName??(r?At():e.machineId),local:r,platform:e.peer?.OS?Id(e.peer.OS):r?Id():null,os:e.peer?.OS??(r?lS():null),user:r?Zw().username:null,workspace_path:null,manifest_declared:!1,heartbeat_status:"unknown",last_heartbeat_at:null,tailscale:{dns_name:t,ips:e.peer?.TailscaleIPs??[],online:e.peer?.Online??null,active:e.peer?.Active??null,last_seen:e.peer?.LastSeen??null},ssh:{address:null,route:_?.kind==="local"?"local":_?.kind==="tailscale"?"tailscale":"unknown",command_target:_?.target??null},route_hints:n,tags:[],metadata:{},source:"local"}}function uA(e){if(!Array.isArray(e))return[];return e.map((r)=>{let t=Ne(r),i=P(t.kind)??"unknown";return{kind:i==="local"||i==="lan"||i==="tailscale"||i==="ssh"?i:"unknown",target:P(t.target)??"",reachable:kd(t.reachable)}}).filter((r)=>r.target.length>0)}function cA(e,r){let t=P(e.machine_id)??P(e.hostname)??"unknown",i=Ne(e.tailscale),n=Ne(e.ssh),_=P(e.heartbeat_status),u=P(n.route);return{machine_id:t,hostname:P(e.hostname),local:t===r,platform:P(e.platform),os:P(e.os),user:P(e.user),workspace_path:P(e.workspace_path),manifest_declared:e.manifest_declared===!0,heartbeat_status:_==="online"||_==="offline"?_:"unknown",last_heartbeat_at:P(e.last_heartbeat_at),tailscale:{dns_name:P(i.dns_name),ips:qr(i.ips),online:kd(i.online),active:kd(i.active),last_seen:P(i.last_seen)},ssh:{address:P(n.address),route:u==="local"||u==="lan"||u==="tailscale"?u:"unknown",command_target:P(n.command_target)},route_hints:uA(e.route_hints),tags:qr(e.tags),metadata:Ne(e.metadata),source:"open-machines"}}function dA(e,r){return`${r} machine${r===1?"":"s"} discovered via ${e}`}function he(e){let r=e instanceof Error?e.message:String(e);return r.includes("Cannot find module '@hasna/machines'")||r.includes("Cannot find module '@hasna/machines/consumer'")?"module_not_found":r}function u_(e){return e.adapterMode??"auto"}function ES(e){let r=e?.MACHINES_CONSUMER_CONTRACT?.schema_version;if(typeof r==="number")return r;let t=e?.MACHINES_CONSUMER_CONTRACT_VERSION;return typeof t==="number"?t:null}function Sd(e){return typeof e.schema_version==="number"?e.schema_version:null}function c_(e){return typeof e==="number"&&e>sw?e:null}function Od(e){return{package:pw,entrypoint:eA,mode:e.mode,implementation:e.implementation,contract_version:e.contractVersion??null,available:e.available,error:e.error??null}}function M(e,r="adapter_disabled"){return Od({mode:e,implementation:"disabled",available:!1,error:r})}function Ld(e,r){let t=c_(ES(r));if(!t)return null;return Od({mode:e,implementation:"disabled",available:!1,error:`unsupported_contract_version:${t}`,contractVersion:t})}function bd(e){return Od({mode:e,implementation:"cli",available:!0})}function Ud(e,r){return Od({mode:e,implementation:"sdk",available:!0,contractVersion:ES(r)})}function md(e){try{return JSON.parse(e)}catch{return null}}function Xt(e){return`'${e.replace(/'/g,"'\\''")}'`}function Dd(e){return["machines",...e].map(Xt).join(" ")}function Rd(e){return e==="local"||e==="localhost"||e===At()||e===process.env.HASNA_MACHINE_ID||e===process.env.OPEN_MACHINES_MACHINE_ID||e===process.env.MACHINE_ID}function oA(e,r){let t=Rd(e),i=t?r:`ssh ${Xt(e)} ${Xt(r)}`,n=gS("bash",["-c",i],{encoding:"utf8",env:process.env});return{stdout:n.stdout||"",stderr:n.stderr||"",exitCode:n.status??1,source:t?"local":"ssh"}}async function aS(e,r,t){return await e(r,t)}function ht(e,r){if(r)return"ok";return e===!1?"warn":"fail"}function wt(e){return e.replace(/[^a-zA-Z0-9_.@/-]+/g,"-").replace(/^-+|-+$/g,"")}function gA(e){if(e==="@hasna/knowledge")return"knowledge";if(e==="@hasna/machines")return"machines";return e.split("/").pop()??e}function lA(e){return e.trim().split(/\r?\n/).find(Boolean)??""}function TS(e){return e.match(/\b\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?\b/)?.[0]??null}function fS(e){let r={};for(let t of e.split(/\r?\n/)){let i=t.indexOf("=");if(i<=0)continue;r[t.slice(0,i)]=t.slice(i+1)}return r}function Or(e){return{id:e.id,kind:e.kind,status:e.status,target:e.target,expected:e.expected??null,actual:e.actual??null,detail:e.detail,source:e.source}}async function $S(e,r,t){let i=[`cmd=${Xt(r.command)}`,'path="$(command -v "$cmd" 2>/dev/null || true)"','printf "path=%s\\n" "$path"',`if [ -n "$path" ]; then version="$("$cmd" ${r.versionArgs??"--version"} 2>/dev/null || true)"; printf "version=%s\\n" "$version"; fi`].join("; "),n=await aS(t,e,i),_=fS(n.stdout);return{path:_.path||null,version:_.version?lA(_.version):null,stderr:n.stderr,source:n.source??(Rd(e)?"local":"ssh")}}function oS(e){let r=e==="name"?String.raw`s/.*"name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p`:String.raw`s/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p`;return[`if command -v bun >/dev/null 2>&1; then bun -e "const p=JSON.parse(await Bun.file(process.argv[1]).text()); console.log(p.${e} ?? '')" "$pkg" 2>/dev/null`,`elif command -v node >/dev/null 2>&1; then node -e "const fs=require('fs'); const p=JSON.parse(fs.readFileSync(process.argv[1], 'utf8')); console.log(p.${e} || '')" "$pkg" 2>/dev/null`,`else sed -n '${r}' "$pkg" | head -n 1`,"fi"].join("; ")}async function EA(e,r,t){let i=[`path=${Xt(r.path)}`,'printf "exists=%s\\n" "$(test -d "$path" && printf yes || printf no)"','pkg="$path/package.json"','printf "package_json=%s\\n" "$(test -f "$pkg" && printf yes || printf no)"',`if [ -f "$pkg" ]; then printf "package_name=%s\\n" "$(${oS("name")})"; printf "version=%s\\n" "$(${oS("version")})"; fi`].join("; "),n=await aS(t,e,i),_=fS(n.stdout);return{exists:_.exists==="yes",packageJson:_.package_json==="yes",packageName:_.package_name||null,version:_.version||null,stderr:n.stderr,source:n.source??(Rd(e)?"local":"ssh")}}async function aA(e,r,t){let i=await $S(e,r,t),n=Boolean(i.path),_=[Or({id:`command:${wt(r.command)}:path`,kind:"command",status:ht(r.required,n),target:r.command,expected:"available",actual:i.path??"missing",detail:n?`found at ${i.path}`:i.stderr||"command missing",source:i.source})];if(r.expectedVersion){let u=TS(i.version??"");_.push(Or({id:`command:${wt(r.command)}:version`,kind:"command",status:u===r.expectedVersion?"ok":ht(r.required,!1),target:r.command,expected:r.expectedVersion,actual:u??i.version??"missing",detail:u?`version output: ${i.version}`:"version unavailable",source:i.source}))}return _}async function TA(e,r,t){let i=r.command??gA(r.name),n=await $S(e,{command:i,expectedVersion:r.expectedVersion,required:r.required},t),_=Boolean(n.path),u=[Or({id:`package:${wt(r.name)}:command`,kind:"package",status:ht(r.required,_),target:r.name,expected:i,actual:n.path??"missing",detail:_?`${i} found at ${n.path}`:`${i} command missing`,source:n.source})];if(r.expectedVersion){let c=TS(n.version??"");u.push(Or({id:`package:${wt(r.name)}:version`,kind:"package",status:c===r.expectedVersion?"ok":ht(r.required,!1),target:r.name,expected:r.expectedVersion,actual:c??n.version??"missing",detail:c?`version output: ${n.version}`:"version unavailable",source:n.source}))}return u}async function fA(e,r,t){let i=await EA(e,r,t),n=r.label??r.path,_=[Or({id:`workspace:${wt(n)}:path`,kind:"workspace",status:ht(r.required,i.exists),target:n,expected:r.path,actual:i.exists?"exists":"missing",detail:i.exists?`workspace exists at ${r.path}`:i.stderr||`workspace missing at ${r.path}`,source:i.source})];if(r.expectedPackageName)_.push(Or({id:`workspace:${wt(n)}:package-name`,kind:"workspace",status:i.packageName===r.expectedPackageName?"ok":ht(r.required,!1),target:n,expected:r.expectedPackageName,actual:i.packageName??(i.packageJson?"missing-name":"missing-package-json"),detail:i.packageJson?"package.json inspected":"package.json missing",source:i.source}));if(r.expectedVersion)_.push(Or({id:`workspace:${wt(n)}:version`,kind:"workspace",status:i.version===r.expectedVersion?"ok":ht(r.required,!1),target:n,expected:r.expectedVersion,actual:i.version??(i.packageJson?"missing-version":"missing-package-json"),detail:i.packageJson?"package.json inspected":"package.json missing",source:i.source}));return _}function vS(e,r){return{...e,knowledge:{scope:r.knowledge?.scope??"global",app_path:cr,workspace_home:r.knowledge?.workspace_home??null},message:dA(e.source,e.machines.length)}}async function hd(){try{return await import("@hasna/machines/consumer")}catch(e){if(he(e)!=="module_not_found")throw e;return await import("@hasna/machines")}}function NS(e,r,t){let i=Ne(e);if(c_(Sd(i)))return null;let n=Array.isArray(i.machines)?i.machines:null,_=P(i.local_machine_id);if(!n||!_)return null;let u={ok:!0,source:"open-machines",generated_at:P(i.generated_at)??(r.now??new Date).toISOString(),local_machine_id:_,local_hostname:P(i.local_hostname)??At(),current_platform:P(i.current_platform)??Id(),machines:n.map((c)=>cA(c,_)),warnings:qr(i.warnings),adapter:t};return vS(u,r)}function Td(e){return e==="local"||e==="lan"||e==="tailscale"||e==="ssh"||e==="unknown"?e:null}function kS(e){let r=Ne(e),t=P(r.observed_at),i=P(r.source_authority);if(!t||!i)return null;return{observed_at:t,verified_at:P(r.verified_at),expires_at:P(r.expires_at),ttl_ms:rA(r.ttl_ms),source_authority:i,confidence:P(r.confidence),cacheable:r.cacheable===!0,stale:r.stale===!0,reasons:qr(r.reasons)}}function IS(e,r){let t=Ne(e);if(c_(Sd(t)))return null;let i=P(t.target)??P(t.command_target);if(t.ok!==!0||!i)return null;let n=typeof t.evidence==="object"&&t.evidence!==null?t.evidence:null,_=typeof n?.selected_hint==="object"&&n.selected_hint!==null?n.selected_hint:null;return{target:i,route:Td(t.route),targetKind:Td(_?.kind)??Td(t.source)??Td(t.route),confidence:P(t.confidence),source:"open-machines",adapter:r,evidence:n,cacheability:kS(t.cacheability),warnings:qr(t.warnings)}}function o$(e){let r=Ne(e);return{path:P(r.path),source:P(r.source)??"unresolved"}}function $A(e){if(!Array.isArray(e))return[];return e.flatMap((r)=>{let t=Ne(r),i=P(t.id),n=P(t.status),_=P(t.severity),u=P(t.message);if(!i||!n||!_||!u)return[];return[{id:i,status:n,severity:_,message:u,path:P(t.path),source:P(t.source)??"unknown",path_exists:kd(t.path_exists)}]})}function vA(e){if(!Array.isArray(e))return[];return e.flatMap((r)=>{let t=Ne(r),i=P(t.id),n=P(t.reason),_=qr(t.command),u=P(t.shell_command),c=qr(t.apply_command),d=P(t.apply_shell_command);if(!i||!n||!_.length||!u||!c.length||!d)return[];return[{id:i,reason:n,command:_,shell_command:u,apply_command:c,apply_shell_command:d}]})}function NA(e){if(!(e.projectRootSource==="inferred"||e.openFilesRootSource==="inferred"||e.trustStatus==="untrusted"||e.authStatus==="unknown"||e.warnings.some((n)=>n.includes("inferred")||n.includes("untrusted")||n.includes("unknown_auth")||n.includes("missing"))))return[];let t=["machines","workspace","repair","--machine",e.requestedMachineId,"--project",e.projectId,"--repo",e.repoName,"--open-files-repo",e.openFilesRepoName??"open-files","--json"],i=[...t,"--apply"];return[{id:"machines_workspace_repair",reason:"Workspace paths or trust metadata need confirmation before remote knowledge sync.",command:t,shell_command:t.map(Xt).join(" "),apply_command:i,apply_shell_command:i.map(Xt).join(" ")}]}function SS(e,r,t){let i=Ne(e);if(c_(Sd(i)))return null;let n=Ne(i.paths),_=Ne(i.project),u=Ne(i.machine),c=o$(n.project_root),d=o$(n.workspace_root),o=o$(n.open_files_root);if(i.ok!==!0||!c.path)return null;let a=typeof i.evidence==="object"&&i.evidence!==null?i.evidence:null,g=P(i.requested_machine_id)??r.machineId,E=P(_.project_id)??r.projectId??"open-knowledge",l=P(_.repo_name)??r.repoName??r.projectId??"open-knowledge",T=P(u.trust_status)??"unknown",f=P(u.auth_status)??"unknown",v=qr(i.warnings),N=$A(i.diagnostics),k=vA(i.repair_hints);return{ok:!0,source:"open-machines",adapter:t,requested_machine_id:g,machine_id:P(i.machine_id),project_id:E,repo_name:l,project_root:c.path,project_root_source:c.source,workspace_root:d.path,workspace_root_source:d.source,open_files_root:o.path,open_files_root_source:o.source,trust_status:T,auth_status:f,current:u.current===!0,primary:u.primary===!0,diagnostics:N,repair_hints:k.length?k:NA({requestedMachineId:g,projectId:E,repoName:l,openFilesRepoName:r.openFilesRepoName,warnings:v,projectRootSource:c.source,openFilesRootSource:o.source,trustStatus:T,authStatus:f}),evidence:a,cacheability:kS(i.cacheability),warnings:v}}async function fd(e,r){let t=e.runner??i_;if(!await __("machines",t))return null;let i=["topology","--json"];if(e.includeTailscale===!1)i.push("--no-tailscale");let n=await mn(t,Dd(i));if(n.exitCode!==0)return null;return NS(md(n.stdout),e,r)}async function Nr(e,r){let t=[];if(r.error)t.push(`open_machines_unavailable:${r.error}`);let i=e.runner??i_,n=e.includeTailscale===!1?{peers:new Map,selfKey:null}:await nA(i,t),_=iA(n.selfKey),c=[...new Set([_,...n.peers.keys()])].sort().map((d)=>_A({machineId:d,localMachineId:_,peer:n.peers.get(d)}));return vS({ok:!0,source:"local",generated_at:(e.now??new Date).toISOString(),local_machine_id:_,local_hostname:At(),current_platform:Id(),machines:c,warnings:t,adapter:r},e)}async function OS(e={}){let r=u_(e);if(r==="disabled")return await Nr(e,M(r));let t=bd(r);try{if(r!=="cli"){let n=await(e.loadOpenMachines??hd)(),_=Ld(r,n);if(_)return await Nr(e,_);let u=Ud(r,n);if(n?.discoverMachineTopology){let c=n.discoverMachineTopology({includeTailscale:e.includeTailscale,runner:e.runner,now:e.now}),d=NS(c,e,u);if(d)return d;if(r==="sdk")return await Nr(e,M(r,"invalid_topology_shape"));return await fd(e,t)??await Nr(e,M(r,"invalid_topology_shape"))}if(r==="sdk")return await Nr(e,M(r,"missing_discoverMachineTopology"));return await fd(e,t)??await Nr(e,M(r,"missing_discoverMachineTopology"))}return await fd(e,t)??await Nr(e,M(r,"machines_cli_unavailable"))}catch(i){if(r==="sdk")return await Nr(e,M(r,he(i)));return await fd(e,t)??await Nr(e,M(r,he(i)))}}async function $d(e,r){let t=e.runner??i_;if(!await __("machines",t))return null;let i=["route","--machine",e.machineId,"--json"];if(e.includeTailscale===!1)i.push("--no-tailscale");let n=await mn(t,Dd(i));if(n.exitCode!==0)return null;return IS(md(n.stdout),r)}function kr(e,r){return{target:e,route:null,targetKind:null,confidence:null,source:"raw",adapter:r,evidence:null,cacheability:null,warnings:[]}}async function g$(e){let r=u_(e);if(r==="disabled")return kr(e.machineId,M(r));let t=bd(r);try{if(r!=="cli"){let n=await(e.loadOpenMachines??hd)(),_=Ld(r,n);if(_)return kr(e.machineId,_);let u=Ud(r,n);if(n?.resolveMachineRoute){let c=IS(n.resolveMachineRoute(e.machineId,{includeTailscale:e.includeTailscale,runner:e.runner,now:e.now}),u);if(c)return c;if(r==="sdk")return kr(e.machineId,M(r,"invalid_route_shape"));return await $d(e,t)??kr(e.machineId,M(r,"invalid_route_shape"))}if(r==="sdk")return kr(e.machineId,M(r,"missing_resolveMachineRoute"));return await $d(e,t)??kr(e.machineId,M(r,"missing_resolveMachineRoute"))}return await $d(e,t)??kr(e.machineId,M(r,"machines_cli_unavailable"))}catch(i){if(r==="sdk")return{...kr(e.machineId,M(r,he(i))),warnings:[he(i)]};return await $d(e,t)??{...kr(e.machineId,M(r,he(i))),warnings:[he(i)]}}}async function vd(e,r){let t=e.runner??i_;if(!await __("machines",t))return null;let i=e.projectId??"open-knowledge",n=e.repoName??"open-knowledge",_=["workspace","resolve","--machine",e.machineId,"--project",i,"--repo",n,"--open-files-repo",e.openFilesRepoName??"open-files","--json"];if(e.includeTailscale===!1)_.push("--no-tailscale");let u=await mn(t,Dd(_));if(u.exitCode!==0)return null;return SS(md(u.stdout),e,r)}function kA(e){let r=e.peerWorkspace?.trim();if(!r)return null;return{ok:!0,source:"argument",adapter:M(u_(e),"argument_override"),requested_machine_id:e.machineId,machine_id:e.machineId,project_id:e.projectId??"open-knowledge",repo_name:e.repoName??"open-knowledge",project_root:r,project_root_source:"argument",workspace_root:null,workspace_root_source:"unresolved",open_files_root:null,open_files_root_source:"unresolved",trust_status:"unknown",auth_status:"unknown",current:!1,primary:!1,diagnostics:[],repair_hints:[],evidence:null,cacheability:null,warnings:[]}}function Ir(e,r,t){return{ok:!1,source:"raw",adapter:t,requested_machine_id:e.machineId,machine_id:null,project_id:e.projectId??"open-knowledge",repo_name:e.repoName??"open-knowledge",project_root:null,project_root_source:"unresolved",workspace_root:null,workspace_root_source:"unresolved",open_files_root:null,open_files_root_source:"unresolved",trust_status:"unknown",auth_status:"unknown",current:!1,primary:!1,diagnostics:[],repair_hints:[],evidence:null,cacheability:null,warnings:r}}async function wd(e){let r=kA(e);if(r)return r;let t=u_(e);if(t==="disabled")return Ir(e,["adapter_disabled"],M(t));let i=bd(t);try{if(t!=="cli"){let _=await(e.loadOpenMachines??hd)(),u=Ld(t,_);if(u)return Ir(e,[`unsupported_contract_version:${u.contract_version}`],u);let c=Ud(t,_);if(_?.resolveMachineWorkspace){let d=SS(_.resolveMachineWorkspace({machineId:e.machineId,projectId:e.projectId??"open-knowledge",repoName:e.repoName??"open-knowledge",openFilesRepoName:e.openFilesRepoName??"open-files",includeTailscale:e.includeTailscale,runner:e.runner,now:e.now}),e,c);if(d)return d;if(t==="sdk")return Ir(e,["invalid_workspace_shape"],M(t,"invalid_workspace_shape"));return await vd(e,i)??Ir(e,["invalid_workspace_shape"],M(t,"invalid_workspace_shape"))}if(t==="sdk")return Ir(e,["missing_resolveMachineWorkspace"],M(t,"missing_resolveMachineWorkspace"));return await vd(e,i)??Ir(e,["missing_resolveMachineWorkspace"],M(t,"missing_resolveMachineWorkspace"))}return await vd(e,i)??Ir(e,["machines_cli_unavailable"],M(t,"machines_cli_unavailable"))}catch(n){if(t==="sdk")return Ir(e,[he(n)],M(t,he(n)));return await vd(e,i)??Ir(e,[he(n)],M(t,he(n)))}}function LS(e,r){return{...e,knowledge:{scope:r.knowledge?.scope??"global",app_path:cr,workspace_home:r.knowledge?.workspace_home??null},message:e.ok?`Machine ${e.machine_id} passed knowledge preflight`:`Machine ${e.machine_id} failed knowledge preflight: ${e.summary.fail} failing check(s)`}}function bS(e,r,t){let i=Ne(e);if(c_(Sd(i)))return null;let n=Array.isArray(i.checks)?i.checks:null,_=P(i.machine_id)??P(i.machineId);if(!n||!_)return null;let u=n.map((d)=>{let o=Ne(d),a=P(o.status),g=P(o.kind),E=P(o.source);return Or({id:P(o.id)??"unknown",kind:g==="command"||g==="package"||g==="workspace"?g:"command",status:a==="ok"||a==="warn"||a==="fail"?a:"fail",target:P(o.target)??"unknown",expected:P(o.expected),actual:P(o.actual),detail:P(o.detail)??"",source:E==="local"||E==="ssh"||E==="open-machines"?E:"open-machines"})}),c={ok:u.filter((d)=>d.status==="ok").length,warn:u.filter((d)=>d.status==="warn").length,fail:u.filter((d)=>d.status==="fail").length};return LS({ok:c.fail===0,source:"open-machines",machine_id:_,generated_at:P(i.generated_at)??(r.now??new Date).toISOString(),checks:u,summary:c,adapter:t},r)}function IA(e){if(!e.runner)return i_;return async(r)=>{let t=await e.runner?.("local",r);return{stdout:t?.stdout??"",stderr:t?.stderr??"",exitCode:t?.exitCode??1}}}function SA(e){return[e.name,e.command,e.expectedVersion].filter((r)=>Boolean(r)).join(":")}function OA(e){let r=[e.expectedPackageName,e.expectedVersion].filter((i)=>Boolean(i)).join(":"),t=r?`${e.path}:${r}`:e.path;return e.label?`${e.label}=${t}`:t}async function Nd(e,r){let t=IA(e);if(!await __("machines",t))return null;let i=["compatibility","--json","--machine",e.machineId??"local"];for(let _ of e.commands??[])i.push("--command",_.expectedVersion?`${_.command}:${_.expectedVersion}`:_.command);for(let _ of e.packages??[])i.push("--package",SA(_));for(let _ of e.workspaces??[])i.push("--workspace",OA(_));let n=await mn(t,Dd(i));if(n.exitCode!==0)return null;return bS(md(n.stdout),e,r)}async function Sr(e,r){let t=e.machineId??At(),i=e.runner??oA,n=e.commands??[{command:"bun",required:!0},{command:"knowledge",required:!0}],_=e.packages??[{name:"@hasna/knowledge",command:"knowledge",required:!0}],u=e.workspaces??[],c=[];for(let o of n)c.push(...await aA(t,o,i));for(let o of _)c.push(...await TA(t,o,i));for(let o of u)c.push(...await fA(t,o,i));if(r.error)c.push(Or({id:"adapter:@hasna/machines",kind:"package",status:"warn",target:"@hasna/machines",expected:"optional",actual:r.error,detail:"Using knowledge local/ssh compatibility fallback",source:Rd(t)?"local":"ssh"}));let d={ok:c.filter((o)=>o.status==="ok").length,warn:c.filter((o)=>o.status==="warn").length,fail:c.filter((o)=>o.status==="fail").length};return LS({ok:d.fail===0,source:"local",machine_id:t,generated_at:(e.now??new Date).toISOString(),checks:c,summary:d,adapter:r},e)}async function US(e={}){let r=u_(e);if(r==="disabled")return await Sr(e,M(r));let t=bd(r);try{if(r!=="cli"){let n=await(e.loadOpenMachines??hd)(),_=Ld(r,n);if(_)return await Sr(e,_);let u=Ud(r,n);if(n?.checkMachineCompatibility){let c=n.checkMachineCompatibility({machineId:e.machineId,commands:e.commands,packages:e.packages,workspaces:e.workspaces,runner:e.runner,now:e.now}),d=bS(c,e,u);if(d)return d;if(r==="sdk")return await Sr(e,M(r,"invalid_compatibility_shape"));return await Nd(e,t)??await Sr(e,M(r,"invalid_compatibility_shape"))}if(r==="sdk")return await Sr(e,M(r,"missing_checkMachineCompatibility"));return await Nd(e,t)??await Sr(e,M(r,"missing_checkMachineCompatibility"))}return await Nd(e,t)??await Sr(e,M(r,"machines_cli_unavailable"))}catch(i){if(r==="sdk")return await Sr(e,M(r,he(i)));return await Nd(e,t)??await Sr(e,M(r,he(i)))}}import{createHash as LA,randomUUID as mS}from"crypto";function bA(e,r){return`${e}_${LA("sha256").update(r).digest("hex").slice(0,20)}`}function UA(e){let r=A(e);try{let t=r.query("SELECT status, COUNT(*) AS n FROM reindex_queue GROUP BY status ORDER BY status").all();return Object.fromEntries(t.map((i)=>[i.status,i.n]))}finally{r.close()}}function DS(e,r){let t=pr(r.modelRef,r.config),i=le(t),n=A(e);try{return n.query(`SELECT c.id AS chunk_id, c.source_revision_id, s.uri AS source_uri + metadata_json = excluded.metadata_json`,[t,r,n.revision,n.hash,V(n.raw.extracted_text_ref)??null,JSON.stringify(u),i]),e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").get(r,n.revision)?.id??null}function B0(e,r,n){if(n.previousRevision){let i=e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").all(r,n.previousRevision).map((t)=>t.id);if(i.length>0)return i}if(n.revision)return e.query("SELECT id FROM source_revisions WHERE source_id = ? AND revision = ?").all(r,n.revision).map((i)=>i.id);if(n.hash)return e.query("SELECT id FROM source_revisions WHERE source_id = ? AND hash = ?").all(r,n.hash).map((i)=>i.id);return e.query("SELECT id FROM source_revisions WHERE source_id = ?").all(r).map((i)=>i.id)}function C0(e,r){let n=e.query("SELECT id FROM chunks WHERE source_revision_id = ?").all(r),i=0,t=0;for(let _ of n){let c=e.query("SELECT COUNT(*) AS n FROM chunk_embeddings WHERE chunk_id = ?").get(_.id);i+=c?.n??0;let d=e.query("SELECT COUNT(*) AS n FROM vector_index_entries WHERE chunk_id = ?").get(_.id);t+=d?.n??0,e.run("DELETE FROM vector_index_entries WHERE chunk_id = ?",[_.id]),e.run("DELETE FROM chunk_embeddings WHERE chunk_id = ?",[_.id]),e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[_.id])}e.run("DELETE FROM chunks WHERE source_revision_id = ?",[r]);let u=e.query("SELECT metadata_json FROM source_revisions WHERE id = ?").get(r);return e.run("UPDATE source_revisions SET metadata_json = ? WHERE id = ?",[_b(u?.metadata_json,{reindex_required:!0,invalidated_at:new Date().toISOString()}),r]),{chunksDeleted:n.length,embeddingsDeleted:i,vectorEntriesDeleted:t}}function Y0(e,r){return r==="deleted"||["delete","deleted","remove","removed"].includes(e)}function V0(e){return["move","moved","rename","renamed","path_changed","canonical_key_changed"].includes(e)}function Q0(e){return["permission","permissions","permission_changed","acl_changed","acl_revoked"].includes(e)}async function cb(e){let r=(e.now??new Date).toISOString();if(e.safetyPolicy)ar(e.dbPath,e.safetyPolicy);P(e.dbPath);let n=await q0(e.input,e.config,e.safetyPolicy),i=W0(n),t=A(e.dbPath),u=`run_${R0()}`;try{return t.transaction(()=>{t.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[u,"open-files-outbox",e.input,"completed","local","open-files-outbox",JSON.stringify({path:e.input,events:i.length}),r,r]);let _=new Set,c=new Set,d=0,g=0,f=0,o=0,a=0,l=0,$=0;return re(t,{event_type:"source_read",action:e.input.startsWith("s3://")?"s3_outbox_read":"local_outbox_read",target_uri:e.input,decision:"allow",metadata:{events:i.length,read_only:!0},created_at:r}),i.forEach((v,k)=>{let T=z0(v,r),S=G0(t,T,r);_.add(S);let O=H0(t,S,T,r);if(O)c.add(O);let b=B0(t,S,T);for(let D of b){c.add(D);let y=C0(t,D);d+=y.chunksDeleted,g+=y.embeddingsDeleted,f+=y.vectorEntriesDeleted,o+=1}if(Y0(T.eventType,T.status))a+=1;if(V0(T.eventType))l+=1;if(Q0(T.eventType)||T.acl!==void 0)$+=1;t.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?)`,[fd("evt",`${u}\x00${k}\x00${T.sourceRef}\x00${T.eventType}`),u,"info",T.eventType,JSON.stringify({source_ref:T.sourceRef,source_uri:T.sourceUri,revision:T.revision,hash:T.hash,status:T.status,affected_revisions:b.length}),T.updatedAt])}),t.run(`INSERT INTO provider_usage (id, run_id, provider, model, input_tokens, output_tokens, cost_usd, metadata_json, created_at) + VALUES (?, ?, ?, ?, 0, 0, 0, ?, ?)`,[fd("usage",u),u,"local","open-files-outbox",JSON.stringify({note:"No model provider used for outbox invalidation."}),r]),re(t,{event_type:"write",action:"knowledge_outbox_invalidation",target_uri:e.dbPath,decision:"allow",metadata:{run_id:u,events:i.length,sources:_.size,revisions:c.size,chunks_deleted:d,embeddings_deleted:g,vector_entries_deleted:f},created_at:r}),{path:e.input,db_path:e.dbPath,run_id:u,events_seen:i.length,sources_touched:_.size,revisions_touched:c.size,chunks_deleted:d,embeddings_deleted:g,vector_entries_deleted:f,stale_revisions:o,deleted_sources:a,moved_sources:l,permission_updates:$}})()}finally{t.close()}}import{spawnSync as ob}from"child_process";import{hostname as yn,platform as lb,userInfo as Z0}from"os";var s0=1,p0="@hasna/machines",eL="@hasna/machines/consumer";function X(e){return typeof e==="string"&&e.length>0?e:null}function Gr(e){return Array.isArray(e)?e.filter((r)=>typeof r==="string"):[]}function Te(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function Sd(e){return typeof e==="boolean"?e:null}function rL(e){return typeof e==="number"&&Number.isFinite(e)?e:null}function Nd(e=lb()){let r=e.toLowerCase();if(r==="darwin"||r==="macos")return"macos";if(r==="win32"||r==="windows")return"windows";if(r==="linux")return"linux";return e}function iu(e){let r=ob("bash",["-c",e],{encoding:"utf8",env:process.env});return{stdout:r.stdout||"",stderr:r.stderr||"",exitCode:r.status??1}}async function Ut(e,r){return await e(r)}async function uu(e,r){return(await Ut(r,`command -v ${e} >/dev/null 2>&1`)).exitCode===0}function nL(e){try{let r=JSON.parse(e);if(!r||typeof r!=="object")return null;return r}catch{return null}}function db(e){if(!e)return null;return e.HostName??e.DNSName?.split(".")[0]??null}async function tL(e,r){let n=new Map;if(!await uu("tailscale",e))return r.push("tailscale_not_available"),{peers:n,selfKey:null};let i=await Ut(e,"tailscale status --json");if(i.exitCode!==0)return r.push(`tailscale_status_failed:${i.stderr.trim()||i.exitCode}`),{peers:n,selfKey:null};let t=nL(i.stdout);if(!t)return r.push("tailscale_status_invalid_json"),{peers:n,selfKey:null};let u=(_)=>{let c=db(_);if(c&&_)n.set(c,_)};u(t.Self);for(let _ of Object.values(t.Peer??{}))u(_);return{peers:n,selfKey:db(t.Self)}}function iL(e){return process.env.HASNA_MACHINE_ID??process.env.OPEN_MACHINES_MACHINE_ID??process.env.MACHINE_ID??e??yn()}function uL(e){let r=e.machineId===e.localMachineId||e.machineId===yn(),n=e.peer?.DNSName?.replace(/\.$/,"")??null,i=n??e.peer?.TailscaleIPs?.[0]??null,t=[];if(r)t.push({kind:"local",target:"localhost",reachable:!0});if(i)t.push({kind:"tailscale",target:i,reachable:e.peer?.Online??null});let u=t.find((_)=>_.kind==="local")??t.find((_)=>_.kind==="tailscale")??null;return{machine_id:e.machineId,hostname:e.peer?.HostName??(r?yn():e.machineId),local:r,platform:e.peer?.OS?Nd(e.peer.OS):r?Nd():null,os:e.peer?.OS??(r?lb():null),user:r?Z0().username:null,workspace_path:null,manifest_declared:!1,heartbeat_status:"unknown",last_heartbeat_at:null,tailscale:{dns_name:n,ips:e.peer?.TailscaleIPs??[],online:e.peer?.Online??null,active:e.peer?.Active??null,last_seen:e.peer?.LastSeen??null},ssh:{address:null,route:u?.kind==="local"?"local":u?.kind==="tailscale"?"tailscale":"unknown",command_target:u?.target??null},route_hints:t,tags:[],metadata:{},source:"local"}}function _L(e){if(!Array.isArray(e))return[];return e.map((r)=>{let n=Te(r),i=X(n.kind)??"unknown";return{kind:i==="local"||i==="lan"||i==="tailscale"||i==="ssh"?i:"unknown",target:X(n.target)??"",reachable:Sd(n.reachable)}}).filter((r)=>r.target.length>0)}function cL(e,r){let n=X(e.machine_id)??X(e.hostname)??"unknown",i=Te(e.tailscale),t=Te(e.ssh),u=X(e.heartbeat_status),_=X(t.route);return{machine_id:n,hostname:X(e.hostname),local:n===r,platform:X(e.platform),os:X(e.os),user:X(e.user),workspace_path:X(e.workspace_path),manifest_declared:e.manifest_declared===!0,heartbeat_status:u==="online"||u==="offline"?u:"unknown",last_heartbeat_at:X(e.last_heartbeat_at),tailscale:{dns_name:X(i.dns_name),ips:Gr(i.ips),online:Sd(i.online),active:Sd(i.active),last_seen:X(i.last_seen)},ssh:{address:X(t.address),route:_==="local"||_==="lan"||_==="tailscale"?_:"unknown",command_target:X(t.command_target)},route_hints:_L(e.route_hints),tags:Gr(e.tags),metadata:Te(e.metadata),source:"open-machines"}}function dL(e,r){return`${r} machine${r===1?"":"s"} discovered via ${e}`}function Re(e){let r=e instanceof Error?e.message:String(e);return r.includes("Cannot find module '@hasna/machines'")||r.includes("Cannot find module '@hasna/machines/consumer'")?"module_not_found":r}function _u(e){return e.adapterMode??"auto"}function ab(e){let r=e?.MACHINES_CONSUMER_CONTRACT?.schema_version;if(typeof r==="number")return r;let n=e?.MACHINES_CONSUMER_CONTRACT_VERSION;return typeof n==="number"?n:null}function bd(e){return typeof e.schema_version==="number"?e.schema_version:null}function cu(e){return typeof e==="number"&&e>s0?e:null}function Id(e){return{package:p0,entrypoint:eL,mode:e.mode,implementation:e.implementation,contract_version:e.contractVersion??null,available:e.available,error:e.error??null}}function M(e,r="adapter_disabled"){return Id({mode:e,implementation:"disabled",available:!1,error:r})}function md(e,r){let n=cu(ab(r));if(!n)return null;return Id({mode:e,implementation:"disabled",available:!1,error:`unsupported_contract_version:${n}`,contractVersion:n})}function wd(e){return Id({mode:e,implementation:"cli",available:!0})}function Dd(e,r){return Id({mode:e,implementation:"sdk",available:!0,contractVersion:ab(r)})}function Ud(e){try{return JSON.parse(e)}catch{return null}}function jn(e){return`'${e.replace(/'/g,"'\\''")}'`}function hd(e){return["machines",...e].map(jn).join(" ")}function Od(e){return e==="local"||e==="localhost"||e===yn()||e===process.env.HASNA_MACHINE_ID||e===process.env.OPEN_MACHINES_MACHINE_ID||e===process.env.MACHINE_ID}function gL(e,r){let n=Od(e),i=n?r:`ssh ${jn(e)} ${jn(r)}`,t=ob("bash",["-c",i],{encoding:"utf8",env:process.env});return{stdout:t.stdout||"",stderr:t.stderr||"",exitCode:t.status??1,source:n?"local":"ssh"}}async function fb(e,r,n){return await e(r,n)}function Ln(e,r){if(r)return"ok";return e===!1?"warn":"fail"}function An(e){return e.replace(/[^a-zA-Z0-9_.@/-]+/g,"-").replace(/^-+|-+$/g,"")}function oL(e){if(e==="@hasna/knowledge")return"knowledge";if(e==="@hasna/machines")return"machines";return e.split("/").pop()??e}function lL(e){return e.trim().split(/\r?\n/).find(Boolean)??""}function $b(e){return e.match(/\b\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?\b/)?.[0]??null}function vb(e){let r={};for(let n of e.split(/\r?\n/)){let i=n.indexOf("=");if(i<=0)continue;r[n.slice(0,i)]=n.slice(i+1)}return r}function Ir(e){return{id:e.id,kind:e.kind,status:e.status,target:e.target,expected:e.expected??null,actual:e.actual??null,detail:e.detail,source:e.source}}async function Eb(e,r,n){let i=[`cmd=${jn(r.command)}`,'path="$(command -v "$cmd" 2>/dev/null || true)"','printf "path=%s\\n" "$path"',`if [ -n "$path" ]; then version="$("$cmd" ${r.versionArgs??"--version"} 2>/dev/null || true)"; printf "version=%s\\n" "$version"; fi`].join("; "),t=await fb(n,e,i),u=vb(t.stdout);return{path:u.path||null,version:u.version?lL(u.version):null,stderr:t.stderr,source:t.source??(Od(e)?"local":"ssh")}}function gb(e){let r=e==="name"?String.raw`s/.*"name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p`:String.raw`s/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p`;return[`if command -v bun >/dev/null 2>&1; then bun -e "const p=JSON.parse(await Bun.file(process.argv[1]).text()); console.log(p.${e} ?? '')" "$pkg" 2>/dev/null`,`elif command -v node >/dev/null 2>&1; then node -e "const fs=require('fs'); const p=JSON.parse(fs.readFileSync(process.argv[1], 'utf8')); console.log(p.${e} || '')" "$pkg" 2>/dev/null`,`else sed -n '${r}' "$pkg" | head -n 1`,"fi"].join("; ")}async function aL(e,r,n){let i=[`path=${jn(r.path)}`,'printf "exists=%s\\n" "$(test -d "$path" && printf yes || printf no)"','pkg="$path/package.json"','printf "package_json=%s\\n" "$(test -f "$pkg" && printf yes || printf no)"',`if [ -f "$pkg" ]; then printf "package_name=%s\\n" "$(${gb("name")})"; printf "version=%s\\n" "$(${gb("version")})"; fi`].join("; "),t=await fb(n,e,i),u=vb(t.stdout);return{exists:u.exists==="yes",packageJson:u.package_json==="yes",packageName:u.package_name||null,version:u.version||null,stderr:t.stderr,source:t.source??(Od(e)?"local":"ssh")}}async function fL(e,r,n){let i=await Eb(e,r,n),t=Boolean(i.path),u=[Ir({id:`command:${An(r.command)}:path`,kind:"command",status:Ln(r.required,t),target:r.command,expected:"available",actual:i.path??"missing",detail:t?`found at ${i.path}`:i.stderr||"command missing",source:i.source})];if(r.expectedVersion){let _=$b(i.version??"");u.push(Ir({id:`command:${An(r.command)}:version`,kind:"command",status:_===r.expectedVersion?"ok":Ln(r.required,!1),target:r.command,expected:r.expectedVersion,actual:_??i.version??"missing",detail:_?`version output: ${i.version}`:"version unavailable",source:i.source}))}return u}async function $L(e,r,n){let i=r.command??oL(r.name),t=await Eb(e,{command:i,expectedVersion:r.expectedVersion,required:r.required},n),u=Boolean(t.path),_=[Ir({id:`package:${An(r.name)}:command`,kind:"package",status:Ln(r.required,u),target:r.name,expected:i,actual:t.path??"missing",detail:u?`${i} found at ${t.path}`:`${i} command missing`,source:t.source})];if(r.expectedVersion){let c=$b(t.version??"");_.push(Ir({id:`package:${An(r.name)}:version`,kind:"package",status:c===r.expectedVersion?"ok":Ln(r.required,!1),target:r.name,expected:r.expectedVersion,actual:c??t.version??"missing",detail:c?`version output: ${t.version}`:"version unavailable",source:t.source}))}return _}async function vL(e,r,n){let i=await aL(e,r,n),t=r.label??r.path,u=[Ir({id:`workspace:${An(t)}:path`,kind:"workspace",status:Ln(r.required,i.exists),target:t,expected:r.path,actual:i.exists?"exists":"missing",detail:i.exists?`workspace exists at ${r.path}`:i.stderr||`workspace missing at ${r.path}`,source:i.source})];if(r.expectedPackageName)u.push(Ir({id:`workspace:${An(t)}:package-name`,kind:"workspace",status:i.packageName===r.expectedPackageName?"ok":Ln(r.required,!1),target:t,expected:r.expectedPackageName,actual:i.packageName??(i.packageJson?"missing-name":"missing-package-json"),detail:i.packageJson?"package.json inspected":"package.json missing",source:i.source}));if(r.expectedVersion)u.push(Ir({id:`workspace:${An(t)}:version`,kind:"workspace",status:i.version===r.expectedVersion?"ok":Ln(r.required,!1),target:t,expected:r.expectedVersion,actual:i.version??(i.packageJson?"missing-version":"missing-package-json"),detail:i.packageJson?"package.json inspected":"package.json missing",source:i.source}));return u}function kb(e,r){return{...e,knowledge:{scope:r.knowledge?.scope??"global",app_path:cr,workspace_home:r.knowledge?.workspace_home??null},message:dL(e.source,e.machines.length)}}async function Rd(){try{return await import("@hasna/machines/consumer")}catch(e){if(Re(e)!=="module_not_found")throw e;return await import("@hasna/machines")}}function Tb(e,r,n){let i=Te(e);if(cu(bd(i)))return null;let t=Array.isArray(i.machines)?i.machines:null,u=X(i.local_machine_id);if(!t||!u)return null;let _={ok:!0,source:"open-machines",generated_at:X(i.generated_at)??(r.now??new Date).toISOString(),local_machine_id:u,local_hostname:X(i.local_hostname)??yn(),current_platform:X(i.current_platform)??Nd(),machines:t.map((c)=>cL(c,u)),warnings:Gr(i.warnings),adapter:n};return kb(_,r)}function $d(e){return e==="local"||e==="lan"||e==="tailscale"||e==="ssh"||e==="unknown"?e:null}function Sb(e){let r=Te(e),n=X(r.observed_at),i=X(r.source_authority);if(!n||!i)return null;return{observed_at:n,verified_at:X(r.verified_at),expires_at:X(r.expires_at),ttl_ms:rL(r.ttl_ms),source_authority:i,confidence:X(r.confidence),cacheable:r.cacheable===!0,stale:r.stale===!0,reasons:Gr(r.reasons)}}function Nb(e,r){let n=Te(e);if(cu(bd(n)))return null;let i=X(n.target)??X(n.command_target);if(n.ok!==!0||!i)return null;let t=typeof n.evidence==="object"&&n.evidence!==null?n.evidence:null,u=typeof t?.selected_hint==="object"&&t.selected_hint!==null?t.selected_hint:null;return{target:i,route:$d(n.route),targetKind:$d(u?.kind)??$d(n.source)??$d(n.route),confidence:X(n.confidence),source:"open-machines",adapter:r,evidence:t,cacheability:Sb(n.cacheability),warnings:Gr(n.warnings)}}function gE(e){let r=Te(e);return{path:X(r.path),source:X(r.source)??"unresolved"}}function EL(e){if(!Array.isArray(e))return[];return e.flatMap((r)=>{let n=Te(r),i=X(n.id),t=X(n.status),u=X(n.severity),_=X(n.message);if(!i||!t||!u||!_)return[];return[{id:i,status:t,severity:u,message:_,path:X(n.path),source:X(n.source)??"unknown",path_exists:Sd(n.path_exists)}]})}function kL(e){if(!Array.isArray(e))return[];return e.flatMap((r)=>{let n=Te(r),i=X(n.id),t=X(n.reason),u=Gr(n.command),_=X(n.shell_command),c=Gr(n.apply_command),d=X(n.apply_shell_command);if(!i||!t||!u.length||!_||!c.length||!d)return[];return[{id:i,reason:t,command:u,shell_command:_,apply_command:c,apply_shell_command:d}]})}function TL(e){if(!(e.projectRootSource==="inferred"||e.openFilesRootSource==="inferred"||e.trustStatus==="untrusted"||e.authStatus==="unknown"||e.warnings.some((t)=>t.includes("inferred")||t.includes("untrusted")||t.includes("unknown_auth")||t.includes("missing"))))return[];let n=["machines","workspace","repair","--machine",e.requestedMachineId,"--project",e.projectId,"--repo",e.repoName,"--open-files-repo",e.openFilesRepoName??"open-files","--json"],i=[...n,"--apply"];return[{id:"machines_workspace_repair",reason:"Workspace paths or trust metadata need confirmation before remote knowledge sync.",command:n,shell_command:n.map(jn).join(" "),apply_command:i,apply_shell_command:i.map(jn).join(" ")}]}function bb(e,r,n){let i=Te(e);if(cu(bd(i)))return null;let t=Te(i.paths),u=Te(i.project),_=Te(i.machine),c=gE(t.project_root),d=gE(t.workspace_root),g=gE(t.open_files_root);if(i.ok!==!0||!c.path)return null;let f=typeof i.evidence==="object"&&i.evidence!==null?i.evidence:null,o=X(i.requested_machine_id)??r.machineId,a=X(u.project_id)??r.projectId??"open-knowledge",l=X(u.repo_name)??r.repoName??r.projectId??"open-knowledge",$=X(_.trust_status)??"unknown",v=X(_.auth_status)??"unknown",k=Gr(i.warnings),T=EL(i.diagnostics),S=kL(i.repair_hints);return{ok:!0,source:"open-machines",adapter:n,requested_machine_id:o,machine_id:X(i.machine_id),project_id:a,repo_name:l,project_root:c.path,project_root_source:c.source,workspace_root:d.path,workspace_root_source:d.source,open_files_root:g.path,open_files_root_source:g.source,trust_status:$,auth_status:v,current:_.current===!0,primary:_.primary===!0,diagnostics:T,repair_hints:S.length?S:TL({requestedMachineId:o,projectId:a,repoName:l,openFilesRepoName:r.openFilesRepoName,warnings:k,projectRootSource:c.source,openFilesRootSource:g.source,trustStatus:$,authStatus:v}),evidence:f,cacheability:Sb(i.cacheability),warnings:k}}async function vd(e,r){let n=e.runner??iu;if(!await uu("machines",n))return null;let i=["topology","--json"];if(e.includeTailscale===!1)i.push("--no-tailscale");let t=await Ut(n,hd(i));if(t.exitCode!==0)return null;return Tb(Ud(t.stdout),e,r)}async function Tr(e,r){let n=[];if(r.error)n.push(`open_machines_unavailable:${r.error}`);let i=e.runner??iu,t=e.includeTailscale===!1?{peers:new Map,selfKey:null}:await tL(i,n),u=iL(t.selfKey),c=[...new Set([u,...t.peers.keys()])].sort().map((d)=>uL({machineId:d,localMachineId:u,peer:t.peers.get(d)}));return kb({ok:!0,source:"local",generated_at:(e.now??new Date).toISOString(),local_machine_id:u,local_hostname:yn(),current_platform:Nd(),machines:c,warnings:n,adapter:r},e)}async function Ib(e={}){let r=_u(e);if(r==="disabled")return await Tr(e,M(r));let n=wd(r);try{if(r!=="cli"){let t=await(e.loadOpenMachines??Rd)(),u=md(r,t);if(u)return await Tr(e,u);let _=Dd(r,t);if(t?.discoverMachineTopology){let c=t.discoverMachineTopology({includeTailscale:e.includeTailscale,runner:e.runner,now:e.now}),d=Tb(c,e,_);if(d)return d;if(r==="sdk")return await Tr(e,M(r,"invalid_topology_shape"));return await vd(e,n)??await Tr(e,M(r,"invalid_topology_shape"))}if(r==="sdk")return await Tr(e,M(r,"missing_discoverMachineTopology"));return await vd(e,n)??await Tr(e,M(r,"missing_discoverMachineTopology"))}return await vd(e,n)??await Tr(e,M(r,"machines_cli_unavailable"))}catch(i){if(r==="sdk")return await Tr(e,M(r,Re(i)));return await vd(e,n)??await Tr(e,M(r,Re(i)))}}async function Ed(e,r){let n=e.runner??iu;if(!await uu("machines",n))return null;let i=["route","--machine",e.machineId,"--json"];if(e.includeTailscale===!1)i.push("--no-tailscale");let t=await Ut(n,hd(i));if(t.exitCode!==0)return null;return Nb(Ud(t.stdout),r)}function Sr(e,r){return{target:e,route:null,targetKind:null,confidence:null,source:"raw",adapter:r,evidence:null,cacheability:null,warnings:[]}}async function oE(e){let r=_u(e);if(r==="disabled")return Sr(e.machineId,M(r));let n=wd(r);try{if(r!=="cli"){let t=await(e.loadOpenMachines??Rd)(),u=md(r,t);if(u)return Sr(e.machineId,u);let _=Dd(r,t);if(t?.resolveMachineRoute){let c=Nb(t.resolveMachineRoute(e.machineId,{includeTailscale:e.includeTailscale,runner:e.runner,now:e.now}),_);if(c)return c;if(r==="sdk")return Sr(e.machineId,M(r,"invalid_route_shape"));return await Ed(e,n)??Sr(e.machineId,M(r,"invalid_route_shape"))}if(r==="sdk")return Sr(e.machineId,M(r,"missing_resolveMachineRoute"));return await Ed(e,n)??Sr(e.machineId,M(r,"missing_resolveMachineRoute"))}return await Ed(e,n)??Sr(e.machineId,M(r,"machines_cli_unavailable"))}catch(i){if(r==="sdk")return{...Sr(e.machineId,M(r,Re(i))),warnings:[Re(i)]};return await Ed(e,n)??{...Sr(e.machineId,M(r,Re(i))),warnings:[Re(i)]}}}async function kd(e,r){let n=e.runner??iu;if(!await uu("machines",n))return null;let i=e.projectId??"open-knowledge",t=e.repoName??"open-knowledge",u=["workspace","resolve","--machine",e.machineId,"--project",i,"--repo",t,"--open-files-repo",e.openFilesRepoName??"open-files","--json"];if(e.includeTailscale===!1)u.push("--no-tailscale");let _=await Ut(n,hd(u));if(_.exitCode!==0)return null;return bb(Ud(_.stdout),e,r)}function SL(e){let r=e.peerWorkspace?.trim();if(!r)return null;return{ok:!0,source:"argument",adapter:M(_u(e),"argument_override"),requested_machine_id:e.machineId,machine_id:e.machineId,project_id:e.projectId??"open-knowledge",repo_name:e.repoName??"open-knowledge",project_root:r,project_root_source:"argument",workspace_root:null,workspace_root_source:"unresolved",open_files_root:null,open_files_root_source:"unresolved",trust_status:"unknown",auth_status:"unknown",current:!1,primary:!1,diagnostics:[],repair_hints:[],evidence:null,cacheability:null,warnings:[]}}function Nr(e,r,n){return{ok:!1,source:"raw",adapter:n,requested_machine_id:e.machineId,machine_id:null,project_id:e.projectId??"open-knowledge",repo_name:e.repoName??"open-knowledge",project_root:null,project_root_source:"unresolved",workspace_root:null,workspace_root_source:"unresolved",open_files_root:null,open_files_root_source:"unresolved",trust_status:"unknown",auth_status:"unknown",current:!1,primary:!1,diagnostics:[],repair_hints:[],evidence:null,cacheability:null,warnings:r}}async function Ld(e){let r=SL(e);if(r)return r;let n=_u(e);if(n==="disabled")return Nr(e,["adapter_disabled"],M(n));let i=wd(n);try{if(n!=="cli"){let u=await(e.loadOpenMachines??Rd)(),_=md(n,u);if(_)return Nr(e,[`unsupported_contract_version:${_.contract_version}`],_);let c=Dd(n,u);if(u?.resolveMachineWorkspace){let d=bb(u.resolveMachineWorkspace({machineId:e.machineId,projectId:e.projectId??"open-knowledge",repoName:e.repoName??"open-knowledge",openFilesRepoName:e.openFilesRepoName??"open-files",includeTailscale:e.includeTailscale,runner:e.runner,now:e.now}),e,c);if(d)return d;if(n==="sdk")return Nr(e,["invalid_workspace_shape"],M(n,"invalid_workspace_shape"));return await kd(e,i)??Nr(e,["invalid_workspace_shape"],M(n,"invalid_workspace_shape"))}if(n==="sdk")return Nr(e,["missing_resolveMachineWorkspace"],M(n,"missing_resolveMachineWorkspace"));return await kd(e,i)??Nr(e,["missing_resolveMachineWorkspace"],M(n,"missing_resolveMachineWorkspace"))}return await kd(e,i)??Nr(e,["machines_cli_unavailable"],M(n,"machines_cli_unavailable"))}catch(t){if(n==="sdk")return Nr(e,[Re(t)],M(n,Re(t)));return await kd(e,i)??Nr(e,[Re(t)],M(n,Re(t)))}}function mb(e,r){return{...e,knowledge:{scope:r.knowledge?.scope??"global",app_path:cr,workspace_home:r.knowledge?.workspace_home??null},message:e.ok?`Machine ${e.machine_id} passed knowledge preflight`:`Machine ${e.machine_id} failed knowledge preflight: ${e.summary.fail} failing check(s)`}}function wb(e,r,n){let i=Te(e);if(cu(bd(i)))return null;let t=Array.isArray(i.checks)?i.checks:null,u=X(i.machine_id)??X(i.machineId);if(!t||!u)return null;let _=t.map((d)=>{let g=Te(d),f=X(g.status),o=X(g.kind),a=X(g.source);return Ir({id:X(g.id)??"unknown",kind:o==="command"||o==="package"||o==="workspace"?o:"command",status:f==="ok"||f==="warn"||f==="fail"?f:"fail",target:X(g.target)??"unknown",expected:X(g.expected),actual:X(g.actual),detail:X(g.detail)??"",source:a==="local"||a==="ssh"||a==="open-machines"?a:"open-machines"})}),c={ok:_.filter((d)=>d.status==="ok").length,warn:_.filter((d)=>d.status==="warn").length,fail:_.filter((d)=>d.status==="fail").length};return mb({ok:c.fail===0,source:"open-machines",machine_id:u,generated_at:X(i.generated_at)??(r.now??new Date).toISOString(),checks:_,summary:c,adapter:n},r)}function NL(e){if(!e.runner)return iu;return async(r)=>{let n=await e.runner?.("local",r);return{stdout:n?.stdout??"",stderr:n?.stderr??"",exitCode:n?.exitCode??1}}}function bL(e){return[e.name,e.command,e.expectedVersion].filter((r)=>Boolean(r)).join(":")}function IL(e){let r=[e.expectedPackageName,e.expectedVersion].filter((i)=>Boolean(i)).join(":"),n=r?`${e.path}:${r}`:e.path;return e.label?`${e.label}=${n}`:n}async function Td(e,r){let n=NL(e);if(!await uu("machines",n))return null;let i=["compatibility","--json","--machine",e.machineId??"local"];for(let u of e.commands??[])i.push("--command",u.expectedVersion?`${u.command}:${u.expectedVersion}`:u.command);for(let u of e.packages??[])i.push("--package",bL(u));for(let u of e.workspaces??[])i.push("--workspace",IL(u));let t=await Ut(n,hd(i));if(t.exitCode!==0)return null;return wb(Ud(t.stdout),e,r)}async function br(e,r){let n=e.machineId??yn(),i=e.runner??gL,t=e.commands??[{command:"bun",required:!0},{command:"knowledge",required:!0}],u=e.packages??[{name:"@hasna/knowledge",command:"knowledge",required:!0}],_=e.workspaces??[],c=[];for(let g of t)c.push(...await fL(n,g,i));for(let g of u)c.push(...await $L(n,g,i));for(let g of _)c.push(...await vL(n,g,i));if(r.error)c.push(Ir({id:"adapter:@hasna/machines",kind:"package",status:"warn",target:"@hasna/machines",expected:"optional",actual:r.error,detail:"Using knowledge local/ssh compatibility fallback",source:Od(n)?"local":"ssh"}));let d={ok:c.filter((g)=>g.status==="ok").length,warn:c.filter((g)=>g.status==="warn").length,fail:c.filter((g)=>g.status==="fail").length};return mb({ok:d.fail===0,source:"local",machine_id:n,generated_at:(e.now??new Date).toISOString(),checks:c,summary:d,adapter:r},e)}async function Db(e={}){let r=_u(e);if(r==="disabled")return await br(e,M(r));let n=wd(r);try{if(r!=="cli"){let t=await(e.loadOpenMachines??Rd)(),u=md(r,t);if(u)return await br(e,u);let _=Dd(r,t);if(t?.checkMachineCompatibility){let c=t.checkMachineCompatibility({machineId:e.machineId,commands:e.commands,packages:e.packages,workspaces:e.workspaces,runner:e.runner,now:e.now}),d=wb(c,e,_);if(d)return d;if(r==="sdk")return await br(e,M(r,"invalid_compatibility_shape"));return await Td(e,n)??await br(e,M(r,"invalid_compatibility_shape"))}if(r==="sdk")return await br(e,M(r,"missing_checkMachineCompatibility"));return await Td(e,n)??await br(e,M(r,"missing_checkMachineCompatibility"))}return await Td(e,n)??await br(e,M(r,"machines_cli_unavailable"))}catch(i){if(r==="sdk")return await br(e,M(r,Re(i)));return await Td(e,n)??await br(e,M(r,Re(i)))}}import{createHash as mL,randomUUID as Ub}from"crypto";function wL(e,r){return`${e}_${mL("sha256").update(r).digest("hex").slice(0,20)}`}function DL(e){let r=A(e);try{let n=r.query("SELECT status, COUNT(*) AS n FROM reindex_queue GROUP BY status ORDER BY status").all();return Object.fromEntries(n.map((i)=>[i.status,i.n]))}finally{r.close()}}function hb(e,r){let n=pr(r.modelRef,r.config),i=le(n),t=A(e);try{return t.query(`SELECT c.id AS chunk_id, c.source_revision_id, s.uri AS source_uri FROM chunks c LEFT JOIN source_revisions sr ON sr.id = c.source_revision_id LEFT JOIN sources s ON s.id = sr.source_id LEFT JOIN vector_index_entries v ON v.chunk_id = c.id AND v.provider = ? AND v.model = ? WHERE v.id IS NULL - ORDER BY c.created_at ASC, c.ordinal ASC`).all(i.provider,i.model)}finally{n.close()}}function RS(e){x(e.dbPath);let r=A(e.dbPath);try{let t=r.query("SELECT MAX(version) AS version FROM schema_versions").get()?.version??0,i=r.query("SELECT COUNT(*) AS n FROM chunks").get()?.n??0,n=r.query("SELECT COUNT(*) AS n FROM vector_index_entries").get()?.n??0,_=DS(e.dbPath,e).length,u=r.query(`SELECT COUNT(*) AS n FROM source_revisions - WHERE metadata_json LIKE '%"reindex_required":true%' OR metadata_json LIKE '%"status":"stale"%'`).get()?.n??0;return{schema_version:t,chunks:i,vector_entries:n,missing_embeddings:_,queued:UA(e.dbPath),stale_revisions:u}}finally{r.close()}}function l$(e){x(e.dbPath);let r=(e.now??new Date).toISOString(),t=e.reason??"missing_embedding",i=DS(e.dbPath,e),n=A(e.dbPath),_=0,u=0;try{n.transaction(()=>{for(let d of i){let o=bA("rq",`embedding\x00${d.chunk_id}\x00${t}`);if(n.query("SELECT id FROM reindex_queue WHERE kind = ? AND target_id = ? AND reason = ?").get("embedding",d.chunk_id,t)){u+=1;continue}n.run(`INSERT INTO reindex_queue (id, kind, target_id, source_uri, reason, status, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[o,"embedding",d.chunk_id,d.source_uri,t,"pending",JSON.stringify({source_revision_id:d.source_revision_id}),r,r]),_+=1}})()}finally{n.close()}return{enqueued:_,already_queued:u,reason:t}}function mA(e){let r=A(e);try{let t=r.query("SELECT COUNT(*) AS n FROM chunk_embeddings").get()?.n??0,i=r.query("SELECT COUNT(*) AS n FROM vector_index_entries").get()?.n??0;return r.run("DELETE FROM vector_index_entries"),r.run("DELETE FROM chunk_embeddings"),{embeddings:t,vectorEntries:i}}finally{r.close()}}function DA(e,r,t){let i=pr(r.modelRef,r.config),n=le(i),_=A(e);try{return _.run(`UPDATE reindex_queue + ORDER BY c.created_at ASC, c.ordinal ASC`).all(i.provider,i.model)}finally{t.close()}}function Ob(e){P(e.dbPath);let r=A(e.dbPath);try{let n=r.query("SELECT MAX(version) AS version FROM schema_versions").get()?.version??0,i=r.query("SELECT COUNT(*) AS n FROM chunks").get()?.n??0,t=r.query("SELECT COUNT(*) AS n FROM vector_index_entries").get()?.n??0,u=hb(e.dbPath,e).length,_=r.query(`SELECT COUNT(*) AS n FROM source_revisions + WHERE metadata_json LIKE '%"reindex_required":true%' OR metadata_json LIKE '%"status":"stale"%'`).get()?.n??0;return{schema_version:n,chunks:i,vector_entries:t,missing_embeddings:u,queued:DL(e.dbPath),stale_revisions:_}}finally{r.close()}}function lE(e){P(e.dbPath);let r=(e.now??new Date).toISOString(),n=e.reason??"missing_embedding",i=hb(e.dbPath,e),t=A(e.dbPath),u=0,_=0;try{t.transaction(()=>{for(let d of i){let g=wL("rq",`embedding\x00${d.chunk_id}\x00${n}`);if(t.query("SELECT id FROM reindex_queue WHERE kind = ? AND target_id = ? AND reason = ?").get("embedding",d.chunk_id,n)){_+=1;continue}t.run(`INSERT INTO reindex_queue (id, kind, target_id, source_uri, reason, status, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[g,"embedding",d.chunk_id,d.source_uri,n,"pending",JSON.stringify({source_revision_id:d.source_revision_id}),r,r]),u+=1}})()}finally{t.close()}return{enqueued:u,already_queued:_,reason:n}}function UL(e){let r=A(e);try{let n=r.query("SELECT COUNT(*) AS n FROM chunk_embeddings").get()?.n??0,i=r.query("SELECT COUNT(*) AS n FROM vector_index_entries").get()?.n??0;return r.run("DELETE FROM vector_index_entries"),r.run("DELETE FROM chunk_embeddings"),{embeddings:n,vectorEntries:i}}finally{r.close()}}function hL(e,r,n){let i=pr(r.modelRef,r.config),t=le(i),u=A(e);try{return u.run(`UPDATE reindex_queue SET status = ?, updated_at = ? WHERE kind = ? AND status = ? @@ -883,13 +883,13 @@ ${JSON.stringify(e.evidence,null,2)}`].join(` WHERE v.chunk_id = reindex_queue.target_id AND v.provider = ? AND v.model = ? - )`,["completed",t,"embedding","pending",n.provider,n.model]).changes}finally{_.close()}}async function hS(e){x(e.dbPath);let r=(e.now??new Date).toISOString(),t=`run_${mS()}`,i=e.full?mA(e.dbPath):{embeddings:0,vectorEntries:0},n=l$({...e,reason:e.full?"full_embedding_rebuild":"missing_embedding"}),_=A(e.dbPath);try{_.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[t,"embedding-refresh",e.full?"full":"incremental","running","local",pr(e.modelRef,e.config),JSON.stringify({full:e.full===!0,queued:n}),r,r])}finally{_.close()}let u=await P_({dbPath:e.dbPath,config:e.config,env:e.env,modelRef:e.modelRef,dimensions:e.dimensions,fake:e.fake,limit:e.limit,now:e.now}),c=DA(e.dbPath,e,r),d=A(e.dbPath);try{d.run("UPDATE runs SET status = ?, metadata_json = ?, updated_at = ? WHERE id = ?",["completed",JSON.stringify({full:e.full===!0,queued:n,indexed:u,completed_queue_items:c}),r,t]),d.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?)`,[`evt_${mS()}`,t,"info","embedding_refresh_completed",JSON.stringify({queued:n,indexed:u,completed_queue_items:c}),r])}finally{d.close()}return{run_id:t,full:e.full===!0,deleted_embeddings:i.embeddings,deleted_vector_entries:i.vectorEntries,queued:n,indexed:u,completed_queue_items:c}}import{createHash as XS}from"crypto";import{existsSync as yS,lstatSync as RA,readdirSync as hA,readFileSync as wA,statSync as AA}from"fs";import{basename as Dn,extname as XA,join as yA,relative as xA,resolve as f$,sep as jA}from"path";import{pathToFileURL as wS}from"url";var PA=100,FA=25,KA=262144,WA=5,JA=new Set([".md",".mdx",".txt",".json",".jsonc",".toml",".yaml",".yml"]),E$=new Set(["CODEWITH.md","AGENTS.md","CLAUDE.md","RULES.md","INSTRUCTIONS.md"]),zA=new Set([".git","node_modules","dist","build",".codewith-worktrees",".connect",".secrets",".tmp","tmp","auth_profiles","profiles","preserved","backup","backups","cache","logs","runs"]),MA=/(^|[._-])(secret|secrets|token|tokens|credential|credentials|password|passwd|private[_-]?key|id_rsa)([._-]|$)/i,Ad=/(agent|rule|rules|instruction|instructions|global|operating|standard|knowledge)/i;function a$(e){return`sha256:${XS("sha256").update(e).digest("hex")}`}function CA(e){return`sha256:${XS("sha256").update(e).digest("hex")}`}function d_(e){return e.split(jA).join("/")}function T$(e,r){let t=xA(e,r);return t?d_(t):Dn(r)}function Gr(e){return JA.has(XA(e).toLowerCase())}function AS(e){return d_(e).split("/").some((r)=>MA.test(r))}function xS(e,r=220){let t=e.normalize("NFKC").trim().replace(/\s+/g," ");if(t.length<=r)return t;return`${t.slice(0,Math.max(0,r-1)).trim()}...`}function jS(e){if(!e)return 0;return e.split(/\r\n|\n|\r/).length}function PS(e){return{source_ref:e.sourceRef,source_path:e.sourcePath,line_start:e.lineCount>0?1:0,line_end:e.lineCount,content_hash:e.contentHash}}function qA(){return[{base:".",maxDepth:0,spec:{family:"rule_doc",owner:"repository",scope:"global",precedence:{rank:10,label:"root-rule-doc"},tags:["global-rules","rule-doc"],include:(e)=>E$.has(e)}},{base:".codewith",spec:{family:"codewith",owner:"codewith",scope:"global",precedence:{rank:20,label:"codewith"},tags:["global-rules","codewith","agent-instructions"],include:(e)=>{let r=d_(e),t=Dn(r);if(E$.has(t)||r==="config.toml")return!0;if(r.endsWith("/SKILL.md"))return!0;if(/^(rules|instructions|prompts|plans)\//.test(r)&&Gr(r))return!0;return!1}}},{base:".claude",spec:{family:"claude",owner:"claude",scope:"global",precedence:{rank:30,label:"claude-rules"},tags:["global-rules","claude","agent-instructions"],include:(e)=>{let r=d_(e);return r==="CLAUDE.md"||/^rules\//.test(r)&&Gr(r)}}},{base:".codex",spec:{family:"codex",owner:"codex",scope:"global",precedence:{rank:40,label:"codex"},tags:["global-rules","codex","agent-instructions"],include:(e)=>{let r=d_(e),t=Dn(r);if(E$.has(t)||t==="config.toml")return!0;return/^(rules|instructions|prompts)\//.test(r)&&Gr(r)}}},{base:".opencode",spec:{family:"opencode",owner:"opencode",scope:"global",precedence:{rank:50,label:"opencode"},tags:["global-rules","opencode","agent-instructions"],include:(e)=>Ad.test(e)&&Gr(e)}},{base:".",maxDepth:0,spec:{family:"opencode",owner:"opencode",scope:"global",precedence:{rank:50,label:"opencode-config"},tags:["global-rules","opencode","config"],include:(e)=>["opencode.json","opencode.jsonc","opencode.toml","opencode.yaml","opencode.yml"].includes(e)}},{base:".hasna/prompts",spec:{family:"prompt",owner:"hasna",scope:"global",precedence:{rank:60,label:"selected-prompts"},tags:["global-rules","prompt"],include:(e)=>Ad.test(e)&&Gr(e)}},{base:".hasna/plans",spec:{family:"plan",owner:"hasna",scope:"global",precedence:{rank:65,label:"selected-plans"},tags:["global-rules","plan"],include:(e)=>Ad.test(e)&&Gr(e)}},{base:"docs",spec:{family:"rule_doc",owner:"repository",scope:"global",precedence:{rank:70,label:"rule-docs"},tags:["global-rules","rule-doc"],include:(e)=>Ad.test(e)&&Gr(e)}}]}function GA(e,r){let t=new Map;for(let i of qA()){let n=f$(e,i.base);if(!yS(n))continue;if(AA(n).isFile()){let u=Dn(n);if(i.spec.include(u))t.set(n,{...i.spec,absPath:n});continue}FS({basePath:n,depth:0,maxDepth:i.maxDepth??WA,spec:i.spec,candidates:t,skipped:r})}return[...t.values()].sort((i,n)=>{if(i.precedence.rank!==n.precedence.rank)return i.precedence.rank-n.precedence.rank;return i.absPath.localeCompare(n.absPath)})}function FS(e){let r=e.rootBasePath??e.basePath;if(e.depth>e.maxDepth)return;for(let t of hA(e.basePath,{withFileTypes:!0})){let i=yA(e.basePath,t.name),n=T$(r,i);if(t.isSymbolicLink())continue;if(t.isDirectory()){if(zA.has(t.name))continue;if(AS(n)){e.skipped.push({source_family:e.spec.family,source_path:i,reason:"sensitive_path"});continue}FS({...e,rootBasePath:r,basePath:i,depth:e.depth+1});continue}if(!t.isFile())continue;let _=T$(f$(r),i);if(AS(_)){e.skipped.push({source_family:e.spec.family,source_path:i,reason:"sensitive_path"});continue}if(!e.spec.include(_))continue;if(!Gr(i))continue;e.candidates.set(i,{...e.spec,absPath:i})}}function YA(e){if((e.tags??[]).map((i)=>i.toLowerCase()).some((i)=>["rule","rules","agent","instructions","global-rules","global-agent-rules"].includes(i)))return!0;let t=`${e.title} -${e.content.slice(0,500)}`.toLowerCase();return/\b(agent|rule|rules|instruction|instructions|codewith|claude|codex|opencode)\b/.test(t)}function KS(e,r){let t={source_path:e.source_path,source_path_ref:e.source_path_ref,source_ref:e.source_ref,owner:e.owner,scope:e.scope,precedence:e.precedence,source_hash:e.source_hash,content_hash:e.content_hash,discovered_at:e.discovered_at,tags:e.tags,redaction_status:e.redaction_status,citations:e.citations};return{source_ref:e.source_ref,name:e.title,mime:"text/markdown",size:Buffer.byteLength(r),hash:e.content_hash,revision:e.content_hash,status:"active",updated_at:e.discovered_at,permissions:{mode:"read_only",allowed_purposes:["knowledge_index","knowledge_answer","agent_context"]},rule_provenance:t,source_family:e.source_family,source_path_ref:e.source_path_ref,owner:e.owner,scope:e.scope,precedence:e.precedence,tags:e.tags,redaction_status:e.redaction_status,legacy_json_id:e.legacy_json_id??null,extracted_text:r}}function BA(e){let r=RA(e.candidate.absPath),t=e.candidate.absPath,i=T$(e.root,t);if(r.size>e.maxBytesPerFile){let l=wS(t).href;return{evidence:{source_family:e.candidate.family,title:Dn(t),source_path:t,source_path_ref:i,source_ref:l,owner:e.candidate.owner,scope:e.candidate.scope,precedence:e.candidate.precedence,source_hash:"sha256:skipped-too-large",content_hash:"sha256:skipped-too-large",discovered_at:e.discoveredAt,tags:[...e.candidate.tags,"skipped"],redaction_status:"refused",redactions:[],citations:[],bytes:r.size,line_count:0,importable:!1,skipped_reason:"max_bytes_exceeded",preview:null},text:"",manifest:null}}let n=wA(t),_=n.toString("utf8"),u=ye(_,e.safetyPolicy),d=u.findings.some((l)=>l.severity==="high")?"refused":u.findings.length>0?"redacted":"clean",o=a$(u.text),a=wS(t).href,g=jS(u.text),E={source_family:e.candidate.family,title:Dn(t),source_path:t,source_path_ref:i,source_ref:a,owner:e.candidate.owner,scope:e.candidate.scope,precedence:e.candidate.precedence,source_hash:CA(n),content_hash:o,discovered_at:e.discoveredAt,tags:[...e.candidate.tags],redaction_status:d,redactions:u.findings.map((l)=>({type:l.type,severity:l.severity})),citations:[PS({sourceRef:a,sourcePath:t,lineCount:g,contentHash:o})],bytes:n.byteLength,line_count:g,importable:d!=="refused",skipped_reason:d==="refused"?"secret_refused":null,preview:d==="refused"?null:xS(u.text)};return{evidence:E,text:u.text,manifest:E.importable?KS(E,u.text):null}}function HA(e){let r=ye(e.item.content,e.safetyPolicy),i=r.findings.some((o)=>o.severity==="high")?"refused":r.findings.length>0?"redacted":"clean",n=`open-files://source/legacy-json/path/${encodeURIComponent(e.item.id)}`,_=a$(r.text),u=a$(e.item.content),c=jS(r.text),d={source_family:"legacy_json",title:e.item.title,source_path:e.legacyStorePath,source_path_ref:`legacy-json:${e.item.id}`,source_ref:n,owner:"legacy-json",scope:e.scope,precedence:{rank:90,label:"legacy-json-note"},source_hash:u,content_hash:_,discovered_at:e.discoveredAt,tags:[...new Set(["global-rules","legacy-json",...e.item.tags??[]])],redaction_status:i,redactions:r.findings.map((o)=>({type:o.type,severity:o.severity})),citations:[PS({sourceRef:n,sourcePath:e.legacyStorePath,lineCount:c,contentHash:_})],bytes:Buffer.byteLength(e.item.content),line_count:c,importable:i!=="refused",skipped_reason:i==="refused"?"secret_refused":null,preview:i==="refused"?null:xS(r.text),legacy_json_id:e.item.id};return{evidence:d,text:r.text,manifest:d.importable?KS(d,r.text):null}}function VA(e){if(!e.legacyStorePath||!yS(e.legacyStorePath))return 0;let r=new Map(e.records.filter((t)=>t.legacy_json_id&&t.importable).map((t)=>[t.legacy_json_id,t]));if(r.size===0)return 0;return Je(e.legacyStorePath,()=>{let t=br(e.legacyStorePath);if(!t.exists)return 0;let i=0;for(let n of t.items){let _=r.get(n.id);if(!_)continue;let u=n.metadata??{};n.archived=!0,n.metadata={...u,knowledge_rules_import:{status:"deprecated_after_source_backed_promotion",deprecated_at:e.now,source_ref:_.source_ref,source_hash:_.source_hash,content_hash:_.content_hash,data_loss:!1}},n.tags=[...new Set([...n.tags??[],"deprecated:knowledge-rules-import"])],n.updated_at=e.now,i+=1}if(i>0)Ae(e.legacyStorePath,{items:t.items});return i})}async function WS(e={}){let r=f$(e.root??process.cwd()),t=e.scope??"global",i=e.owner??"global-agent-rules-standard",n=e.dryRun!==!1,_=(e.now??new Date).toISOString(),u=Math.max(1,Math.min(e.maxItems??PA,1000)),c=Math.max(1,Math.min(e.limit??FA,100)),d=Math.max(1024,Math.min(e.maxBytesPerFile??KA,2097152)),o=[],g=GA(r,o).slice(0,u).map((K)=>BA({root:r,candidate:{...K,owner:K.owner==="repository"?i:K.owner,scope:t},discoveredAt:_,maxBytesPerFile:d,safetyPolicy:e.safetyPolicy})),l=(e.includeLegacy===!1||!e.legacyStorePath?{exists:!1,items:[]}:br(e.legacyStorePath)).items.filter((K)=>K.archived!==!0&&YA(K)).slice(0,u),T=l.map((K)=>HA({item:K,legacyStorePath:e.legacyStorePath,discoveredAt:_,scope:t,safetyPolicy:e.safetyPolicy})),f=[...g,...T].slice(0,u),v=f.map((K)=>K.evidence),k=f.filter((K)=>K.manifest).map((K)=>K.manifest),R=v.filter((K)=>K.redaction_status==="refused").length,S=v.slice(0,c),U=o.slice(0,c),X=null,j=0;if(!n){if(!e.dbPath)throw Error("rules provenance apply mode requires dbPath.");if(k.length>0)X=await Qr({dbPath:e.dbPath,items:k,sourceLabel:"knowledge://rules-provenance/global-agent-rules",readAction:"rules_provenance_import",safetyPolicy:e.safetyPolicy,now:e.now,maxItems:u});if(e.deprecateLegacy!==!1)j=VA({legacyStorePath:e.legacyStorePath,records:v,now:_})}return{ok:R===0||k.length>0||n,workflow:"global-rules-provenance-import",dry_run:n,writes_performed:!n,root:r,scope:t,owner:i,discovered_at:_,max_items:u,evidence_limit:c,records_seen:v.length,records_importable:k.length,records_refused:R,records_skipped:o.length,evidence_truncated:v.length>S.length,skipped_truncated:o.length>U.length,evidence:S,skipped:U,import_result:X,legacy:{store_path:e.legacyStorePath??null,candidates:l.length,promoted:T.filter((K)=>K.manifest).length,deprecated:j,data_loss:!1},message:n?`Discovered ${v.length} rule source(s); ${k.length} importable, ${R} refused`:`Imported ${X?.items_seen??0} rule source(s); ${j} legacy note(s) deprecated`}}import{createHash as QA,randomUUID as JS}from"crypto";function ZA(e){return`sha256:${QA("sha256").update(e).digest("hex")}`}function zS(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function MS(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function Yr(e){return typeof e==="string"&&e.length>0?e:null}function sA(e){let r=MS(e),t=Yr(r.url)??Yr(r.uri)??Yr(r.sourceUrl);if(!t)return null;return{url:t,title:Yr(r.title)??Yr(r.name),snippet:Yr(r.snippet)??Yr(r.text)??Yr(r.description),provider_metadata:r}}function Xd(e,r){if(Array.isArray(e)){for(let n of e)Xd(n,r);return}let t=sA(e);if(t)r.set(t.url,t);let i=MS(e);for(let n of["sources","results","citations","annotations","output"])if(i[n])Xd(i[n],r)}function pA(e,r){return Array.from({length:Math.min(r,3)},(t,i)=>({url:`https://example.com/knowledge-web-${i+1}`,title:`Fake web source ${i+1}`,snippet:`Deterministic web-search fixture for "${e}"`,provider_metadata:{fake:!0,rank:i+1}}))}async function e0(e){let{generateText:r}=await import("ai"),{createOpenAI:t}=await import("@ai-sdk/openai"),i=ar(e.config,"openai"),n=t({apiKey:e.env[i.api_key_env],baseURL:i.base_url}),_=n.tools?.webSearch;if(!_)throw Error("OpenAI provider does not expose tools.webSearch.");return r({model:n(e.model),prompt:e.query,tools:{web_search:_({externalWebAccess:!0,searchContextSize:"medium",...e.domains.length>0?{allowedDomains:e.domains}:{}})},toolChoice:{type:"tool",toolName:"web_search"}})}async function r0(e){let{generateText:r}=await import("ai"),{createAnthropic:t}=await import("@ai-sdk/anthropic"),i=ar(e.config,"anthropic"),n=t({apiKey:e.env[i.api_key_env],baseURL:i.base_url}),_=n.tools?.webSearch_20250305??n.tools?.webSearch;if(!_)throw Error("Anthropic provider does not expose a web search tool.");return r({model:n(e.model),prompt:e.query,tools:{web_search:_({maxUses:e.maxUses,...e.domains.length>0?{allowedDomains:e.domains}:{}})}})}async function t0(e,r,t){if(!e.fileResults||r.length===0)return 0;let i=r.map((_)=>{let u=[_.title,_.snippet,_.url].filter(Boolean).join(` -`),c=ZA(u);return{source_ref:_.url,name:_.title??_.url,url:_.url,mime:"text/plain",hash:c,revision:c,status:"active",updated_at:t,permissions:{mode:"read_only",allowed_purposes:["knowledge_answer","knowledge_index"]},metadata:{source_ref:_.url,content_source:"provider_web_search",provider_metadata:_.provider_metadata},extracted_text:u}});return(await Qr({dbPath:e.dbPath,items:i,sourceLabel:`web-search:${e.query}`,readAction:"provider_web_search_file_results",safetyPolicy:e.safetyPolicy,now:new Date(t)})).sources_upserted}async function CS(e){let r=e.query.trim();if(!r)throw Error("Web search query is required.");let t=e.env??process.env,i=(e.now??new Date).toISOString(),n=Math.max(1,Math.min(e.limit??5,20)),_=Math.max(1,Math.min(e.maxUses??3,10)),u=e.domains??[],c=se(e.modelRef??(e.provider?`${e.provider}:${ar(e.config,e.provider).default_model}`:"default"),e.config),d=le(c),o=e.provider??d.provider,a=d.provider===o?d.model:ar(e.config,o).default_model,g=`run_${JS()}`;if(!e.fake&&e.safetyPolicy)zt(e.safetyPolicy);if(!e.fake&&o!=="openai"&&o!=="anthropic")throw Error(`Provider ${o} does not expose native web search yet.`);if(!e.fake)sr(o,e.config,t);x(e.dbPath);let E=A(e.dbPath);try{E.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[g,"provider-web-search",r,"running",o,a,JSON.stringify({domains:u,max_uses:_,fake:e.fake===!0}),i,i]),re(E,{event_type:"source_read",action:e.fake?"fake_provider_web_search":"provider_web_search",target_uri:r,decision:"allow",metadata:{provider:o,model:a,domains:u,max_uses:_},created_at:i})}finally{E.close()}let l="",T=[],f={input_tokens:zS(r),output_tokens:0,cost_usd:0},v=[];if(e.fake)T=pA(r,n),l=`Fake web search answer for: ${r}`,f.output_tokens=zS(l);else{let R=o==="openai"?await e0({query:r,model:a,config:e.config,env:t,maxUses:_,domains:u}):await r0({query:r,model:a,config:e.config,env:t,maxUses:_,domains:u});l=R.text;let S=new Map;Xd(R.sources,S),Xd(R.toolResults,S),T=Array.from(S.values()).slice(0,n);let U=Ct({provider:o,model:a,usage:R.usage,providerMetadata:R.providerMetadata});f={input_tokens:U.input_tokens,output_tokens:U.output_tokens,cost_usd:U.cost_usd}}let N=await t0(e,T,i),k=A(e.dbPath);try{k.run("UPDATE runs SET status = ?, metadata_json = ?, updated_at = ? WHERE id = ?",["completed",JSON.stringify({domains:u,max_uses:_,sources:T.length,filed_sources:N,fake:e.fake===!0}),i,g]),k.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?)`,[`evt_${JS()}`,g,"info","provider_web_search_completed",JSON.stringify({sources:T.length,filed_sources:N}),i]),qt(k,{run_id:g,provider:o,model:a,input_tokens:f.input_tokens,output_tokens:f.output_tokens,cost_usd:f.cost_usd,metadata:{web_search:!0,sources:T.length,filed_sources:N},created_at:i})}finally{k.close()}if(T.length===0)v.push("no_web_sources_returned");return{run_id:g,query:r,provider:o,model:a,answer:l,sources:T,filed_sources:N,usage:f,warnings:v}}import{createHash as n0,randomUUID as i0}from"crypto";function Rn(e,r){return`${e}_${n0("sha256").update(r).digest("hex").slice(0,20)}`}function $$(e){return e.normalize("NFKC").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"knowledge-page"}function _0(e){return{year:String(e.getUTCFullYear()),month:String(e.getUTCMonth()+1).padStart(2,"0"),day:String(e.getUTCDate()).padStart(2,"0")}}function u0(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function qS(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function c0(e){return Array.from(new Set((e??"").toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[])).slice(0,12)}function GS(e){return e.replace(/[\\%_]/g,(r)=>`\\${r}`)}function d0(e,r){let t=Math.max(1,Math.min(r.limit??10,50)),i=r.sourceRefs??[],n=c0(r.query),_=["c.kind = 'source'"],u=[];if(i.length>0){_.push(`(${i.map(()=>"(s.uri = ? OR c.metadata_json LIKE ?)").join(" OR ")})`);for(let c of i)u.push(c,`%${GS(c)}%`)}if(n.length>0){_.push(`(${n.map(()=>"lower(c.text) LIKE ? ESCAPE '\\'").join(" OR ")})`);for(let c of n)u.push(`%${GS(c)}%`)}return u.push(t),e.query(`SELECT + )`,["completed",n,"embedding","pending",t.provider,t.model]).changes}finally{u.close()}}async function Rb(e){P(e.dbPath);let r=(e.now??new Date).toISOString(),n=`run_${Ub()}`,i=e.full?UL(e.dbPath):{embeddings:0,vectorEntries:0},t=lE({...e,reason:e.full?"full_embedding_rebuild":"missing_embedding"}),u=A(e.dbPath);try{u.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[n,"embedding-refresh",e.full?"full":"incremental","running","local",pr(e.modelRef,e.config),JSON.stringify({full:e.full===!0,queued:t}),r,r])}finally{u.close()}let _=await Xu({dbPath:e.dbPath,config:e.config,env:e.env,modelRef:e.modelRef,dimensions:e.dimensions,fake:e.fake,limit:e.limit,now:e.now}),c=hL(e.dbPath,e,r),d=A(e.dbPath);try{d.run("UPDATE runs SET status = ?, metadata_json = ?, updated_at = ? WHERE id = ?",["completed",JSON.stringify({full:e.full===!0,queued:t,indexed:_,completed_queue_items:c}),r,n]),d.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?)`,[`evt_${Ub()}`,n,"info","embedding_refresh_completed",JSON.stringify({queued:t,indexed:_,completed_queue_items:c}),r])}finally{d.close()}return{run_id:n,full:e.full===!0,deleted_embeddings:i.embeddings,deleted_vector_entries:i.vectorEntries,queued:t,indexed:_,completed_queue_items:c}}import{createHash as yb}from"crypto";import{existsSync as jb,lstatSync as OL,readdirSync as RL,readFileSync as LL,statSync as AL}from"fs";import{basename as ht,extname as yL,join as jL,relative as PL,resolve as vE,sep as xL}from"path";import{pathToFileURL as Lb}from"url";var XL=100,KL=25,FL=262144,JL=5,zL=new Set([".md",".mdx",".txt",".json",".jsonc",".toml",".yaml",".yml"]),aE=new Set(["CODEWITH.md","AGENTS.md","CLAUDE.md","RULES.md","INSTRUCTIONS.md"]),WL=new Set([".git","node_modules","dist","build",".codewith-worktrees",".connect",".secrets",".tmp","tmp","auth_profiles","profiles","preserved","backup","backups","cache","logs","runs"]),ML=/(^|[._-])(secret|secrets|token|tokens|credential|credentials|password|passwd|private[_-]?key|id_rsa)([._-]|$)/i,Ad=/(agent|rule|rules|instruction|instructions|global|operating|standard|knowledge)/i;function fE(e){return`sha256:${yb("sha256").update(e).digest("hex")}`}function qL(e){return`sha256:${yb("sha256").update(e).digest("hex")}`}function du(e){return e.split(xL).join("/")}function $E(e,r){let n=PL(e,r);return n?du(n):ht(r)}function Hr(e){return zL.has(yL(e).toLowerCase())}function Ab(e){return du(e).split("/").some((r)=>ML.test(r))}function Pb(e,r=220){let n=e.normalize("NFKC").trim().replace(/\s+/g," ");if(n.length<=r)return n;return`${n.slice(0,Math.max(0,r-1)).trim()}...`}function xb(e){if(!e)return 0;return e.split(/\r\n|\n|\r/).length}function Xb(e){return{source_ref:e.sourceRef,source_path:e.sourcePath,line_start:e.lineCount>0?1:0,line_end:e.lineCount,content_hash:e.contentHash}}function GL(){return[{base:".",maxDepth:0,spec:{family:"rule_doc",owner:"repository",scope:"global",precedence:{rank:10,label:"root-rule-doc"},tags:["global-rules","rule-doc"],include:(e)=>aE.has(e)}},{base:".codewith",spec:{family:"codewith",owner:"codewith",scope:"global",precedence:{rank:20,label:"codewith"},tags:["global-rules","codewith","agent-instructions"],include:(e)=>{let r=du(e),n=ht(r);if(aE.has(n)||r==="config.toml")return!0;if(r.endsWith("/SKILL.md"))return!0;if(/^(rules|instructions|prompts|plans)\//.test(r)&&Hr(r))return!0;return!1}}},{base:".claude",spec:{family:"claude",owner:"claude",scope:"global",precedence:{rank:30,label:"claude-rules"},tags:["global-rules","claude","agent-instructions"],include:(e)=>{let r=du(e);return r==="CLAUDE.md"||/^rules\//.test(r)&&Hr(r)}}},{base:".codex",spec:{family:"codex",owner:"codex",scope:"global",precedence:{rank:40,label:"codex"},tags:["global-rules","codex","agent-instructions"],include:(e)=>{let r=du(e),n=ht(r);if(aE.has(n)||n==="config.toml")return!0;return/^(rules|instructions|prompts)\//.test(r)&&Hr(r)}}},{base:".opencode",spec:{family:"opencode",owner:"opencode",scope:"global",precedence:{rank:50,label:"opencode"},tags:["global-rules","opencode","agent-instructions"],include:(e)=>Ad.test(e)&&Hr(e)}},{base:".",maxDepth:0,spec:{family:"opencode",owner:"opencode",scope:"global",precedence:{rank:50,label:"opencode-config"},tags:["global-rules","opencode","config"],include:(e)=>["opencode.json","opencode.jsonc","opencode.toml","opencode.yaml","opencode.yml"].includes(e)}},{base:".hasna/prompts",spec:{family:"prompt",owner:"hasna",scope:"global",precedence:{rank:60,label:"selected-prompts"},tags:["global-rules","prompt"],include:(e)=>Ad.test(e)&&Hr(e)}},{base:".hasna/plans",spec:{family:"plan",owner:"hasna",scope:"global",precedence:{rank:65,label:"selected-plans"},tags:["global-rules","plan"],include:(e)=>Ad.test(e)&&Hr(e)}},{base:"docs",spec:{family:"rule_doc",owner:"repository",scope:"global",precedence:{rank:70,label:"rule-docs"},tags:["global-rules","rule-doc"],include:(e)=>Ad.test(e)&&Hr(e)}}]}function HL(e,r){let n=new Map;for(let i of GL()){let t=vE(e,i.base);if(!jb(t))continue;if(AL(t).isFile()){let _=ht(t);if(i.spec.include(_))n.set(t,{...i.spec,absPath:t});continue}Kb({basePath:t,depth:0,maxDepth:i.maxDepth??JL,spec:i.spec,candidates:n,skipped:r})}return[...n.values()].sort((i,t)=>{if(i.precedence.rank!==t.precedence.rank)return i.precedence.rank-t.precedence.rank;return i.absPath.localeCompare(t.absPath)})}function Kb(e){let r=e.rootBasePath??e.basePath;if(e.depth>e.maxDepth)return;for(let n of RL(e.basePath,{withFileTypes:!0})){let i=jL(e.basePath,n.name),t=$E(r,i);if(n.isSymbolicLink())continue;if(n.isDirectory()){if(WL.has(n.name))continue;if(Ab(t)){e.skipped.push({source_family:e.spec.family,source_path:i,reason:"sensitive_path"});continue}Kb({...e,rootBasePath:r,basePath:i,depth:e.depth+1});continue}if(!n.isFile())continue;let u=$E(vE(r),i);if(Ab(u)){e.skipped.push({source_family:e.spec.family,source_path:i,reason:"sensitive_path"});continue}if(!e.spec.include(u))continue;if(!Hr(i))continue;e.candidates.set(i,{...e.spec,absPath:i})}}function BL(e){if((e.tags??[]).map((i)=>i.toLowerCase()).some((i)=>["rule","rules","agent","instructions","global-rules","global-agent-rules"].includes(i)))return!0;let n=`${e.title} +${e.content.slice(0,500)}`.toLowerCase();return/\b(agent|rule|rules|instruction|instructions|codewith|claude|codex|opencode)\b/.test(n)}function Fb(e,r){let n={source_path:e.source_path,source_path_ref:e.source_path_ref,source_ref:e.source_ref,owner:e.owner,scope:e.scope,precedence:e.precedence,source_hash:e.source_hash,content_hash:e.content_hash,discovered_at:e.discovered_at,tags:e.tags,redaction_status:e.redaction_status,citations:e.citations};return{source_ref:e.source_ref,name:e.title,mime:"text/markdown",size:Buffer.byteLength(r),hash:e.content_hash,revision:e.content_hash,status:"active",updated_at:e.discovered_at,permissions:{mode:"read_only",allowed_purposes:["knowledge_index","knowledge_answer","agent_context"]},rule_provenance:n,source_family:e.source_family,source_path_ref:e.source_path_ref,owner:e.owner,scope:e.scope,precedence:e.precedence,tags:e.tags,redaction_status:e.redaction_status,legacy_json_id:e.legacy_json_id??null,extracted_text:r}}function CL(e){let r=OL(e.candidate.absPath),n=e.candidate.absPath,i=$E(e.root,n);if(r.size>e.maxBytesPerFile){let l=Lb(n).href;return{evidence:{source_family:e.candidate.family,title:ht(n),source_path:n,source_path_ref:i,source_ref:l,owner:e.candidate.owner,scope:e.candidate.scope,precedence:e.candidate.precedence,source_hash:"sha256:skipped-too-large",content_hash:"sha256:skipped-too-large",discovered_at:e.discoveredAt,tags:[...e.candidate.tags,"skipped"],redaction_status:"refused",redactions:[],citations:[],bytes:r.size,line_count:0,importable:!1,skipped_reason:"max_bytes_exceeded",preview:null},text:"",manifest:null}}let t=LL(n),u=t.toString("utf8"),_=je(u,e.safetyPolicy),d=_.findings.some((l)=>l.severity==="high")?"refused":_.findings.length>0?"redacted":"clean",g=fE(_.text),f=Lb(n).href,o=xb(_.text),a={source_family:e.candidate.family,title:ht(n),source_path:n,source_path_ref:i,source_ref:f,owner:e.candidate.owner,scope:e.candidate.scope,precedence:e.candidate.precedence,source_hash:qL(t),content_hash:g,discovered_at:e.discoveredAt,tags:[...e.candidate.tags],redaction_status:d,redactions:_.findings.map((l)=>({type:l.type,severity:l.severity})),citations:[Xb({sourceRef:f,sourcePath:n,lineCount:o,contentHash:g})],bytes:t.byteLength,line_count:o,importable:d!=="refused",skipped_reason:d==="refused"?"secret_refused":null,preview:d==="refused"?null:Pb(_.text)};return{evidence:a,text:_.text,manifest:a.importable?Fb(a,_.text):null}}function YL(e){let r=je(e.item.content,e.safetyPolicy),i=r.findings.some((g)=>g.severity==="high")?"refused":r.findings.length>0?"redacted":"clean",t=`open-files://source/legacy-json/path/${encodeURIComponent(e.item.id)}`,u=fE(r.text),_=fE(e.item.content),c=xb(r.text),d={source_family:"legacy_json",title:e.item.title,source_path:e.legacyStorePath,source_path_ref:`legacy-json:${e.item.id}`,source_ref:t,owner:"legacy-json",scope:e.scope,precedence:{rank:90,label:"legacy-json-note"},source_hash:_,content_hash:u,discovered_at:e.discoveredAt,tags:[...new Set(["global-rules","legacy-json",...e.item.tags??[]])],redaction_status:i,redactions:r.findings.map((g)=>({type:g.type,severity:g.severity})),citations:[Xb({sourceRef:t,sourcePath:e.legacyStorePath,lineCount:c,contentHash:u})],bytes:Buffer.byteLength(e.item.content),line_count:c,importable:i!=="refused",skipped_reason:i==="refused"?"secret_refused":null,preview:i==="refused"?null:Pb(r.text),legacy_json_id:e.item.id};return{evidence:d,text:r.text,manifest:d.importable?Fb(d,r.text):null}}function VL(e){if(!e.legacyStorePath||!jb(e.legacyStorePath))return 0;let r=new Map(e.records.filter((n)=>n.legacy_json_id&&n.importable).map((n)=>[n.legacy_json_id,n]));if(r.size===0)return 0;return ze(e.legacyStorePath,()=>{let n=wr(e.legacyStorePath);if(!n.exists)return 0;let i=0;for(let t of n.items){let u=r.get(t.id);if(!u)continue;let _=t.metadata??{};t.archived=!0,t.metadata={..._,knowledge_rules_import:{status:"deprecated_after_source_backed_promotion",deprecated_at:e.now,source_ref:u.source_ref,source_hash:u.source_hash,content_hash:u.content_hash,data_loss:!1}},t.tags=[...new Set([...t.tags??[],"deprecated:knowledge-rules-import"])],t.updated_at=e.now,i+=1}if(i>0)Ae(e.legacyStorePath,{items:n.items});return i})}async function Jb(e={}){let r=vE(e.root??process.cwd()),n=e.scope??"global",i=e.owner??"global-agent-rules-standard",t=e.dryRun!==!1,u=(e.now??new Date).toISOString(),_=Math.max(1,Math.min(e.maxItems??XL,1000)),c=Math.max(1,Math.min(e.limit??KL,100)),d=Math.max(1024,Math.min(e.maxBytesPerFile??FL,2097152)),g=[],o=HL(r,g).slice(0,_).map((F)=>CL({root:r,candidate:{...F,owner:F.owner==="repository"?i:F.owner,scope:n},discoveredAt:u,maxBytesPerFile:d,safetyPolicy:e.safetyPolicy})),l=(e.includeLegacy===!1||!e.legacyStorePath?{exists:!1,items:[]}:wr(e.legacyStorePath)).items.filter((F)=>F.archived!==!0&&BL(F)).slice(0,_),$=l.map((F)=>YL({item:F,legacyStorePath:e.legacyStorePath,discoveredAt:u,scope:n,safetyPolicy:e.safetyPolicy})),v=[...o,...$].slice(0,_),k=v.map((F)=>F.evidence),S=v.filter((F)=>F.manifest).map((F)=>F.manifest),O=k.filter((F)=>F.redaction_status==="refused").length,b=k.slice(0,c),D=g.slice(0,c),y=null,x=0;if(!t){if(!e.dbPath)throw Error("rules provenance apply mode requires dbPath.");if(S.length>0)y=await Qr({dbPath:e.dbPath,items:S,sourceLabel:"knowledge://rules-provenance/global-agent-rules",readAction:"rules_provenance_import",safetyPolicy:e.safetyPolicy,now:e.now,maxItems:_});if(e.deprecateLegacy!==!1)x=VL({legacyStorePath:e.legacyStorePath,records:k,now:u})}return{ok:O===0||S.length>0||t,workflow:"global-rules-provenance-import",dry_run:t,writes_performed:!t,root:r,scope:n,owner:i,discovered_at:u,max_items:_,evidence_limit:c,records_seen:k.length,records_importable:S.length,records_refused:O,records_skipped:g.length,evidence_truncated:k.length>b.length,skipped_truncated:g.length>D.length,evidence:b,skipped:D,import_result:y,legacy:{store_path:e.legacyStorePath??null,candidates:l.length,promoted:$.filter((F)=>F.manifest).length,deprecated:x,data_loss:!1},message:t?`Discovered ${k.length} rule source(s); ${S.length} importable, ${O} refused`:`Imported ${y?.items_seen??0} rule source(s); ${x} legacy note(s) deprecated`}}import{createHash as QL,randomUUID as zb}from"crypto";function ZL(e){return`sha256:${QL("sha256").update(e).digest("hex")}`}function Wb(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function Mb(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function Br(e){return typeof e==="string"&&e.length>0?e:null}function sL(e){let r=Mb(e),n=Br(r.url)??Br(r.uri)??Br(r.sourceUrl);if(!n)return null;return{url:n,title:Br(r.title)??Br(r.name),snippet:Br(r.snippet)??Br(r.text)??Br(r.description),provider_metadata:r}}function yd(e,r){if(Array.isArray(e)){for(let t of e)yd(t,r);return}let n=sL(e);if(n)r.set(n.url,n);let i=Mb(e);for(let t of["sources","results","citations","annotations","output"])if(i[t])yd(i[t],r)}function pL(e,r){return Array.from({length:Math.min(r,3)},(n,i)=>({url:`https://example.com/knowledge-web-${i+1}`,title:`Fake web source ${i+1}`,snippet:`Deterministic web-search fixture for "${e}"`,provider_metadata:{fake:!0,rank:i+1}}))}async function eA(e){let{generateText:r}=await import("ai"),{createOpenAI:n}=await import("@ai-sdk/openai"),i=fr(e.config,"openai"),t=n({apiKey:e.env[i.api_key_env],baseURL:i.base_url}),u=t.tools?.webSearch;if(!u)throw Error("OpenAI provider does not expose tools.webSearch.");return r({model:t(e.model),prompt:e.query,tools:{web_search:u({externalWebAccess:!0,searchContextSize:"medium",...e.domains.length>0?{allowedDomains:e.domains}:{}})},toolChoice:{type:"tool",toolName:"web_search"}})}async function rA(e){let{generateText:r}=await import("ai"),{createAnthropic:n}=await import("@ai-sdk/anthropic"),i=fr(e.config,"anthropic"),t=n({apiKey:e.env[i.api_key_env],baseURL:i.base_url}),u=t.tools?.webSearch_20250305??t.tools?.webSearch;if(!u)throw Error("Anthropic provider does not expose a web search tool.");return r({model:t(e.model),prompt:e.query,tools:{web_search:u({maxUses:e.maxUses,...e.domains.length>0?{allowedDomains:e.domains}:{}})}})}async function nA(e,r,n){if(!e.fileResults||r.length===0)return 0;let i=r.map((u)=>{let _=[u.title,u.snippet,u.url].filter(Boolean).join(` +`),c=ZL(_);return{source_ref:u.url,name:u.title??u.url,url:u.url,mime:"text/plain",hash:c,revision:c,status:"active",updated_at:n,permissions:{mode:"read_only",allowed_purposes:["knowledge_answer","knowledge_index"]},metadata:{source_ref:u.url,content_source:"provider_web_search",provider_metadata:u.provider_metadata},extracted_text:_}});return(await Qr({dbPath:e.dbPath,items:i,sourceLabel:`web-search:${e.query}`,readAction:"provider_web_search_file_results",safetyPolicy:e.safetyPolicy,now:new Date(n)})).sources_upserted}async function qb(e){let r=e.query.trim();if(!r)throw Error("Web search query is required.");let n=e.env??process.env,i=(e.now??new Date).toISOString(),t=Math.max(1,Math.min(e.limit??5,20)),u=Math.max(1,Math.min(e.maxUses??3,10)),_=e.domains??[],c=se(e.modelRef??(e.provider?`${e.provider}:${fr(e.config,e.provider).default_model}`:"default"),e.config),d=le(c),g=e.provider??d.provider,f=d.provider===g?d.model:fr(e.config,g).default_model,o=`run_${zb()}`;if(!e.fake&&e.safetyPolicy)Mn(e.safetyPolicy);if(!e.fake&&g!=="openai"&&g!=="anthropic")throw Error(`Provider ${g} does not expose native web search yet.`);if(!e.fake)sr(g,e.config,n);P(e.dbPath);let a=A(e.dbPath);try{a.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[o,"provider-web-search",r,"running",g,f,JSON.stringify({domains:_,max_uses:u,fake:e.fake===!0}),i,i]),re(a,{event_type:"source_read",action:e.fake?"fake_provider_web_search":"provider_web_search",target_uri:r,decision:"allow",metadata:{provider:g,model:f,domains:_,max_uses:u},created_at:i})}finally{a.close()}let l="",$=[],v={input_tokens:Wb(r),output_tokens:0,cost_usd:0},k=[];if(e.fake)$=pL(r,t),l=`Fake web search answer for: ${r}`,v.output_tokens=Wb(l);else{let O=g==="openai"?await eA({query:r,model:f,config:e.config,env:n,maxUses:u,domains:_}):await rA({query:r,model:f,config:e.config,env:n,maxUses:u,domains:_});l=O.text;let b=new Map;yd(O.sources,b),yd(O.toolResults,b),$=Array.from(b.values()).slice(0,t);let D=Gn({provider:g,model:f,usage:O.usage,providerMetadata:O.providerMetadata});v={input_tokens:D.input_tokens,output_tokens:D.output_tokens,cost_usd:D.cost_usd}}let T=await nA(e,$,i),S=A(e.dbPath);try{S.run("UPDATE runs SET status = ?, metadata_json = ?, updated_at = ? WHERE id = ?",["completed",JSON.stringify({domains:_,max_uses:u,sources:$.length,filed_sources:T,fake:e.fake===!0}),i,o]),S.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?)`,[`evt_${zb()}`,o,"info","provider_web_search_completed",JSON.stringify({sources:$.length,filed_sources:T}),i]),Hn(S,{run_id:o,provider:g,model:f,input_tokens:v.input_tokens,output_tokens:v.output_tokens,cost_usd:v.cost_usd,metadata:{web_search:!0,sources:$.length,filed_sources:T},created_at:i})}finally{S.close()}if($.length===0)k.push("no_web_sources_returned");return{run_id:o,query:r,provider:g,model:f,answer:l,sources:$,filed_sources:T,usage:v,warnings:k}}import{createHash as tA,randomUUID as iA}from"crypto";function Ot(e,r){return`${e}_${tA("sha256").update(r).digest("hex").slice(0,20)}`}function EE(e){return e.normalize("NFKC").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"knowledge-page"}function uA(e){return{year:String(e.getUTCFullYear()),month:String(e.getUTCMonth()+1).padStart(2,"0"),day:String(e.getUTCDate()).padStart(2,"0")}}function _A(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function Gb(e){if(!e)return{};try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function cA(e){return Array.from(new Set((e??"").toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[])).slice(0,12)}function Hb(e){return e.replace(/[\\%_]/g,(r)=>`\\${r}`)}function dA(e,r){let n=Math.max(1,Math.min(r.limit??10,50)),i=r.sourceRefs??[],t=cA(r.query),u=["c.kind = 'source'"],_=[];if(i.length>0){u.push(`(${i.map(()=>"(s.uri = ? OR c.metadata_json LIKE ?)").join(" OR ")})`);for(let c of i)_.push(c,`%${Hb(c)}%`)}if(t.length>0){u.push(`(${t.map(()=>"lower(c.text) LIKE ? ESCAPE '\\'").join(" OR ")})`);for(let c of t)_.push(`%${Hb(c)}%`)}return _.push(n),e.query(`SELECT c.id AS chunk_id, c.text, c.start_offset, @@ -903,12 +903,12 @@ ${e.content.slice(0,500)}`.toLowerCase();return/\b(agent|rule|rules|instruction| FROM chunks c JOIN source_revisions sr ON sr.id = c.source_revision_id JOIN sources s ON s.id = sr.source_id - WHERE ${_.join(" AND ")} + WHERE ${u.join(" AND ")} ORDER BY c.created_at ASC, c.ordinal ASC - LIMIT ?`).all(...u)}function YS(e,r=420){let t=e.replace(/\s+/g," ").trim();return t.length<=r?t:`${t.slice(0,r-1).trim()}...`}function o0(e,r){if(e.title?.trim())return e.title.trim();if(e.query?.trim())return e.query.trim();return r[0]?.source_title??"Compiled Knowledge"}function g0(e,r,t){let i=r.map((_,u)=>{return`- [${`S${u+1}`}] ${_.source_title??_.source_uri??"Source"} (${_.source_uri??"unknown"}, revision ${_.revision??"unknown"}, hash ${_.hash??"unknown"})`}),n=r.map((_,u)=>{let c=`S${u+1}`;return[`## ${_.source_title??`Source ${u+1}`}`,"",YS(_.text),"",`Citation: [${c}]`].join(` -`)});return[`# ${e}`,"",`Generated at: ${t}`,"","## Sources","",...i,"",...n,""].join(` -`)}async function yd(e,r){let t=await e.put(r);return{key:t.key,uri:t.uri,kind:r.key.startsWith("logs/")?"log":"wiki_page",content_type:r.content_type,modified_at:t.modified_at,...Jt(r.body),metadata:{...r.metadata??{}}}}async function BS(e,r,t){let{year:i,month:n,day:_}=_0(t),u=`logs/${i}/${n}/${_}.jsonl`,c="";try{c=await e.getText(u)}catch{c=""}return yd(e,{key:u,body:`${c}${JSON.stringify(r)} -`,content_type:"application/x-ndjson",metadata:{provenance:Me({generated_from:String(r.event??"wiki_log"),artifact_key:u})}})}function v$(e,r){e.run(`INSERT INTO wiki_pages (id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at) + LIMIT ?`).all(..._)}function Bb(e,r=420){let n=e.replace(/\s+/g," ").trim();return n.length<=r?n:`${n.slice(0,r-1).trim()}...`}function gA(e,r){if(e.title?.trim())return e.title.trim();if(e.query?.trim())return e.query.trim();return r[0]?.source_title??"Compiled Knowledge"}function oA(e,r,n){let i=r.map((u,_)=>{return`- [${`S${_+1}`}] ${u.source_title??u.source_uri??"Source"} (${u.source_uri??"unknown"}, revision ${u.revision??"unknown"}, hash ${u.hash??"unknown"})`}),t=r.map((u,_)=>{let c=`S${_+1}`;return[`## ${u.source_title??`Source ${_+1}`}`,"",Bb(u.text),"",`Citation: [${c}]`].join(` +`)});return[`# ${e}`,"",`Generated at: ${n}`,"","## Sources","",...i,"",...t,""].join(` +`)}async function jd(e,r){let n=await e.put(r);return{key:n.key,uri:n.uri,kind:r.key.startsWith("logs/")?"log":"wiki_page",content_type:r.content_type,modified_at:n.modified_at,...Wn(r.body),metadata:{...r.metadata??{}}}}async function Cb(e,r,n){let{year:i,month:t,day:u}=uA(n),_=`logs/${i}/${t}/${u}.jsonl`,c="";try{c=await e.getText(_)}catch{c=""}return jd(e,{key:_,body:`${c}${JSON.stringify(r)} +`,content_type:"application/x-ndjson",metadata:{provenance:Me({generated_from:String(r.event??"wiki_log"),artifact_key:_})}})}function kE(e,r){e.run(`INSERT INTO wiki_pages (id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(path) DO UPDATE SET title = excluded.title, @@ -916,41 +916,41 @@ ${e.content.slice(0,500)}`.toLowerCase();return/\b(agent|rule|rules|instruction| content_hash = excluded.content_hash, status = excluded.status, metadata_json = excluded.metadata_json, - updated_at = excluded.updated_at`,[r.pageId,r.path,r.title,r.artifactUri,r.contentHash,"active",JSON.stringify({artifact_key:r.path,provenance:r.provenance}),r.now,r.now]);let t=e.query("SELECT id FROM chunks WHERE wiki_page_id = ?").all(r.pageId);for(let n of t)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[n.id]);e.run("DELETE FROM chunks WHERE wiki_page_id = ?",[r.pageId]);let i=Rn("chk",`${r.pageId}\x00${r.contentHash}`);e.run(`INSERT INTO chunks (id, wiki_page_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[i,r.pageId,"wiki",0,r.body,u0(r.body),0,r.body.length,JSON.stringify({artifact_key:r.path,artifact_uri:r.artifactUri,content_hash:r.contentHash,provenance:r.provenance}),r.now]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[i,r.body,r.title,r.artifactUri])}function HS(e,r,t,i){e.run("DELETE FROM citations WHERE wiki_page_id = ?",[r]);for(let n of t)e.run(`INSERT INTO citations (id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[Rn("cit",`${r}\x00${n.source_uri}\x00${n.chunk_id??i0()}`),r,n.chunk_id,n.source_uri,n.quote,n.start_offset,n.end_offset,JSON.stringify(n.metadata),i]);return t.length}function VS(e,r){return e.run(`INSERT INTO knowledge_indexes (id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at) + updated_at = excluded.updated_at`,[r.pageId,r.path,r.title,r.artifactUri,r.contentHash,"active",JSON.stringify({artifact_key:r.path,provenance:r.provenance}),r.now,r.now]);let n=e.query("SELECT id FROM chunks WHERE wiki_page_id = ?").all(r.pageId);for(let t of n)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[t.id]);e.run("DELETE FROM chunks WHERE wiki_page_id = ?",[r.pageId]);let i=Ot("chk",`${r.pageId}\x00${r.contentHash}`);e.run(`INSERT INTO chunks (id, wiki_page_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[i,r.pageId,"wiki",0,r.body,_A(r.body),0,r.body.length,JSON.stringify({artifact_key:r.path,artifact_uri:r.artifactUri,content_hash:r.contentHash,provenance:r.provenance}),r.now]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[i,r.body,r.title,r.artifactUri])}function Yb(e,r,n,i){e.run("DELETE FROM citations WHERE wiki_page_id = ?",[r]);for(let t of n)e.run(`INSERT INTO citations (id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[Ot("cit",`${r}\x00${t.source_uri}\x00${t.chunk_id??iA()}`),r,t.chunk_id,t.source_uri,t.quote,t.start_offset,t.end_offset,JSON.stringify(t.metadata),i]);return n.length}function Vb(e,r){return e.run(`INSERT INTO knowledge_indexes (id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(kind, name, shard_key) DO UPDATE SET artifact_uri = excluded.artifact_uri, metadata_json = excluded.metadata_json, - updated_at = excluded.updated_at`,[Rn("idx",`wiki-topic\x00${r.path}`),"wiki_topic",r.title,r.artifactUri,r.path,JSON.stringify({artifact_key:r.path,content_hash:r.contentHash}),r.now,r.now]),1}function l0(e){return e.toLowerCase().match(/[a-z0-9][a-z0-9-]{2,}/)?.[0]??"knowledge"}async function QS(e){let r=e.now??new Date,t=r.toISOString();x(e.dbPath);let i=A(e.dbPath),n;try{n=d0(i,e)}finally{i.close()}if(n.length===0)throw Error("No source chunks matched wiki compile input.");let _=o0(e,n),c=`wiki/generated/${$$(_)}.md`,d=g0(_,n,t),o=n.map((X)=>{let j=qS(X.metadata_json);return typeof j.source_ref==="string"?j.source_ref:X.source_uri}).filter((X)=>Boolean(X)),a=Me({generated_from:"wiki_compile",artifact_key:c,source_refs:o}),g=await yd(e.store,{key:c,body:d,content_type:"text/markdown",metadata:{generated_from:"wiki_compile"}}),E=Rn("wiki",c),l=n.map((X)=>({chunk_id:X.chunk_id,source_uri:X.source_uri??"unknown",quote:YS(X.text,240),start_offset:X.start_offset,end_offset:X.end_offset,metadata:{source_revision_id:X.source_revision_id,revision:X.revision,hash:X.hash,source_ref:qS(X.metadata_json).source_ref??X.source_uri}})),T=l0(_),f=`wiki/concepts/${$$(T)}.md`,v=[`# ${T}`,"",`Related page: [[${c}]]`,""].join(` -`),N=Me({generated_from:"wiki_compile_concept",artifact_key:f,source_refs:o}),k=await yd(e.store,{key:f,body:v,content_type:"text/markdown",metadata:{generated_from:"wiki_compile_concept"}}),R=Rn("wiki",f),S=await BS(e.store,{ts:t,event:"wiki_compile_completed",page_key:c,source_refs:o,chunks_seen:n.length},r),U=A(e.dbPath);try{lr(U,[g,k,S],r),v$(U,{pageId:E,path:c,title:_,artifactUri:g.uri,contentHash:g.hash??"",body:d,provenance:a,now:t}),v$(U,{pageId:R,path:f,title:T,artifactUri:k.uri,contentHash:k.hash??"",body:v,provenance:N,now:t}),U.run(`INSERT OR REPLACE INTO wiki_backlinks (from_page_id, to_page_id, label, created_at) - VALUES (?, ?, ?, ?)`,[E,R,"concept",t]);let X=HS(U,E,l,t),j=VS(U,{title:_,path:c,artifactUri:g.uri,contentHash:g.hash??"",now:t});return{page_id:E,path:c,artifact_uri:g.uri,content_hash:g.hash??"",chunks_seen:n.length,citations_written:X,concept_page_id:R,indexes_updated:j,log_key:S.key,warnings:[]}}finally{U.close()}}async function ZS(e){if(!e.approveWrite)return{approved:!1,durable_writes_performed:!1,page_id:null,path:null,artifact_uri:null,citations_written:0,log_key:null,message:"Dry-run: answer filing requires --approve-write."};let r=e.now??new Date,t=r.toISOString(),i=e.prompt.length>80?`${e.prompt.slice(0,77)}...`:e.prompt,_=`wiki/answers/${$$(i)}.md`,u=e.context.citations,c=[`# ${i}`,"",e.answer,"","## Citations","",...u.map((T,f)=>`- [C${f+1}] ${T.source_ref??T.source_uri??T.artifact_path??T.artifact_uri??"unknown"} ${T.hash?`(hash ${T.hash})`:""}`),""].join(` -`),d=u.map((T)=>T.source_ref??T.source_uri).filter((T)=>Boolean(T)),o=Me({generated_from:"knowledge_answer",artifact_key:_,source_refs:d}),a=await yd(e.store,{key:_,body:c,content_type:"text/markdown",metadata:{generated_from:"knowledge_answer"}}),g=await BS(e.store,{ts:t,event:"wiki_answer_filed",page_key:_,prompt:e.prompt,citations:u.length},r),E=Rn("wiki",_),l=A(e.dbPath);try{lr(l,[a,g],r),v$(l,{pageId:E,path:_,title:i,artifactUri:a.uri,contentHash:a.hash??"",body:c,provenance:o,now:t});let T=HS(l,E,u.map((f)=>({chunk_id:f.chunk_id,source_uri:f.source_uri??f.artifact_uri??"unknown",quote:f.quote,start_offset:f.start_offset,end_offset:f.end_offset,metadata:{source_ref:f.source_ref,artifact_path:f.artifact_path,revision:f.revision,hash:f.hash}})),t);return VS(l,{title:i,path:_,artifactUri:a.uri,contentHash:a.hash??"",now:t}),{approved:!0,durable_writes_performed:!0,page_id:E,path:_,artifact_uri:a.uri,citations_written:T,log_key:g.key,message:`Filed answer to ${_}`}}finally{l.close()}}function yt(e,r){e.push(r)}function sS(e){x(e.dbPath);let r=A(e.dbPath),t=[];try{let i=r.query("SELECT COUNT(*) AS n FROM wiki_pages WHERE status = 'active'").get()?.n??0,n=r.query("SELECT COUNT(*) AS n FROM citations").get()?.n??0,_=r.query("SELECT COUNT(*) AS n FROM wiki_backlinks").get()?.n??0,u=r.query(`SELECT wp.id, wp.path + updated_at = excluded.updated_at`,[Ot("idx",`wiki-topic\x00${r.path}`),"wiki_topic",r.title,r.artifactUri,r.path,JSON.stringify({artifact_key:r.path,content_hash:r.contentHash}),r.now,r.now]),1}function lA(e){return e.toLowerCase().match(/[a-z0-9][a-z0-9-]{2,}/)?.[0]??"knowledge"}async function Qb(e){let r=e.now??new Date,n=r.toISOString();P(e.dbPath);let i=A(e.dbPath),t;try{t=dA(i,e)}finally{i.close()}if(t.length===0)throw Error("No source chunks matched wiki compile input.");let u=gA(e,t),c=`wiki/generated/${EE(u)}.md`,d=oA(u,t,n),g=t.map((y)=>{let x=Gb(y.metadata_json);return typeof x.source_ref==="string"?x.source_ref:y.source_uri}).filter((y)=>Boolean(y)),f=Me({generated_from:"wiki_compile",artifact_key:c,source_refs:g}),o=await jd(e.store,{key:c,body:d,content_type:"text/markdown",metadata:{generated_from:"wiki_compile"}}),a=Ot("wiki",c),l=t.map((y)=>({chunk_id:y.chunk_id,source_uri:y.source_uri??"unknown",quote:Bb(y.text,240),start_offset:y.start_offset,end_offset:y.end_offset,metadata:{source_revision_id:y.source_revision_id,revision:y.revision,hash:y.hash,source_ref:Gb(y.metadata_json).source_ref??y.source_uri}})),$=lA(u),v=`wiki/concepts/${EE($)}.md`,k=[`# ${$}`,"",`Related page: [[${c}]]`,""].join(` +`),T=Me({generated_from:"wiki_compile_concept",artifact_key:v,source_refs:g}),S=await jd(e.store,{key:v,body:k,content_type:"text/markdown",metadata:{generated_from:"wiki_compile_concept"}}),O=Ot("wiki",v),b=await Cb(e.store,{ts:n,event:"wiki_compile_completed",page_key:c,source_refs:g,chunks_seen:t.length},r),D=A(e.dbPath);try{lr(D,[o,S,b],r),kE(D,{pageId:a,path:c,title:u,artifactUri:o.uri,contentHash:o.hash??"",body:d,provenance:f,now:n}),kE(D,{pageId:O,path:v,title:$,artifactUri:S.uri,contentHash:S.hash??"",body:k,provenance:T,now:n}),D.run(`INSERT OR REPLACE INTO wiki_backlinks (from_page_id, to_page_id, label, created_at) + VALUES (?, ?, ?, ?)`,[a,O,"concept",n]);let y=Yb(D,a,l,n),x=Vb(D,{title:u,path:c,artifactUri:o.uri,contentHash:o.hash??"",now:n});return{page_id:a,path:c,artifact_uri:o.uri,content_hash:o.hash??"",chunks_seen:t.length,citations_written:y,concept_page_id:O,indexes_updated:x,log_key:b.key,warnings:[]}}finally{D.close()}}async function Zb(e){if(!e.approveWrite)return{approved:!1,durable_writes_performed:!1,page_id:null,path:null,artifact_uri:null,citations_written:0,log_key:null,message:"Dry-run: answer filing requires --approve-write."};let r=e.now??new Date,n=r.toISOString(),i=e.prompt.length>80?`${e.prompt.slice(0,77)}...`:e.prompt,u=`wiki/answers/${EE(i)}.md`,_=e.context.citations,c=[`# ${i}`,"",e.answer,"","## Citations","",..._.map(($,v)=>`- [C${v+1}] ${$.source_ref??$.source_uri??$.artifact_path??$.artifact_uri??"unknown"} ${$.hash?`(hash ${$.hash})`:""}`),""].join(` +`),d=_.map(($)=>$.source_ref??$.source_uri).filter(($)=>Boolean($)),g=Me({generated_from:"knowledge_answer",artifact_key:u,source_refs:d}),f=await jd(e.store,{key:u,body:c,content_type:"text/markdown",metadata:{generated_from:"knowledge_answer"}}),o=await Cb(e.store,{ts:n,event:"wiki_answer_filed",page_key:u,prompt:e.prompt,citations:_.length},r),a=Ot("wiki",u),l=A(e.dbPath);try{lr(l,[f,o],r),kE(l,{pageId:a,path:u,title:i,artifactUri:f.uri,contentHash:f.hash??"",body:c,provenance:g,now:n});let $=Yb(l,a,_.map((v)=>({chunk_id:v.chunk_id,source_uri:v.source_uri??v.artifact_uri??"unknown",quote:v.quote,start_offset:v.start_offset,end_offset:v.end_offset,metadata:{source_ref:v.source_ref,artifact_path:v.artifact_path,revision:v.revision,hash:v.hash}})),n);return Vb(l,{title:i,path:u,artifactUri:f.uri,contentHash:f.hash??"",now:n}),{approved:!0,durable_writes_performed:!0,page_id:a,path:u,artifact_uri:f.uri,citations_written:$,log_key:o.key,message:`Filed answer to ${u}`}}finally{l.close()}}function Pn(e,r){e.push(r)}function sb(e){P(e.dbPath);let r=A(e.dbPath),n=[];try{let i=r.query("SELECT COUNT(*) AS n FROM wiki_pages WHERE status = 'active'").get()?.n??0,t=r.query("SELECT COUNT(*) AS n FROM citations").get()?.n??0,u=r.query("SELECT COUNT(*) AS n FROM wiki_backlinks").get()?.n??0,_=r.query(`SELECT wp.id, wp.path FROM wiki_pages wp LEFT JOIN citations c ON c.wiki_page_id = wp.id WHERE wp.status = 'active' AND wp.path LIKE 'wiki/generated/%' GROUP BY wp.id - HAVING COUNT(c.id) = 0`).all();for(let l of u)yt(t,{type:"missing_citation",severity:"error",page_id:l.id,path:l.path,message:"Generated wiki page has no citations."});let c=r.query(`SELECT wp.id AS page_id, wp.path, c.source_uri, c.chunk_id + HAVING COUNT(c.id) = 0`).all();for(let l of _)Pn(n,{type:"missing_citation",severity:"error",page_id:l.id,path:l.path,message:"Generated wiki page has no citations."});let c=r.query(`SELECT wp.id AS page_id, wp.path, c.source_uri, c.chunk_id FROM citations c JOIN wiki_pages wp ON wp.id = c.wiki_page_id LEFT JOIN chunks ch ON ch.id = c.chunk_id - WHERE ch.metadata_json LIKE '%"stale":true%' OR ch.metadata_json LIKE '%"status":"stale"%' OR ch.metadata_json LIKE '%"status":"deleted"%'`).all();for(let l of c)yt(t,{type:"stale_citation",severity:"warn",page_id:l.page_id,path:l.path,source_uri:l.source_uri,chunk_id:l.chunk_id??void 0,message:"Page cites a stale or deleted source chunk."});let d=r.query(`SELECT lower(title) AS title, COUNT(*) AS n + WHERE ch.metadata_json LIKE '%"stale":true%' OR ch.metadata_json LIKE '%"status":"stale"%' OR ch.metadata_json LIKE '%"status":"deleted"%'`).all();for(let l of c)Pn(n,{type:"stale_citation",severity:"warn",page_id:l.page_id,path:l.path,source_uri:l.source_uri,chunk_id:l.chunk_id??void 0,message:"Page cites a stale or deleted source chunk."});let d=r.query(`SELECT lower(title) AS title, COUNT(*) AS n FROM wiki_pages WHERE status = 'active' GROUP BY lower(title) - HAVING COUNT(*) > 1`).all();for(let l of d)yt(t,{type:"duplicate_page",severity:"warn",message:`Duplicate active wiki title: ${l.title} (${l.n} pages).`});let o=r.query(`SELECT wp.id, wp.path + HAVING COUNT(*) > 1`).all();for(let l of d)Pn(n,{type:"duplicate_page",severity:"warn",message:`Duplicate active wiki title: ${l.title} (${l.n} pages).`});let g=r.query(`SELECT wp.id, wp.path FROM wiki_pages wp LEFT JOIN wiki_backlinks wb1 ON wb1.from_page_id = wp.id LEFT JOIN wiki_backlinks wb2 ON wb2.to_page_id = wp.id WHERE wp.status = 'active' AND wp.path NOT IN ('wiki/README.md') GROUP BY wp.id - HAVING COUNT(wb1.to_page_id) = 0 AND COUNT(wb2.from_page_id) = 0`).all();for(let l of o)yt(t,{type:"orphan_page",severity:"info",page_id:l.id,path:l.path,message:"Wiki page has no backlinks."});let a=r.query(`SELECT wp.id AS page_id, wp.path, c.source_uri + HAVING COUNT(wb1.to_page_id) = 0 AND COUNT(wb2.from_page_id) = 0`).all();for(let l of g)Pn(n,{type:"orphan_page",severity:"info",page_id:l.id,path:l.path,message:"Wiki page has no backlinks."});let f=r.query(`SELECT wp.id AS page_id, wp.path, c.source_uri FROM citations c JOIN wiki_pages wp ON wp.id = c.wiki_page_id LEFT JOIN sources s ON s.uri = c.source_uri - WHERE s.id IS NULL AND c.source_uri NOT LIKE 'file://%' AND c.source_uri NOT LIKE 's3://%' AND c.source_uri NOT LIKE 'https://%' AND c.source_uri NOT LIKE 'open-files://%'`).all();for(let l of a)yt(t,{type:"unresolved_source_ref",severity:"error",page_id:l.page_id,path:l.path,source_uri:l.source_uri,message:"Citation source URI cannot be resolved to a known or allowed source ref."});let g=r.query("SELECT id, path FROM wiki_pages WHERE lower(metadata_json) LIKE '%contradiction%'").all();for(let l of g)yt(t,{type:"contradiction_marker",severity:"warn",page_id:l.id,path:l.path,message:"Page metadata contains a contradiction marker."});let E=r.query(`SELECT c.id AS chunk_id, s.uri AS source_uri + WHERE s.id IS NULL AND c.source_uri NOT LIKE 'file://%' AND c.source_uri NOT LIKE 's3://%' AND c.source_uri NOT LIKE 'https://%' AND c.source_uri NOT LIKE 'open-files://%'`).all();for(let l of f)Pn(n,{type:"unresolved_source_ref",severity:"error",page_id:l.page_id,path:l.path,source_uri:l.source_uri,message:"Citation source URI cannot be resolved to a known or allowed source ref."});let o=r.query("SELECT id, path FROM wiki_pages WHERE lower(metadata_json) LIKE '%contradiction%'").all();for(let l of o)Pn(n,{type:"contradiction_marker",severity:"warn",page_id:l.id,path:l.path,message:"Page metadata contains a contradiction marker."});let a=r.query(`SELECT c.id AS chunk_id, s.uri AS source_uri FROM chunks c JOIN source_revisions sr ON sr.id = c.source_revision_id JOIN sources s ON s.id = sr.source_id @@ -958,7 +958,7 @@ ${e.content.slice(0,500)}`.toLowerCase();return/\b(agent|rule|rules|instruction| WHERE c.kind = 'source' GROUP BY c.id HAVING COUNT(cit.id) = 0 - LIMIT 25`).all();for(let l of E)yt(t,{type:"new_article_candidate",severity:"info",chunk_id:l.chunk_id,source_uri:l.source_uri??void 0,message:"Source chunk is indexed but not cited by any wiki page yet."});return{ok:t.every((l)=>l.severity!=="error"),issue_count:t.length,issues:t,counts:{active_pages:i,citations:n,backlinks:_,new_article_candidates:E.length}}}finally{r.close()}}import{createHash as E0}from"crypto";function a0(e){let r=String(e.getUTCFullYear()),t=String(e.getUTCMonth()+1).padStart(2,"0"),i=String(e.getUTCDate()).padStart(2,"0");return{year:r,month:t,day:i}}function N$(e,r){return`${e}_${E0("sha256").update(r).digest("hex").slice(0,20)}`}function T0(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function f0(){return`# Knowledge Agent Schema v1 + LIMIT 25`).all();for(let l of a)Pn(n,{type:"new_article_candidate",severity:"info",chunk_id:l.chunk_id,source_uri:l.source_uri??void 0,message:"Source chunk is indexed but not cited by any wiki page yet."});return{ok:n.every((l)=>l.severity!=="error"),issue_count:n.length,issues:n,counts:{active_pages:i,citations:t,backlinks:u,new_article_candidates:a.length}}}finally{r.close()}}import{createHash as aA}from"crypto";function fA(e){let r=String(e.getUTCFullYear()),n=String(e.getUTCMonth()+1).padStart(2,"0"),i=String(e.getUTCDate()).padStart(2,"0");return{year:r,month:n,day:i}}function TE(e,r){return`${e}_${aA("sha256").update(r).digest("hex").slice(0,20)}`}function $A(e){let r=e.trim().split(/\s+/).filter(Boolean).length;return Math.max(1,Math.ceil(r*1.25))}function vA(){return`# Knowledge Agent Schema v1 ## Source Rules @@ -983,7 +983,7 @@ ${e.content.slice(0,500)}`.toLowerCase();return/\b(agent|rule|rules|instruction| ## Lint Rules - Flag stale pages, missing citations, contradictions, orphan pages, duplicate pages, and unresolved source refs. -`}function $0(){return`# Knowledge Index +`}function EA(){return`# Knowledge Index This is a compact orientation index for agents. It is not the full search index. @@ -998,19 +998,19 @@ This is a compact orientation index for agents. It is not the full search index. Raw source files are resolved through open-files. This app stores source refs, citations, chunks, generated wiki artifacts, indexes, and run records. -`}function pS(){return`# Wiki +`}function pb(){return`# Wiki Generated durable knowledge pages live here. Pages should be concise, cited, and organized for both humans and agents. -`}async function eO(e,r=new Date){let{year:t,month:i,day:n}=a0(r),_="schemas/v1.md",u="indexes/root.md",c="wiki/README.md",d=`logs/${t}/${i}/${n}.jsonl`,o={ts:r.toISOString(),event:"wiki_layout_initialized",schema_key:"schemas/v1.md",root_index_key:"indexes/root.md",wiki_readme_key:"wiki/README.md"},a=[{key:"schemas/v1.md",body:f0(),content_type:"text/markdown"},{key:"indexes/root.md",body:$0(),content_type:"text/markdown"},{key:"wiki/README.md",body:pS(),content_type:"text/markdown"},{key:d,body:`${JSON.stringify(o)} -`,content_type:"application/x-ndjson"}],g=await Promise.all(a.map(async(E)=>{let l=await e.put(E);return{key:l.key,uri:l.uri,kind:wv(E.key),content_type:E.content_type,modified_at:l.modified_at,metadata:{provenance:Me({generated_from:"wiki_layout_init",artifact_key:E.key,citation_required:E.key.startsWith("wiki/")||E.key.startsWith("indexes/")})},...Jt(E.body)}}));return{schema_key:"schemas/v1.md",root_index_key:"indexes/root.md",wiki_readme_key:"wiki/README.md",log_key:d,artifacts:g,written:["schemas/v1.md","indexes/root.md","wiki/README.md",d]}}function k$(e){let r=e.metadata?.provenance;if(r&&typeof r==="object"&&!Array.isArray(r))return r;return Me({generated_from:"wiki_layout_init",artifact_key:e.key})}function v0(e,r,t,i,n,_){let u=k$(i),c=N$("chk",`${r}\x00${i.hash??i.uri}`),d=e.query("SELECT id FROM chunks WHERE wiki_page_id = ?").all(r);for(let o of d)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[o.id]);e.run("DELETE FROM chunks WHERE wiki_page_id = ?",[r]),e.run(`INSERT INTO chunks (id, wiki_page_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[c,r,"wiki",0,n,T0(n),0,n.length,JSON.stringify({artifact_key:i.key,artifact_uri:i.uri,content_hash:i.hash??null,provenance:u}),_]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[c,n,t,i.uri])}function rO(e,r,t=new Date){let i=t.toISOString(),n=r.find((u)=>u.key.endsWith("indexes/root.md")),_=r.find((u)=>u.key.endsWith("wiki/README.md"));if(n)e.run(`INSERT INTO knowledge_indexes (id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at) +`}async function eI(e,r=new Date){let{year:n,month:i,day:t}=fA(r),u="schemas/v1.md",_="indexes/root.md",c="wiki/README.md",d=`logs/${n}/${i}/${t}.jsonl`,g={ts:r.toISOString(),event:"wiki_layout_initialized",schema_key:"schemas/v1.md",root_index_key:"indexes/root.md",wiki_readme_key:"wiki/README.md"},f=[{key:"schemas/v1.md",body:vA(),content_type:"text/markdown"},{key:"indexes/root.md",body:EA(),content_type:"text/markdown"},{key:"wiki/README.md",body:pb(),content_type:"text/markdown"},{key:d,body:`${JSON.stringify(g)} +`,content_type:"application/x-ndjson"}],o=await Promise.all(f.map(async(a)=>{let l=await e.put(a);return{key:l.key,uri:l.uri,kind:Lk(a.key),content_type:a.content_type,modified_at:l.modified_at,metadata:{provenance:Me({generated_from:"wiki_layout_init",artifact_key:a.key,citation_required:a.key.startsWith("wiki/")||a.key.startsWith("indexes/")})},...Wn(a.body)}}));return{schema_key:"schemas/v1.md",root_index_key:"indexes/root.md",wiki_readme_key:"wiki/README.md",log_key:d,artifacts:o,written:["schemas/v1.md","indexes/root.md","wiki/README.md",d]}}function SE(e){let r=e.metadata?.provenance;if(r&&typeof r==="object"&&!Array.isArray(r))return r;return Me({generated_from:"wiki_layout_init",artifact_key:e.key})}function kA(e,r,n,i,t,u){let _=SE(i),c=TE("chk",`${r}\x00${i.hash??i.uri}`),d=e.query("SELECT id FROM chunks WHERE wiki_page_id = ?").all(r);for(let g of d)e.run("DELETE FROM chunks_fts WHERE chunk_id = ?",[g.id]);e.run("DELETE FROM chunks WHERE wiki_page_id = ?",[r]),e.run(`INSERT INTO chunks (id, wiki_page_id, kind, ordinal, text, token_count, start_offset, end_offset, metadata_json, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[c,r,"wiki",0,t,$A(t),0,t.length,JSON.stringify({artifact_key:i.key,artifact_uri:i.uri,content_hash:i.hash??null,provenance:_}),u]),e.run("INSERT INTO chunks_fts (chunk_id, text, title, source_uri) VALUES (?, ?, ?, ?)",[c,t,n,i.uri])}function rI(e,r,n=new Date){let i=n.toISOString(),t=r.find((_)=>_.key.endsWith("indexes/root.md")),u=r.find((_)=>_.key.endsWith("wiki/README.md"));if(t)e.run(`INSERT INTO knowledge_indexes (id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(kind, name, shard_key) DO UPDATE SET artifact_uri = excluded.artifact_uri, metadata_json = excluded.metadata_json, - updated_at = excluded.updated_at`,[N$("idx","root:indexes/root.md"),"root","root",n.uri,"root",JSON.stringify({artifact_key:n.key,content_hash:n.hash??null,provenance:k$(n)}),i,i]);if(_){let u=N$("wiki","wiki/README.md");e.run(`INSERT INTO wiki_pages (id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at) + updated_at = excluded.updated_at`,[TE("idx","root:indexes/root.md"),"root","root",t.uri,"root",JSON.stringify({artifact_key:t.key,content_hash:t.hash??null,provenance:SE(t)}),i,i]);if(u){let _=TE("wiki","wiki/README.md");e.run(`INSERT INTO wiki_pages (id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(path) DO UPDATE SET title = excluded.title, @@ -1018,13 +1018,13 @@ Pages should be concise, cited, and organized for both humans and agents. content_hash = excluded.content_hash, status = excluded.status, metadata_json = excluded.metadata_json, - updated_at = excluded.updated_at`,[u,"wiki/README.md","Wiki",_.uri,_.hash??null,"active",JSON.stringify({artifact_key:_.key,provenance:k$(_)}),i,i]),v0(e,u,"Wiki",_,pS(),i)}}import{createHash as tO}from"crypto";import{Database as N0}from"bun:sqlite";import{cpSync as dO,existsSync as hn,lstatSync as k0,mkdirSync as I$,readdirSync as oO,readFileSync as jd,renameSync as I0,rmSync as Pd,writeFileSync as nO}from"fs";import{dirname as iO,join as Br,relative as S0}from"path";function S$(e,r=e){if(!hn(e))return[];let t=k0(e);if(t.isFile())return[S0(r,e)||"."];if(!t.isDirectory())return[];return oO(e).flatMap((i)=>S$(Br(e,i),r)).sort()}function _O(e,r){if(r.length===0)return{sha256:null,bytes:0};let t=tO("sha256"),i=0;for(let n of r){let _=Br(e,n),u=jd(_),c=tO("sha256").update(u).digest("hex");i+=u.byteLength,t.update(n),t.update("\x00"),t.update(c),t.update("\x00")}return{sha256:t.digest("hex"),bytes:i}}function O0(e){if(!hn(e))return null;let r=JSON.parse(jd(e,"utf8"));return Array.isArray(r.items)?r.items.length:null}function L0(e){if(!hn(e))return{exists:!1,integrity_check:null,table_counts:{}};let r=new N0(e,{readonly:!0});try{let t=r.query("PRAGMA integrity_check").get(),i=t?Object.values(t)[0]??null:null,n=r.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name").all(),_={};for(let u of n){let c=`"${u.name.replaceAll('"','""')}"`,d=r.query(`SELECT COUNT(*) AS n FROM ${c}`).get();_[u.name]=d?.n??0}return{exists:!0,integrity_check:i,table_counts:_}}finally{r.close()}}function xd(e){let r=S$(e.home),t=_O(e.home,r),i=S$(e.artifactsDir),n=_O(e.artifactsDir,i);return{path:e.home,exists:hn(e.home),file_count:r.length,total_bytes:t.bytes,tree_sha256:t.sha256,json_items:O0(e.jsonStorePath),sqlite:L0(e.knowledgeDbPath),artifacts:{exists:hn(e.artifactsDir),file_count:i.length,total_bytes:n.bytes,tree_sha256:n.sha256},files:r}}function b0(e,r){if(!r.exists)return!0;if(r.files.filter((i)=>i!=="config.json").length>0)return!1;if(!r.files.includes("config.json"))return!0;try{return JSON.stringify(JSON.parse(jd(e.configPath,"utf8")))===JSON.stringify(xn())}catch{return!1}}function uO(e,r){return e.file_count===r.file_count&&e.total_bytes===r.total_bytes&&e.tree_sha256===r.tree_sha256&&e.json_items===r.json_items&&e.sqlite.integrity_check===r.sqlite.integrity_check&&JSON.stringify(e.sqlite.table_counts)===JSON.stringify(r.sqlite.table_counts)&&e.artifacts.file_count===r.artifacts.file_count&&e.artifacts.total_bytes===r.artifacts.total_bytes&&e.artifacts.tree_sha256===r.artifacts.tree_sha256}function cO(e){return e.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}Z$/,"Z")}function U0(e){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,e)}function O$(e){return e instanceof Error&&/\b(EBUSY|EPERM)\b/.test(e.message)}function m0(e){let r;for(let t=0;t<8;t+=1)try{Pd(e,{recursive:!0,force:!1});return}catch(i){if(r=i,!O$(i))throw i;U0(50*(t+1))}throw r}function D0(e){return e==="TOMBSTONE.md"||e==="migration.json"||e==="knowledge.db"||e==="knowledge.db-shm"||e==="knowledge.db-wal"||e==="knowledge.db-journal"}function R0(e){for(let r of oO(e)){if(r==="TOMBSTONE.md"||r==="migration.json")continue;try{Pd(Br(e,r),{recursive:!0,force:!1})}catch(t){if(!O$(t)||!r.startsWith("knowledge.db"))throw t}}}function h0(e,r){try{I0(e,r);return}catch(t){dO(e,r,{recursive:!0,force:!1,errorOnExist:!0,preserveTimestamps:!0});try{m0(e)}catch(i){if(O$(i)){R0(e);return}throw Pd(r,{recursive:!0,force:!0}),i}if(t instanceof Error&&t.message.includes("EXDEV"))return}}function w0(e,r,t){if(!r.exists)return!1;if(!r.files.includes("TOMBSTONE.md")||!r.files.includes("migration.json"))return!1;if(r.files.some((i)=>!D0(i)))return!1;try{let i=JSON.parse(jd(Br(e.home,"migration.json"),"utf8"));return i.new_path===t&&typeof i.backup_path==="string"}catch{return!1}}function gO(e){let r=e.now??new Date,t=e.approveWrite!==!0,i=xd(e.legacy),n=xd(e.current),_=b0(e.current,n),u={legacy_exists:i.exists,current_absent_or_default_scaffold:!n.exists||_,approval_present:e.approveWrite===!0&&Boolean(e.approvedBy),legacy_is_tombstone:!1,backup_matches_legacy:!1,migrated_matches_backup:!1,tombstone_written:!1},c=[];if(!i.exists)return{ok:!0,dry_run:t,approval_required:!1,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:null,tombstone_path:null,legacy_before:i,current_before:n,backup_after:null,current_after:null,checks:u,warnings:c,message:`No legacy knowledge workspace found at ${e.legacy.home}`};if(u.legacy_is_tombstone=w0(e.legacy,i,e.current.home),u.legacy_is_tombstone)return{ok:!0,dry_run:t,approval_required:!1,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:null,tombstone_path:Br(e.legacy.home,"TOMBSTONE.md"),legacy_before:i,current_before:n,backup_after:null,current_after:n,checks:{...u,tombstone_written:!0},warnings:c,message:`Legacy knowledge workspace already migrated to ${e.current.home}`};if(!u.current_absent_or_default_scaffold)c.push("current_workspace_contains_data");if(!u.approval_present)c.push("write_approval_required");if(t||!u.current_absent_or_default_scaffold||!u.approval_present)return{ok:u.current_absent_or_default_scaffold,dry_run:!0,approval_required:!0,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:`${e.legacy.home}.backup-${cO(r)}`,tombstone_path:Br(e.legacy.home,"TOMBSTONE.md"),legacy_before:i,current_before:n,backup_after:null,current_after:null,checks:u,warnings:c,message:u.current_absent_or_default_scaffold?`Dry run: would migrate ${e.legacy.home} to ${e.current.home}`:`Cannot migrate while ${e.current.home} contains data`};let d=`${e.legacy.home}.backup-${cO(r)}`;I$(iO(e.current.home),{recursive:!0}),I$(iO(d),{recursive:!0}),dO(e.legacy.home,d,{recursive:!0,force:!1,errorOnExist:!0,preserveTimestamps:!0});let o=We(d),a=xd(o);if(u.backup_matches_legacy=uO(i,a),!u.backup_matches_legacy)throw Error(`Legacy knowledge backup verification failed: ${d}`);if(n.exists&&_)Pd(e.current.home,{recursive:!0,force:!0});h0(e.legacy.home,e.current.home);let g=xd(e.current);u.migrated_matches_backup=uO(a,g),I$(e.legacy.home,{recursive:!0});let E=Br(e.legacy.home,"TOMBSTONE.md");nO(E,["# Migrated OpenKnowledge Workspace","",`Migrated at: ${r.toISOString()}`,`Approved by: ${e.approvedBy}`,`New path: ${e.current.home}`,`Backup path: ${d}`,"","This directory is a diagnostic tombstone only. OpenKnowledge reads and writes the canonical .hasna/knowledge workspace.",""].join(` -`)),nO(Br(e.legacy.home,"migration.json"),`${JSON.stringify({migrated_at:r.toISOString(),approved_by:e.approvedBy,new_path:e.current.home,backup_path:d,legacy_before:i,backup_after:a,current_after:g},null,2)} -`),u.tombstone_written=hn(E);let l=u.backup_matches_legacy&&u.migrated_matches_backup&&u.tombstone_written;return{ok:l,dry_run:!1,approval_required:!1,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:d,tombstone_path:E,legacy_before:i,current_before:n,backup_after:a,current_after:g,checks:u,warnings:c,message:l?`Migrated legacy knowledge workspace to ${e.current.home}`:`Migrated legacy knowledge workspace, but verification failed for ${e.current.home}`}}function x0(e){let r=OO(e);if(s(lO(r,"knowledge.db"))||s(lO(r,"config.json")))return Kt(r);return Kt(We(_o(r)).home)}function L$(e){return`${y0()}:${g_("sha256").update(e.home).digest("hex").slice(0,12)}`}function m$(e){return`'${e.replace(/'/g,"'\\''")}'`}function j0(e){return["knowledge",...e].map(m$).join(" ")}function EO(e,r){return`cd ${m$(e)} && knowledge ${r.map(m$).join(" ")}`}function LO(e){return!e||e==="local"||e==="localhost"}function o_(e,r){return{source:e.source,adapter:e.adapter,project_root:r,project_root_source:e.project_root_source,workspace_root:e.workspace_root,workspace_root_source:e.workspace_root_source,open_files_root:e.open_files_root,open_files_root_source:e.open_files_root_source,trust_status:e.trust_status,auth_status:e.auth_status,current:e.current,primary:e.primary,diagnostics:e.diagnostics,repair_hints:e.repair_hints,evidence:e.evidence,cacheability:e.cacheability,warnings:e.warnings}}function b$(e){return{source:e.source,adapter:e.adapter,target:e.target,route:e.route,target_kind:e.targetKind,confidence:e.confidence,evidence:e.evidence,cacheability:e.cacheability}}function P0(e){try{let r=JSON.parse(e);return Array.isArray(r)?r.filter((t)=>typeof t==="string"):[]}catch{return[]}}function l_(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function ue(e){return typeof e==="string"&&e.length>0?e:null}function F0(e){return typeof e==="number"&&Number.isFinite(e)?e:null}function Fd(e){return typeof e==="boolean"?e:null}function K0(e){return Array.isArray(e)?e.filter((r)=>typeof r==="string"):[]}function bO(e,r,t){let i=l_(e),n=ue(i.observed_at)??ue(r[`${t}_observed_at`]),_=ue(i.source_authority)??ue(r[`${t}_source_authority`]);if(!n||!_)return null;return{observed_at:n,verified_at:ue(i.verified_at),expires_at:ue(i.expires_at)??ue(r[`${t}_expires_at`]),ttl_ms:F0(i.ttl_ms),source_authority:_,confidence:ue(i.confidence)??(t==="route"?ue(r.route_confidence):null),cacheable:Fd(i.cacheable)??Fd(r[`${t}_cacheable`])??!1,stale:Fd(i.stale)??Fd(r[`${t}_stale`])??!1,reasons:K0(i.reasons)}}function W0(e,r){return e.machine_id===r||e.hostname===r||e.ssh_target===r||e.tailscale_dns===r||P0(e.tailscale_ips_json).includes(r)}function aO(e,r){return Go(e).find((t)=>W0(t,r))??null}function UO(e){return l_(wn(e.metadata_json).resolver_evidence)}function E_(e){return l_(wn(e.capabilities_json).resolver)}function mO(e){let r=E_(e),t=ue(r.route_kind);if(t==="local"||t==="lan"||t==="tailscale"||t==="ssh"||t==="unknown")return t;if(e.tailscale_dns&&e.ssh_target===e.tailscale_dns)return"tailscale";return e.ssh_target?"ssh":"unknown"}function J0(e){let r=E_(e),t=ue(r.route_target_kind);if(t==="local"||t==="lan"||t==="tailscale"||t==="ssh"||t==="unknown")return t;return mO(e)}function z0(e){return ue(E_(e).route_confidence)??"medium"}function TO(e,r,t){let i=UO(e),n=l_(i.route),_=E_(e);return{target:e.ssh_target??e.tailscale_dns??e.hostname??e.machine_id,route:mO(e),targetKind:J0(e),confidence:z0(e),source:"registry",adapter:t.adapter,evidence:{registry:!0,requested_machine_id:r,machine_id:e.machine_id,recorded_at:e.updated_at,route:n},cacheability:bO(n.cacheability,_,"route")??t.cacheability,warnings:[...new Set([...t.warnings,"registry_route_fallback"])]}}function fO(e,r,t){if(!e.workspace_home)return null;let i=UO(e),n=l_(i.workspace),_=E_(e);return{ok:!0,source:"registry",adapter:t.adapter,requested_machine_id:r,machine_id:e.machine_id,project_id:ue(n.project_id)??t.project_id,repo_name:ue(n.repo_name)??t.repo_name,project_root:e.workspace_home,project_root_source:ue(_.project_root_source)??"registry",workspace_root:ue(n.workspace_root),workspace_root_source:ue(_.workspace_root_source)??"registry",open_files_root:ue(n.open_files_root),open_files_root_source:ue(_.open_files_root_source)??"registry",trust_status:ue(_.trust_status)??"unknown",auth_status:ue(_.auth_status)??"unknown",current:!1,primary:!1,diagnostics:[],repair_hints:[],evidence:{registry:!0,requested_machine_id:r,machine_id:e.machine_id,recorded_at:e.updated_at,workspace:n},cacheability:bO(n.cacheability,_,"workspace")??t.cacheability,warnings:[...new Set([...t.warnings,"registry_workspace_fallback"])]}}function $O(e){if(!e)return null;let r=e.diagnostics.filter((i)=>i.severity!=="ok"),t=e.repair_hints[0];if(!r.length&&!e.warnings.length&&!t)return null;return[r.length?`workspace diagnostics: ${r.map((i)=>`${i.id}=${i.status}`).join(", ")}`:null,e.warnings.length?`warnings: ${e.warnings.join(", ")}`:null,t?`repair: ${t.shell_command}`:null].filter(Boolean).join("; ")}function Kd(e){return{id:e.id,reason:e.reason,command:["knowledge",...e.args],shell_command:j0(e.args)}}function Wd(e,r){let t=A(e);try{return Number(t.query(r).get()?.count??0)}finally{t.close()}}function M0(e,r){let t=Wd(e,"SELECT COUNT(*) AS count FROM sources WHERE uri LIKE 'open-files://%'"),i=Wd(e,"SELECT COUNT(*) AS count FROM sources WHERE metadata_json LIKE '%open-files://%' OR metadata_json LIKE '%source_ref%'"),n=Wd(e,"SELECT COUNT(*) AS count FROM source_revisions WHERE extracted_text_uri IS NOT NULL"),_=Wd(e,["SELECT COUNT(*) AS count FROM sources","WHERE metadata_json LIKE '%raw_bytes%'","OR metadata_json LIKE '%raw_content%'","OR metadata_json LIKE '%content_base64%'","OR metadata_json LIKE '%source_bytes%'"].join(" ")),u=_===0;return{ok:u,source_of_truth:"open-files",configured_root:r?.open_files_root??null,configured_root_source:r?.open_files_root_source??null,source_refs:{open_files:t,metadata_mentions:i},extracted_text_artifacts:n,raw_source_bytes_owned_by:"open-files",raw_payload_sentinel_hits:_,message:u?`${t} open-files source ref(s); raw source bytes remain owned by open-files`:`${_} raw source payload metadata sentinel(s) found`}}var C0=new Set(["raw","raw_bytes","raw_content","content_base64","source_bytes","source_content","body","body_bytes"]);function D$(e,r=0){if(r>8)return!1;if(!e||typeof e!=="object")return!1;if(Array.isArray(e))return e.some((t)=>D$(t,r+1));for(let[t,i]of Object.entries(e)){if(C0.has(t.toLowerCase()))return!0;if(D$(i,r+1))return!0}return!1}function wn(e){try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function q0(e,r=20,t=200){if(!Number.isFinite(e)||e<=0)return r;return Math.min(Math.floor(e),t)}function G0(e,r=220){let t=e??"";return t.length>r?`${t.slice(0,r)}...`:t}function Fe(e,r=["metadata_json"]){return e.map((t)=>{let i={...t};for(let n of r){let _=i[n];if(typeof _==="string"){let u=n.endsWith("_json")?n.slice(0,-5):n;i[u]=wn(_),delete i[n]}}return i})}function we(e,r,t=[]){return e.query(r).all(...t)}function Y0(e){if(!s(e))return{exists:!1,read_error:null,items:[]};try{let r=JSON.parse(X0(e,"utf8"));if(!r||!Array.isArray(r.items))return{exists:!0,read_error:"invalid_store_shape",items:[]};return{exists:!0,read_error:null,items:r.items}}catch(r){return{exists:!0,read_error:r instanceof Error?r.message:String(r),items:[]}}}function vO(e){return{id:e.id,short_id:e.short_id??null,title:e.title,content_preview:G0(e.content),url:e.url??null,tags:e.tags??[],metadata:e.metadata??{},archived:e.archived===!0,created_at:e.created_at,updated_at:e.updated_at}}function NO(){return{schema_version:0,sources:0,source_revisions:0,chunks:0,wiki_pages:0,citations:0,indexes:0,runs:0,run_events:0,redaction_findings:0,audit_events:0,approval_gates:0,storage_objects:0,embeddings:0,vector_entries:0,reindex_queue:0,knowledge_machines:0,sync_snapshots:0,sync_changes:0,sync_conflicts:0,sync_table_clocks:0,sync_imports:0}}function DO(e,r,t=!1){return{query:e,limit:r,mode:{keyword:!0,catalog:!0,semantic:t},semantic_provider:null,semantic_model:null,semantic_dimensions:null,counts:{keyword_results:0,catalog_results:0,semantic_results:0,merged_results:0},warnings:["knowledge_db_missing"],results:[]}}function B0(e){return e.normalize("NFKC").trim().replace(/\s+/g," ").toLowerCase()}function H0(e,r,t=!1){let i=DO(e,r,t);return{query:e,normalized_query:B0(e),created_at:new Date().toISOString(),mode:i.mode,warnings:i.warnings,search_counts:i.counts,results:[],citations:[],excerpts:[],graph:{citations:[],backlinks:[]},notes:{permissions:[],freshness:[]}}}function U$(e,r,t){let i=t??r.jsonStorePath;if(s(i))return i;if(e==="global"){let n=yn();if(s(n))return n}return i}function V0(e){let r=JSON.stringify(e);return Math.max(1,Math.ceil(r.length/4))}function R$(e,r){let t=(e??"").normalize("NFKC").trim().replace(/\s+/g," ");if(t.length<=r)return t;return`${t.slice(0,Math.max(0,r-1)).trim()}...`}function kO(e,r,t){let i=ye(R$(e,t),r);return{text:i.text,redactions:i.findings.length}}function Q0(e,r,t){let i=e.now??new Date,n=e.source??"search",_=e.purpose??(n==="loops"||n==="runs"?"proposal":"agent_context"),u=(e.query??e.topic??r.query).normalize("NFKC").trim().replace(/\s+/g," "),c=Math.max(1,Math.min(e.maxItems??e.limit??8,50)),d=Math.max(500,Math.min(e.maxTokens??6000,1e5)),o=0,a=r.citations.slice(0,Math.max(c*2,c)).map((k,R)=>{let S=kO(k.quote,t,R<3?220:140);o+=S.redactions;let U=k.source_ref??k.source_uri??k.artifact_path??k.artifact_uri??k.id;return{id:`cite_${g_("sha256").update(`${k.id}\x00${U}`).digest("hex").slice(0,12)}`,kind:k.artifact_uri||k.artifact_path?"artifact":"source",ref:U,source_ref:k.source_ref,source_uri:k.source_uri,artifact_uri:k.artifact_uri,artifact_path:k.artifact_path,run_id:null,run_event_id:null,revision:k.revision,hash:k.hash,chunk_id:k.chunk_id,offsets:{start:k.start_offset,end:k.end_offset},quote_preview:S.text}}),g=new Map(r.citations.map((k,R)=>[k.id,a[R]])),E=r.excerpts.slice(0,Math.max(c*2,c)).map((k)=>{let R=r.results.find((X)=>X.id===k.result_id),S=k.citation_id?g.get(k.citation_id):void 0,U=kO(k.text,t,520);return o+=U.redactions,{id:`ev_${g_("sha256").update(`${k.kind}\x00${k.result_id}\x00${k.citation_id??""}`).digest("hex").slice(0,14)}`,kind:k.kind,title:R$(R?.title??S?.ref??k.kind,100),text_preview:U.text,score:Number(k.score.toFixed(6)),citation_ids:S?[S.id]:[],provenance:{source:n,record_ref:`${k.kind}:${k.result_id}`,created_at:r.created_at,updated_at:null,metadata_keys:[]}}}).sort((k,R)=>R.score-k.score||k.id.localeCompare(R.id)).slice(0,c),l=new Set(E.flatMap((k)=>k.citation_ids)),T=a.filter((k)=>l.has(k.id)),f=Array.from(new Set(r.warnings)),v=`ctx_${g_("sha256").update([n,_,u,f.join(","),E.map((k)=>k.id).join(",")].join("\x00")).digest("hex").slice(0,20)}`,N={ok:!0,format:"knowledge-agent-context-pack",version:1,created_at:i.toISOString(),source:n,purpose:_,query:u,topic:e.topic??null,since:e.since??null,dry_run:!0,idempotency_key:v,budgets:{max_tokens:d,estimated_tokens:0,max_items:c,items_included:E.length,items_available:r.excerpts.length,items_truncated:Math.max(0,r.excerpts.length-E.length),token_budget_exceeded:!1},safety:{raw_artifact_content_included:!1,durable_writes_performed:!1,redactions:o,reminders:["This pack is read-only and performs no durable writes.","Legacy JSON note evidence is bounded and redacted before inclusion."]},citations:T,evidence:E,duplicate_candidates:[],outline:{title:u?`Knowledge context: ${R$(u,80)}`:"Knowledge context",bullets:E.length>0?E.slice(0,5).map((k)=>`${k.id}: ${k.title}`):["No matching bounded evidence was found."],evidence_ids:E.slice(0,8).map((k)=>k.id),duplicate_candidate_ids:[],next_actions:["Use evidence_ids and citation_ids in prompts instead of raw excerpts when possible.","Inspect cited refs only if the bounded preview is insufficient.","Use knowledge build/file-answer only with explicit approval for durable writes."]},warnings:f,message:`${E.length} bounded evidence item(s), estimated under ${d} token(s)`};return N.budgets.estimated_tokens=V0(N),N.budgets.token_budget_exceeded=N.budgets.estimated_tokens>d,N.message=`${N.evidence.length} bounded evidence item(s), estimated ${N.budgets.estimated_tokens}/${d} token(s)`,N}function Z0(){return{schema_version:0,chunks:0,vector_entries:0,missing_embeddings:0,queued:{},stale_revisions:0}}function s0(){return{total_embeddings:0,total_vector_entries:0,indexes:[]}}function p0(e){return{ok:!0,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:0,local_machine_id:e.localMachineId??null,machines:{total:0,rows:[]},snapshots:{total:0,latest:null},changes:{total:0,by_operation:[]},clocks:{total:0,rows:[]},imports:{total:0,latest:null},conflicts:{total:0,by_status:[],open:0},table_counts:{},message:"0 machine(s), 0 open sync conflict(s)"}}function eX(e){let r=e.now??new Date,t=e.source??"search",i=e.purpose??(t==="loops"||t==="runs"?"proposal":"agent_context"),n=(e.query??e.topic??"").normalize("NFKC").trim().replace(/\s+/g," "),_=Math.max(1,Math.min(e.maxItems??e.limit??8,50)),u=Math.max(500,Math.min(e.maxTokens??6000,1e5)),c=`ctx_${g_("sha256").update(["empty",t,i,n,e.topic??"",e.since??""].join("\x00")).digest("hex").slice(0,20)}`;return{ok:!0,format:"knowledge-agent-context-pack",version:1,created_at:r.toISOString(),source:t,purpose:i,query:n,topic:e.topic??null,since:e.since??null,dry_run:!0,idempotency_key:c,budgets:{max_tokens:u,estimated_tokens:0,max_items:_,items_included:0,items_available:0,items_truncated:0,token_budget_exceeded:!1},safety:{raw_artifact_content_included:!1,durable_writes_performed:!1,redactions:0,reminders:["This pack is read-only and performs no durable writes.","No knowledge.db exists for this scope yet."]},citations:[],evidence:[],duplicate_candidates:[],outline:{title:n?`Context for ${n}`:"Knowledge context",bullets:[],evidence_ids:[],duplicate_candidate_ids:[],next_actions:[]},warnings:["knowledge_db_missing"],message:`0 bounded evidence item(s), estimated 0/${u} token(s)`}}function h$(e){let r=e.artifact_store.s3?.prefix?.replace(/^\/+|\/+$/g,"");return r?`${r}/`:null}function rX(e,r){let t=A(e);try{let i=t.query(`SELECT artifact_uri, kind, hash, size_bytes, metadata_json + updated_at = excluded.updated_at`,[_,"wiki/README.md","Wiki",u.uri,u.hash??null,"active",JSON.stringify({artifact_key:u.key,provenance:SE(u)}),i,i]),kA(e,_,"Wiki",u,pb(),i)}}import{createHash as nI}from"crypto";import{Database as TA}from"bun:sqlite";import{cpSync as dI,existsSync as Rt,lstatSync as SA,mkdirSync as NE,readdirSync as gI,readFileSync as xd,renameSync as NA,rmSync as Xd,writeFileSync as tI}from"fs";import{dirname as iI,join as Cr,relative as bA}from"path";function bE(e,r=e){if(!Rt(e))return[];let n=SA(e);if(n.isFile())return[bA(r,e)||"."];if(!n.isDirectory())return[];return gI(e).flatMap((i)=>bE(Cr(e,i),r)).sort()}function uI(e,r){if(r.length===0)return{sha256:null,bytes:0};let n=nI("sha256"),i=0;for(let t of r){let u=Cr(e,t),_=xd(u),c=nI("sha256").update(_).digest("hex");i+=_.byteLength,n.update(t),n.update("\x00"),n.update(c),n.update("\x00")}return{sha256:n.digest("hex"),bytes:i}}function IA(e){if(!Rt(e))return null;let r=JSON.parse(xd(e,"utf8"));return Array.isArray(r.items)?r.items.length:null}function mA(e){if(!Rt(e))return{exists:!1,integrity_check:null,table_counts:{}};let r=new TA(e,{readonly:!0});try{let n=r.query("PRAGMA integrity_check").get(),i=n?Object.values(n)[0]??null:null,t=r.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name").all(),u={};for(let _ of t){let c=`"${_.name.replaceAll('"','""')}"`,d=r.query(`SELECT COUNT(*) AS n FROM ${c}`).get();u[_.name]=d?.n??0}return{exists:!0,integrity_check:i,table_counts:u}}finally{r.close()}}function Pd(e){let r=bE(e.home),n=uI(e.home,r),i=bE(e.artifactsDir),t=uI(e.artifactsDir,i);return{path:e.home,exists:Rt(e.home),file_count:r.length,total_bytes:n.bytes,tree_sha256:n.sha256,json_items:IA(e.jsonStorePath),sqlite:mA(e.knowledgeDbPath),artifacts:{exists:Rt(e.artifactsDir),file_count:i.length,total_bytes:t.bytes,tree_sha256:t.sha256},files:r}}function wA(e,r){if(!r.exists)return!0;if(r.files.filter((i)=>i!=="config.json").length>0)return!1;if(!r.files.includes("config.json"))return!0;try{return JSON.stringify(JSON.parse(xd(e.configPath,"utf8")))===JSON.stringify(Pt())}catch{return!1}}function _I(e,r){return e.file_count===r.file_count&&e.total_bytes===r.total_bytes&&e.tree_sha256===r.tree_sha256&&e.json_items===r.json_items&&e.sqlite.integrity_check===r.sqlite.integrity_check&&JSON.stringify(e.sqlite.table_counts)===JSON.stringify(r.sqlite.table_counts)&&e.artifacts.file_count===r.artifacts.file_count&&e.artifacts.total_bytes===r.artifacts.total_bytes&&e.artifacts.tree_sha256===r.artifacts.tree_sha256}function cI(e){return e.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}Z$/,"Z")}function DA(e){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,e)}function IE(e){return e instanceof Error&&/\b(EBUSY|EPERM)\b/.test(e.message)}function UA(e){let r;for(let n=0;n<8;n+=1)try{Xd(e,{recursive:!0,force:!1});return}catch(i){if(r=i,!IE(i))throw i;DA(50*(n+1))}throw r}function hA(e){return e==="TOMBSTONE.md"||e==="migration.json"||e==="knowledge.db"||e==="knowledge.db-shm"||e==="knowledge.db-wal"||e==="knowledge.db-journal"}function OA(e){for(let r of gI(e)){if(r==="TOMBSTONE.md"||r==="migration.json")continue;try{Xd(Cr(e,r),{recursive:!0,force:!1})}catch(n){if(!IE(n)||!r.startsWith("knowledge.db"))throw n}}}function RA(e,r){try{NA(e,r);return}catch(n){dI(e,r,{recursive:!0,force:!1,errorOnExist:!0,preserveTimestamps:!0});try{UA(e)}catch(i){if(IE(i)){OA(e);return}throw Xd(r,{recursive:!0,force:!0}),i}if(n instanceof Error&&n.message.includes("EXDEV"))return}}function LA(e,r,n){if(!r.exists)return!1;if(!r.files.includes("TOMBSTONE.md")||!r.files.includes("migration.json"))return!1;if(r.files.some((i)=>!hA(i)))return!1;try{let i=JSON.parse(xd(Cr(e.home,"migration.json"),"utf8"));return i.new_path===n&&typeof i.backup_path==="string"}catch{return!1}}function oI(e){let r=e.now??new Date,n=e.approveWrite!==!0,i=Pd(e.legacy),t=Pd(e.current),u=wA(e.current,t),_={legacy_exists:i.exists,current_absent_or_default_scaffold:!t.exists||u,approval_present:e.approveWrite===!0&&Boolean(e.approvedBy),legacy_is_tombstone:!1,backup_matches_legacy:!1,migrated_matches_backup:!1,tombstone_written:!1},c=[];if(!i.exists)return{ok:!0,dry_run:n,approval_required:!1,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:null,tombstone_path:null,legacy_before:i,current_before:t,backup_after:null,current_after:null,checks:_,warnings:c,message:`No legacy knowledge workspace found at ${e.legacy.home}`};if(_.legacy_is_tombstone=LA(e.legacy,i,e.current.home),_.legacy_is_tombstone)return{ok:!0,dry_run:n,approval_required:!1,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:null,tombstone_path:Cr(e.legacy.home,"TOMBSTONE.md"),legacy_before:i,current_before:t,backup_after:null,current_after:t,checks:{..._,tombstone_written:!0},warnings:c,message:`Legacy knowledge workspace already migrated to ${e.current.home}`};if(!_.current_absent_or_default_scaffold)c.push("current_workspace_contains_data");if(!_.approval_present)c.push("write_approval_required");if(n||!_.current_absent_or_default_scaffold||!_.approval_present)return{ok:_.current_absent_or_default_scaffold,dry_run:!0,approval_required:!0,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:`${e.legacy.home}.backup-${cI(r)}`,tombstone_path:Cr(e.legacy.home,"TOMBSTONE.md"),legacy_before:i,current_before:t,backup_after:null,current_after:null,checks:_,warnings:c,message:_.current_absent_or_default_scaffold?`Dry run: would migrate ${e.legacy.home} to ${e.current.home}`:`Cannot migrate while ${e.current.home} contains data`};let d=`${e.legacy.home}.backup-${cI(r)}`;NE(iI(e.current.home),{recursive:!0}),NE(iI(d),{recursive:!0}),dI(e.legacy.home,d,{recursive:!0,force:!1,errorOnExist:!0,preserveTimestamps:!0});let g=Je(d),f=Pd(g);if(_.backup_matches_legacy=_I(i,f),!_.backup_matches_legacy)throw Error(`Legacy knowledge backup verification failed: ${d}`);if(t.exists&&u)Xd(e.current.home,{recursive:!0,force:!0});RA(e.legacy.home,e.current.home);let o=Pd(e.current);_.migrated_matches_backup=_I(f,o),NE(e.legacy.home,{recursive:!0});let a=Cr(e.legacy.home,"TOMBSTONE.md");tI(a,["# Migrated OpenKnowledge Workspace","",`Migrated at: ${r.toISOString()}`,`Approved by: ${e.approvedBy}`,`New path: ${e.current.home}`,`Backup path: ${d}`,"","This directory is a diagnostic tombstone only. OpenKnowledge reads and writes the canonical .hasna/knowledge workspace.",""].join(` +`)),tI(Cr(e.legacy.home,"migration.json"),`${JSON.stringify({migrated_at:r.toISOString(),approved_by:e.approvedBy,new_path:e.current.home,backup_path:d,legacy_before:i,backup_after:f,current_after:o},null,2)} +`),_.tombstone_written=Rt(a);let l=_.backup_matches_legacy&&_.migrated_matches_backup&&_.tombstone_written;return{ok:l,dry_run:!1,approval_required:!1,scope:e.scope,current_home:e.current.home,legacy_home:e.legacy.home,backup_home:d,tombstone_path:a,legacy_before:i,current_before:t,backup_after:f,current_after:o,checks:_,warnings:c,message:l?`Migrated legacy knowledge workspace to ${e.current.home}`:`Migrated legacy knowledge workspace, but verification failed for ${e.current.home}`}}function PA(e){let r=II(e);if(s(lI(r,"knowledge.db"))||s(lI(r,"config.json")))return Jn(r);return Jn(Je(ug(r)).home)}function mE(e){return`${jA()}:${ou("sha256").update(e.home).digest("hex").slice(0,12)}`}function UE(e){return`'${e.replace(/'/g,"'\\''")}'`}function xA(e){return["knowledge",...e].map(UE).join(" ")}function aI(e,r){return`cd ${UE(e)} && knowledge ${r.map(UE).join(" ")}`}function mI(e){return!e||e==="local"||e==="localhost"}function gu(e,r){return{source:e.source,adapter:e.adapter,project_root:r,project_root_source:e.project_root_source,workspace_root:e.workspace_root,workspace_root_source:e.workspace_root_source,open_files_root:e.open_files_root,open_files_root_source:e.open_files_root_source,trust_status:e.trust_status,auth_status:e.auth_status,current:e.current,primary:e.primary,diagnostics:e.diagnostics,repair_hints:e.repair_hints,evidence:e.evidence,cacheability:e.cacheability,warnings:e.warnings}}function wE(e){return{source:e.source,adapter:e.adapter,target:e.target,route:e.route,target_kind:e.targetKind,confidence:e.confidence,evidence:e.evidence,cacheability:e.cacheability}}function XA(e){try{let r=JSON.parse(e);return Array.isArray(r)?r.filter((n)=>typeof n==="string"):[]}catch{return[]}}function lu(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:{}}function _e(e){return typeof e==="string"&&e.length>0?e:null}function KA(e){return typeof e==="number"&&Number.isFinite(e)?e:null}function Kd(e){return typeof e==="boolean"?e:null}function FA(e){return Array.isArray(e)?e.filter((r)=>typeof r==="string"):[]}function wI(e,r,n){let i=lu(e),t=_e(i.observed_at)??_e(r[`${n}_observed_at`]),u=_e(i.source_authority)??_e(r[`${n}_source_authority`]);if(!t||!u)return null;return{observed_at:t,verified_at:_e(i.verified_at),expires_at:_e(i.expires_at)??_e(r[`${n}_expires_at`]),ttl_ms:KA(i.ttl_ms),source_authority:u,confidence:_e(i.confidence)??(n==="route"?_e(r.route_confidence):null),cacheable:Kd(i.cacheable)??Kd(r[`${n}_cacheable`])??!1,stale:Kd(i.stale)??Kd(r[`${n}_stale`])??!1,reasons:FA(i.reasons)}}function JA(e,r){return e.machine_id===r||e.hostname===r||e.ssh_target===r||e.tailscale_dns===r||XA(e.tailscale_ips_json).includes(r)}function fI(e,r){return Gg(e).find((n)=>JA(n,r))??null}function DI(e){return lu(Lt(e.metadata_json).resolver_evidence)}function au(e){return lu(Lt(e.capabilities_json).resolver)}function UI(e){let r=au(e),n=_e(r.route_kind);if(n==="local"||n==="lan"||n==="tailscale"||n==="ssh"||n==="unknown")return n;if(e.tailscale_dns&&e.ssh_target===e.tailscale_dns)return"tailscale";return e.ssh_target?"ssh":"unknown"}function zA(e){let r=au(e),n=_e(r.route_target_kind);if(n==="local"||n==="lan"||n==="tailscale"||n==="ssh"||n==="unknown")return n;return UI(e)}function WA(e){return _e(au(e).route_confidence)??"medium"}function $I(e,r,n){let i=DI(e),t=lu(i.route),u=au(e);return{target:e.ssh_target??e.tailscale_dns??e.hostname??e.machine_id,route:UI(e),targetKind:zA(e),confidence:WA(e),source:"registry",adapter:n.adapter,evidence:{registry:!0,requested_machine_id:r,machine_id:e.machine_id,recorded_at:e.updated_at,route:t},cacheability:wI(t.cacheability,u,"route")??n.cacheability,warnings:[...new Set([...n.warnings,"registry_route_fallback"])]}}function vI(e,r,n){if(!e.workspace_home)return null;let i=DI(e),t=lu(i.workspace),u=au(e);return{ok:!0,source:"registry",adapter:n.adapter,requested_machine_id:r,machine_id:e.machine_id,project_id:_e(t.project_id)??n.project_id,repo_name:_e(t.repo_name)??n.repo_name,project_root:e.workspace_home,project_root_source:_e(u.project_root_source)??"registry",workspace_root:_e(t.workspace_root),workspace_root_source:_e(u.workspace_root_source)??"registry",open_files_root:_e(t.open_files_root),open_files_root_source:_e(u.open_files_root_source)??"registry",trust_status:_e(u.trust_status)??"unknown",auth_status:_e(u.auth_status)??"unknown",current:!1,primary:!1,diagnostics:[],repair_hints:[],evidence:{registry:!0,requested_machine_id:r,machine_id:e.machine_id,recorded_at:e.updated_at,workspace:t},cacheability:wI(t.cacheability,u,"workspace")??n.cacheability,warnings:[...new Set([...n.warnings,"registry_workspace_fallback"])]}}function EI(e){if(!e)return null;let r=e.diagnostics.filter((i)=>i.severity!=="ok"),n=e.repair_hints[0];if(!r.length&&!e.warnings.length&&!n)return null;return[r.length?`workspace diagnostics: ${r.map((i)=>`${i.id}=${i.status}`).join(", ")}`:null,e.warnings.length?`warnings: ${e.warnings.join(", ")}`:null,n?`repair: ${n.shell_command}`:null].filter(Boolean).join("; ")}function Fd(e){return{id:e.id,reason:e.reason,command:["knowledge",...e.args],shell_command:xA(e.args)}}function Jd(e,r){let n=A(e);try{return Number(n.query(r).get()?.count??0)}finally{n.close()}}function MA(e,r){let n=Jd(e,"SELECT COUNT(*) AS count FROM sources WHERE uri LIKE 'open-files://%'"),i=Jd(e,"SELECT COUNT(*) AS count FROM sources WHERE metadata_json LIKE '%open-files://%' OR metadata_json LIKE '%source_ref%'"),t=Jd(e,"SELECT COUNT(*) AS count FROM source_revisions WHERE extracted_text_uri IS NOT NULL"),u=Jd(e,["SELECT COUNT(*) AS count FROM sources","WHERE metadata_json LIKE '%raw_bytes%'","OR metadata_json LIKE '%raw_content%'","OR metadata_json LIKE '%content_base64%'","OR metadata_json LIKE '%source_bytes%'"].join(" ")),_=u===0;return{ok:_,source_of_truth:"open-files",configured_root:r?.open_files_root??null,configured_root_source:r?.open_files_root_source??null,source_refs:{open_files:n,metadata_mentions:i},extracted_text_artifacts:t,raw_source_bytes_owned_by:"open-files",raw_payload_sentinel_hits:u,message:_?`${n} open-files source ref(s); raw source bytes remain owned by open-files`:`${u} raw source payload metadata sentinel(s) found`}}var qA=new Set(["raw","raw_bytes","raw_content","content_base64","source_bytes","source_content","body","body_bytes"]);function hE(e,r=0){if(r>8)return!1;if(!e||typeof e!=="object")return!1;if(Array.isArray(e))return e.some((n)=>hE(n,r+1));for(let[n,i]of Object.entries(e)){if(qA.has(n.toLowerCase()))return!0;if(hE(i,r+1))return!0}return!1}function Lt(e){try{let r=JSON.parse(e);return r&&typeof r==="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function GA(e,r=20,n=200){if(!Number.isFinite(e)||e<=0)return r;return Math.min(Math.floor(e),n)}function HA(e,r=220){let n=e??"";return n.length>r?`${n.slice(0,r)}...`:n}function Ke(e,r=["metadata_json"]){return e.map((n)=>{let i={...n};for(let t of r){let u=i[t];if(typeof u==="string"){let _=t.endsWith("_json")?t.slice(0,-5):t;i[_]=Lt(u),delete i[t]}}return i})}function Le(e,r,n=[]){return e.query(r).all(...n)}function BA(e){if(!s(e))return{exists:!1,read_error:null,items:[]};try{let r=JSON.parse(yA(e,"utf8"));if(!r||!Array.isArray(r.items))return{exists:!0,read_error:"invalid_store_shape",items:[]};return{exists:!0,read_error:null,items:r.items}}catch(r){return{exists:!0,read_error:r instanceof Error?r.message:String(r),items:[]}}}function kI(e){return{id:e.id,short_id:e.short_id??null,title:e.title,content_preview:HA(e.content),url:e.url??null,tags:e.tags??[],metadata:e.metadata??{},archived:e.archived===!0,created_at:e.created_at,updated_at:e.updated_at}}function TI(){return{schema_version:0,sources:0,source_revisions:0,chunks:0,wiki_pages:0,citations:0,indexes:0,runs:0,run_events:0,redaction_findings:0,audit_events:0,approval_gates:0,storage_objects:0,embeddings:0,vector_entries:0,reindex_queue:0,knowledge_machines:0,sync_snapshots:0,sync_changes:0,sync_conflicts:0,sync_table_clocks:0,sync_imports:0}}function hI(e,r,n=!1){return{query:e,limit:r,mode:{keyword:!0,catalog:!0,semantic:n},semantic_provider:null,semantic_model:null,semantic_dimensions:null,counts:{keyword_results:0,catalog_results:0,semantic_results:0,merged_results:0},warnings:["knowledge_db_missing"],results:[]}}function CA(e){return e.normalize("NFKC").trim().replace(/\s+/g," ").toLowerCase()}function YA(e,r,n=!1){let i=hI(e,r,n);return{query:e,normalized_query:CA(e),created_at:new Date().toISOString(),mode:i.mode,warnings:i.warnings,search_counts:i.counts,results:[],citations:[],excerpts:[],graph:{citations:[],backlinks:[]},notes:{permissions:[],freshness:[]}}}function DE(e,r,n){let i=n??r.jsonStorePath;if(s(i))return i;if(e==="global"){let t=jt();if(s(t))return t}return i}function VA(e){let r=JSON.stringify(e);return Math.max(1,Math.ceil(r.length/4))}function OE(e,r){let n=(e??"").normalize("NFKC").trim().replace(/\s+/g," ");if(n.length<=r)return n;return`${n.slice(0,Math.max(0,r-1)).trim()}...`}function SI(e,r,n){let i=je(OE(e,n),r);return{text:i.text,redactions:i.findings.length}}function QA(e,r,n){let i=e.now??new Date,t=e.source??"search",u=e.purpose??(t==="loops"||t==="runs"?"proposal":"agent_context"),_=(e.query??e.topic??r.query).normalize("NFKC").trim().replace(/\s+/g," "),c=Math.max(1,Math.min(e.maxItems??e.limit??8,50)),d=Math.max(500,Math.min(e.maxTokens??6000,1e5)),g=0,f=r.citations.slice(0,Math.max(c*2,c)).map((S,O)=>{let b=SI(S.quote,n,O<3?220:140);g+=b.redactions;let D=S.source_ref??S.source_uri??S.artifact_path??S.artifact_uri??S.id;return{id:`cite_${ou("sha256").update(`${S.id}\x00${D}`).digest("hex").slice(0,12)}`,kind:S.artifact_uri||S.artifact_path?"artifact":"source",ref:D,source_ref:S.source_ref,source_uri:S.source_uri,artifact_uri:S.artifact_uri,artifact_path:S.artifact_path,run_id:null,run_event_id:null,revision:S.revision,hash:S.hash,chunk_id:S.chunk_id,offsets:{start:S.start_offset,end:S.end_offset},quote_preview:b.text}}),o=new Map(r.citations.map((S,O)=>[S.id,f[O]])),a=r.excerpts.slice(0,Math.max(c*2,c)).map((S)=>{let O=r.results.find((y)=>y.id===S.result_id),b=S.citation_id?o.get(S.citation_id):void 0,D=SI(S.text,n,520);return g+=D.redactions,{id:`ev_${ou("sha256").update(`${S.kind}\x00${S.result_id}\x00${S.citation_id??""}`).digest("hex").slice(0,14)}`,kind:S.kind,title:OE(O?.title??b?.ref??S.kind,100),text_preview:D.text,score:Number(S.score.toFixed(6)),citation_ids:b?[b.id]:[],provenance:{source:t,record_ref:`${S.kind}:${S.result_id}`,created_at:r.created_at,updated_at:null,metadata_keys:[]}}}).sort((S,O)=>O.score-S.score||S.id.localeCompare(O.id)).slice(0,c),l=new Set(a.flatMap((S)=>S.citation_ids)),$=f.filter((S)=>l.has(S.id)),v=Array.from(new Set(r.warnings)),k=`ctx_${ou("sha256").update([t,u,_,v.join(","),a.map((S)=>S.id).join(",")].join("\x00")).digest("hex").slice(0,20)}`,T={ok:!0,format:"knowledge-agent-context-pack",version:1,created_at:i.toISOString(),source:t,purpose:u,query:_,topic:e.topic??null,since:e.since??null,dry_run:!0,idempotency_key:k,budgets:{max_tokens:d,estimated_tokens:0,max_items:c,items_included:a.length,items_available:r.excerpts.length,items_truncated:Math.max(0,r.excerpts.length-a.length),token_budget_exceeded:!1},safety:{raw_artifact_content_included:!1,durable_writes_performed:!1,redactions:g,reminders:["This pack is read-only and performs no durable writes.","Legacy JSON note evidence is bounded and redacted before inclusion."]},citations:$,evidence:a,duplicate_candidates:[],outline:{title:_?`Knowledge context: ${OE(_,80)}`:"Knowledge context",bullets:a.length>0?a.slice(0,5).map((S)=>`${S.id}: ${S.title}`):["No matching bounded evidence was found."],evidence_ids:a.slice(0,8).map((S)=>S.id),duplicate_candidate_ids:[],next_actions:["Use evidence_ids and citation_ids in prompts instead of raw excerpts when possible.","Inspect cited refs only if the bounded preview is insufficient.","Use knowledge build/file-answer only with explicit approval for durable writes."]},warnings:v,message:`${a.length} bounded evidence item(s), estimated under ${d} token(s)`};return T.budgets.estimated_tokens=VA(T),T.budgets.token_budget_exceeded=T.budgets.estimated_tokens>d,T.message=`${T.evidence.length} bounded evidence item(s), estimated ${T.budgets.estimated_tokens}/${d} token(s)`,T}function ZA(){return{schema_version:0,chunks:0,vector_entries:0,missing_embeddings:0,queued:{},stale_revisions:0}}function sA(){return{total_embeddings:0,total_vector_entries:0,indexes:[]}}function pA(e){return{ok:!0,scope:e.scope,workspace_home:e.workspaceHome,sqlite_schema_version:0,local_machine_id:e.localMachineId??null,machines:{total:0,rows:[]},snapshots:{total:0,latest:null},changes:{total:0,by_operation:[]},clocks:{total:0,rows:[]},imports:{total:0,latest:null},conflicts:{total:0,by_status:[],open:0},table_counts:{},message:"0 machine(s), 0 open sync conflict(s)"}}function e6(e){let r=e.now??new Date,n=e.source??"search",i=e.purpose??(n==="loops"||n==="runs"?"proposal":"agent_context"),t=(e.query??e.topic??"").normalize("NFKC").trim().replace(/\s+/g," "),u=Math.max(1,Math.min(e.maxItems??e.limit??8,50)),_=Math.max(500,Math.min(e.maxTokens??6000,1e5)),c=`ctx_${ou("sha256").update(["empty",n,i,t,e.topic??"",e.since??""].join("\x00")).digest("hex").slice(0,20)}`;return{ok:!0,format:"knowledge-agent-context-pack",version:1,created_at:r.toISOString(),source:n,purpose:i,query:t,topic:e.topic??null,since:e.since??null,dry_run:!0,idempotency_key:c,budgets:{max_tokens:_,estimated_tokens:0,max_items:u,items_included:0,items_available:0,items_truncated:0,token_budget_exceeded:!1},safety:{raw_artifact_content_included:!1,durable_writes_performed:!1,redactions:0,reminders:["This pack is read-only and performs no durable writes.","No knowledge.db exists for this scope yet."]},citations:[],evidence:[],duplicate_candidates:[],outline:{title:t?`Context for ${t}`:"Knowledge context",bullets:[],evidence_ids:[],duplicate_candidate_ids:[],next_actions:[]},warnings:["knowledge_db_missing"],message:`0 bounded evidence item(s), estimated 0/${_} token(s)`}}function RE(e){let r=e.artifact_store.s3?.prefix?.replace(/^\/+|\/+$/g,"");return r?`${r}/`:null}function r6(e,r){let n=A(e);try{let i=n.query(`SELECT artifact_uri, kind, hash, size_bytes, metadata_json FROM storage_objects - ORDER BY artifact_uri ASC`).all(),n=new Map,_=0,u=0,c=0,d=0,o=0,a=0,g=0,E=0,l=0,T=0,f=0,v=0,N=new Map,k=[],R=[],S=[],U=[],X=r.artifact_store.uri_prefix,j=h$(r);for(let p of i){if(n.set(p.kind,(n.get(p.kind)??0)+1),p.hash?.startsWith("sha256:"))_+=1;if(typeof p.size_bytes==="number"&&p.size_bytes>=0)u+=1,c+=p.size_bytes;if(p.artifact_uri.startsWith(X))d+=1;else if(k.length<5)k.push(p.artifact_uri);let ce=wn(p.metadata_json);if(D$(ce))g+=1;let Ft=typeof ce.key==="string"?ce.key:null;if(!Ft)o+=1;else if(j&&Ft.startsWith(j)){if(a+=1,R.length<5)R.push(Ft)}let _v=typeof ce.artifact_modified_at==="string"?ce.artifact_modified_at:null;if(_v)if(Number.isNaN(Date.parse(_v))){if(l+=1,S.length<5)S.push(p.artifact_uri)}else E+=1;let Xn=ce.provenance&&typeof ce.provenance==="object"&&!Array.isArray(ce.provenance)?ce.provenance:null;if(Xn){T+=1;let eo=typeof Xn.artifact_key==="string"?Xn.artifact_key:null,uv=typeof Xn.generated_from==="string"?Xn.generated_from:"unknown";if(N.set(uv,(N.get(uv)??0)+1),eo){if(f+=1,Ft&&eo!==Ft){if(v+=1,U.length<5)U.push(`${p.artifact_uri}:provenance.artifact_key=${eo}:key=${Ft}`)}}else if(U.length<5)U.push(`${p.artifact_uri}:missing_provenance_artifact_key`)}else if(U.length<5)U.push(`${p.artifact_uri}:missing_provenance`)}let K=i.length-_,W=i.length-u,te=i.length-E-l,q=i.length-T,oe=T-f,Ke=i.length-d,_r=[K>0?`artifact_manifest_missing_hash:${K}`:null,W>0?`artifact_manifest_missing_size:${W}`:null,o>0?`artifact_manifest_missing_key:${o}`:null,Ke>0?`artifact_manifest_uri_prefix_mismatch:${Ke}`:null,a>0?`artifact_manifest_s3_key_contains_storage_prefix:${a}`:null,l>0?`artifact_manifest_invalid_modified_at:${l}`:null,q>0?`artifact_manifest_missing_provenance:${q}`:null,oe>0?`artifact_manifest_missing_provenance_artifact_key:${oe}`:null,v>0?`artifact_manifest_provenance_key_mismatch:${v}`:null,g>0?`artifact_manifest_raw_payload_sentinels:${g}`:null].filter((p)=>Boolean(p)),ur=_r.length===0;return{ok:ur,read_only:!0,storage_type:r.storage_type,artifact_uri_prefix:X,s3:r.artifact_store.s3,artifacts:{total:i.length,by_kind:[...n.entries()].map(([p,ce])=>({kind:p,count:ce})).sort((p,ce)=>p.kind.localeCompare(ce.kind)),with_hash:_,missing_hash:K,with_size:u,missing_size:W,total_size_bytes:c},modified_time:{with_modified_at:E,missing_modified_at:te,invalid_modified_at:l,examples:S},provenance:{with_provenance:T,missing_provenance:q,with_artifact_key:f,missing_artifact_key:oe,artifact_key_mismatches:v,generated_from:[...N.entries()].map(([p,ce])=>({value:p,count:ce})).sort((p,ce)=>p.value.localeCompare(ce.value)),examples:U},uri_prefix:{matching:d,mismatched:Ke,examples:k},keys:{with_key:i.length-o,missing_key:o,prefixed_with_storage_prefix:a,prefixed_examples:R},sync_manifest:{copied_by_sync:!0,generated_artifacts_only:!0,includes_raw_source_bytes:!1,hash_algorithm:"sha256",portable_keys:a===0&&o===0,tracks_modified_time:E>0&&l===0,preserves_provenance:q===0&&oe===0&&v===0},raw_payload_sentinel_hits:g,warnings:_r,message:ur?`${i.length} generated artifact manifest row(s) ready for ${r.storage_type} sync`:`Generated artifact manifest needs attention: ${_r.join(", ")}`}}finally{t.close()}}function tX(e,r){let t=h$(r);if(!t)return[];let i=A(e);try{let n=i.query(`SELECT id, artifact_uri, kind, hash, size_bytes, metadata_json + ORDER BY artifact_uri ASC`).all(),t=new Map,u=0,_=0,c=0,d=0,g=0,f=0,o=0,a=0,l=0,$=0,v=0,k=0,T=new Map,S=[],O=[],b=[],D=[],y=r.artifact_store.uri_prefix,x=RE(r);for(let p of i){if(t.set(p.kind,(t.get(p.kind)??0)+1),p.hash?.startsWith("sha256:"))u+=1;if(typeof p.size_bytes==="number"&&p.size_bytes>=0)_+=1,c+=p.size_bytes;if(p.artifact_uri.startsWith(y))d+=1;else if(S.length<5)S.push(p.artifact_uri);let ce=Lt(p.metadata_json);if(hE(ce))o+=1;let Fn=typeof ce.key==="string"?ce.key:null;if(!Fn)g+=1;else if(x&&Fn.startsWith(x)){if(f+=1,O.length<5)O.push(Fn)}let uk=typeof ce.artifact_modified_at==="string"?ce.artifact_modified_at:null;if(uk)if(Number.isNaN(Date.parse(uk))){if(l+=1,b.length<5)b.push(p.artifact_uri)}else a+=1;let yt=ce.provenance&&typeof ce.provenance==="object"&&!Array.isArray(ce.provenance)?ce.provenance:null;if(yt){$+=1;let eg=typeof yt.artifact_key==="string"?yt.artifact_key:null,_k=typeof yt.generated_from==="string"?yt.generated_from:"unknown";if(T.set(_k,(T.get(_k)??0)+1),eg){if(v+=1,Fn&&eg!==Fn){if(k+=1,D.length<5)D.push(`${p.artifact_uri}:provenance.artifact_key=${eg}:key=${Fn}`)}}else if(D.length<5)D.push(`${p.artifact_uri}:missing_provenance_artifact_key`)}else if(D.length<5)D.push(`${p.artifact_uri}:missing_provenance`)}let F=i.length-u,J=i.length-_,ne=i.length-a-l,G=i.length-$,ge=$-v,Fe=i.length-d,ur=[F>0?`artifact_manifest_missing_hash:${F}`:null,J>0?`artifact_manifest_missing_size:${J}`:null,g>0?`artifact_manifest_missing_key:${g}`:null,Fe>0?`artifact_manifest_uri_prefix_mismatch:${Fe}`:null,f>0?`artifact_manifest_s3_key_contains_storage_prefix:${f}`:null,l>0?`artifact_manifest_invalid_modified_at:${l}`:null,G>0?`artifact_manifest_missing_provenance:${G}`:null,ge>0?`artifact_manifest_missing_provenance_artifact_key:${ge}`:null,k>0?`artifact_manifest_provenance_key_mismatch:${k}`:null,o>0?`artifact_manifest_raw_payload_sentinels:${o}`:null].filter((p)=>Boolean(p)),_r=ur.length===0;return{ok:_r,read_only:!0,storage_type:r.storage_type,artifact_uri_prefix:y,s3:r.artifact_store.s3,artifacts:{total:i.length,by_kind:[...t.entries()].map(([p,ce])=>({kind:p,count:ce})).sort((p,ce)=>p.kind.localeCompare(ce.kind)),with_hash:u,missing_hash:F,with_size:_,missing_size:J,total_size_bytes:c},modified_time:{with_modified_at:a,missing_modified_at:ne,invalid_modified_at:l,examples:b},provenance:{with_provenance:$,missing_provenance:G,with_artifact_key:v,missing_artifact_key:ge,artifact_key_mismatches:k,generated_from:[...T.entries()].map(([p,ce])=>({value:p,count:ce})).sort((p,ce)=>p.value.localeCompare(ce.value)),examples:D},uri_prefix:{matching:d,mismatched:Fe,examples:S},keys:{with_key:i.length-g,missing_key:g,prefixed_with_storage_prefix:f,prefixed_examples:O},sync_manifest:{copied_by_sync:!0,generated_artifacts_only:!0,includes_raw_source_bytes:!1,hash_algorithm:"sha256",portable_keys:f===0&&g===0,tracks_modified_time:a>0&&l===0,preserves_provenance:G===0&&ge===0&&k===0},raw_payload_sentinel_hits:o,warnings:ur,message:_r?`${i.length} generated artifact manifest row(s) ready for ${r.storage_type} sync`:`Generated artifact manifest needs attention: ${ur.join(", ")}`}}finally{n.close()}}function n6(e,r){let n=RE(r);if(!n)return[];let i=A(e);try{let t=i.query(`SELECT id, artifact_uri, kind, hash, size_bytes, metadata_json FROM storage_objects - ORDER BY artifact_uri ASC`).all(),_=[];for(let u of n){let c=wn(u.metadata_json),d=typeof c.key==="string"?c.key:null;if(!d?.startsWith(t))continue;let o=d.slice(t.length);if(!o)continue;_.push({id:u.id,artifact_uri:u.artifact_uri,kind:u.kind,current_key:d,repaired_key:Ze(o),hash:u.hash,size_bytes:u.size_bytes})}return _}finally{i.close()}}function nX(e){let r=["--scope",e.scope,"--json"],t=e.tables?.length?["--tables",e.tables.join(",")]:[],i=[Kd({id:"sync_status",reason:"Inspect local sync registry, clocks, snapshots, and conflicts.",args:["sync","status",...r]})];if(e.machine&&!LO(e.machine))i.push(Kd({id:"sync_dry_run_remote",reason:"Preview remote machine sync before changing either workspace.",args:["sync","dry-run","--machine",e.machine,...e.peerWorkspace?["--peer-workspace",e.peerWorkspace]:[],...t,...r]}));else if(e.peerWorkspace)i.push(Kd({id:"sync_dry_run_peer",reason:"Preview local peer sync before changing either workspace.",args:["sync","dry-run","--peer-workspace",e.peerWorkspace,...t,...r]}));for(let n of e.resolvedWorkspace?.repair_hints??[])i.push({id:n.id,reason:n.reason,command:n.command,shell_command:n.shell_command});if(e.openConflicts>0)i.push(Kd({id:"sync_conflicts",reason:"Review open conflicts before relying on bidirectional sync.",args:["sync","conflicts",...r]}));return i}function iX(){let e=process.env.KNOWLEDGE_SSH_COMMAND?.trim()||"ssh",r=process.env.KNOWLEDGE_SSH_COMMAND_ARGS_JSON;if(!r)return{command:e,argsPrefix:[]};let t;try{t=JSON.parse(r)}catch(i){throw Error(`KNOWLEDGE_SSH_COMMAND_ARGS_JSON must be a JSON string array: ${i instanceof Error?i.message:String(i)}`)}if(!Array.isArray(t)||!t.every((i)=>typeof i==="string"))throw Error("KNOWLEDGE_SSH_COMMAND_ARGS_JSON must be a JSON string array.");return{command:e,argsPrefix:t}}function IO(e,r,t,i){let n=iX(),_=A0(n.command,[...n.argsPrefix,i.target,r],{encoding:"utf8",env:process.env,input:t,maxBuffer:67108864});if((_.status??1)!==0){let u=i.source==="open-machines"?` via ${i.route??"resolved"}:${i.target}`:"";throw Error(`ssh ${e}${u} failed: ${(_.stderr||_.stdout||String(_.status)).trim()}`)}return _.stdout||""}function SO(e,r,t){try{return JSON.parse(t)}catch(i){let n=t.trim().slice(0,240);throw Error(`Remote knowledge ${r} on ${e} did not return JSON. Install a compatible @hasna/knowledge CLI on the remote machine. Output: ${n||String(i)}`)}}function _X(e,r){if(typeof r!=="object"||r===null||!("format"in r)||r.format!=="knowledge-sync-bundle")throw Error(`Remote knowledge sync export on ${e} did not return a knowledge sync bundle. Install @hasna/knowledge 0.2.32 or newer on the remote machine.`);let{protocol_version:t,min_protocol_version:i}=r;if(typeof t!=="number"||typeof i!=="number"||twr)throw Error(`Remote knowledge sync export on ${e} uses an unsupported sync protocol. Install @hasna/knowledge 0.2.32 or newer on both machines.`)}function uX(e,r){if(typeof r!=="object"||r===null||!("ok"in r)||!("target"in r)||!("tables"in r)||!("artifacts"in r)||!("conflicts_created"in r))throw Error(`Remote knowledge sync import on ${e} did not return a sync import result. Install @hasna/knowledge 0.2.32 or newer on the remote machine.`);let{protocol_version:t,min_protocol_version:i}=r;if(typeof t!=="number"||typeof i!=="number"||twr)throw Error(`Remote knowledge sync import on ${e} uses an unsupported sync protocol. Install @hasna/knowledge 0.2.32 or newer on both machines.`)}function cX(e){if(!e)return;let r=e.trim().toLowerCase();if(r==="local"||r==="offline")return"local";if(r==="hosted"||r==="remote"||r==="knowledge.hasna.xyz")return"hosted";throw Error("Invalid setup mode. Use hosted or local.")}class RO{options;ensuredWorkspace;cachedConfig;constructor(e={}){this.options=e}get scope(){return this.options.scope??"global"}get workspace(){return this.ensuredWorkspace??I_(this.options.scope,this.options.cwd)}ensureWorkspace(){if(!this.ensuredWorkspace)this.ensuredWorkspace=Kt(this.workspace.home);return this.ensuredWorkspace}jsonStorePath(){return this.ensureWorkspace().jsonStorePath}config(e={}){let r=e.ensure?this.ensureWorkspace():this.workspace;if(!this.cachedConfig||e.ensure||s(r.configPath))this.cachedConfig=s(r.configPath)?uo(r.configPath):xn();return this.cachedConfig}safetyPolicy(){return Fv(this.config(),this.workspace)}artifactStore(){return To(this.config(),this.ensureWorkspace())}storageContract(){return m_(this.config(),this.workspace,this.scope)}validateStorage(){return vo(this.config(),this.workspace)}migrateLegacyPath(e={}){let r=this.workspace,t=lv(this.options.scope,this.options.cwd),i=gO({scope:this.scope,current:r,legacy:t,approveWrite:e.approveWrite,approvedBy:e.approvedBy});if(!i.dry_run&&i.ok)this.ensuredWorkspace=void 0,this.cachedConfig=void 0;return i}setup(e={}){let r=this.ensureWorkspace(),t=this.config({ensure:!0}),i=cX(e.mode)??t.mode,n=e.apiUrl?gr(e.apiUrl):t.hosted?.api_url?gr(t.hosted.api_url):null,_={...t,mode:i,hosted:{...t.hosted??{},...n?{api_url:n}:{}},storage:e.canonicalExample?gv():t.storage};Ev(r.configPath,_),this.cachedConfig=_;let u=m_(_,r,this.scope);return{ok:!0,mode:i,api_url:_.hosted?.api_url??null,storage_type:_.storage.type,artifact_uri_prefix:u.artifact_store.uri_prefix,canonical_example:u.canonical_example,config_path:r.configPath,next:i==="hosted"?["knowledge auth login --api-key ","knowledge storage status --json","knowledge remote contracts --json"]:["knowledge search ","knowledge "],message:`Set knowledge mode to ${i}`}}authStatus(e=process.env){return Uv(this.config(),e)}saveAuth(e,r=process.env){let t=e.apiUrl??this.config().hosted?.api_url;return Lv({api_key:e.apiKey,email:e.email,org_id:e.orgId,org_slug:e.orgSlug,user_id:e.userId,api_url:t},r)}clearAuth(e=process.env){return bv(e)}remoteContract(){let e=this.storageContract();return Rv({mode:this.config().mode,sourceSchemes:this.config().sources.allowed_schemes,storageType:e.artifact_store.type,artifactUriPrefix:e.artifact_store.uri_prefix})}remoteClient(e=process.env){return U_.fromConfig(this.config(),e)}paths(){let e=this.workspace;return{ok:!0,scope:this.scope,home:e.home,exists:s(e.home),config_path:e.configPath,config_exists:s(e.configPath),json_store_path:e.jsonStorePath,json_store_exists:s(e.jsonStorePath),knowledge_db_path:e.knowledgeDbPath,knowledge_db_exists:s(e.knowledgeDbPath),artifacts_dir:e.artifactsDir,indexes_dir:e.indexesDir,logs_dir:e.logsDir,runs_dir:e.runsDir,schemas_dir:e.schemasDir,wiki_dir:e.wikiDir,config:this.config(),message:e.home}}initDb(){return x(this.ensureWorkspace().knowledgeDbPath)}dbStats(){let e=this.workspace;if(!s(e.knowledgeDbPath))return NO();return lo(e.knowledgeDbPath)}inventory(e={}){let r=this.workspace,t=q0(e.limit),i=e.storePath??r.jsonStorePath,n=Y0(i),_=n.items.filter((a)=>a.archived!==!0),u=e.includeArchived?n.items:_;if(!s(r.knowledgeDbPath)){let a=NO(),g={legacy_items:n.items.length,active_items:_.length,archived_items:n.items.length-_.length,schema_version:a.schema_version,sources:a.sources,source_revisions:a.source_revisions,chunks:a.chunks,wiki_pages:a.wiki_pages,citations:a.citations,indexes:a.indexes,runs:a.runs,run_events:a.run_events,storage_objects:a.storage_objects,embeddings:a.embeddings,vector_entries:a.vector_entries,reindex_queue:a.reindex_queue,redaction_findings:a.redaction_findings,audit_events:a.audit_events,approval_gates:a.approval_gates,knowledge_machines:a.knowledge_machines,sync_snapshots:a.sync_snapshots,sync_changes:a.sync_changes,sync_conflicts:a.sync_conflicts,sync_table_clocks:a.sync_table_clocks,sync_imports:a.sync_imports};return{ok:!0,scope:this.scope,home:r.home,limit:t,paths:{json_store_path:i,json_store_exists:n.exists,knowledge_db_path:r.knowledgeDbPath,knowledge_db_exists:!1,artifacts_dir:r.artifactsDir,indexes_dir:r.indexesDir,logs_dir:r.logsDir,wiki_dir:r.wikiDir},summary:g,legacy_store:{path:i,exists:n.exists,read_error:n.read_error,total_items:n.items.length,active_items:_.length,archived_items:n.items.length-_.length,items_returned:Math.min(u.length,t)},items:u.slice(0,t).map(vO),sources:[],source_revisions:[],chunks:[],wiki_pages:[],indexes:[],storage_objects:[],runs:[],vector_indexes:[],reindex_queue:[],machines:[],sync_conflicts:[],approval_gates:[],audit_events:[],message:`${n.items.length} item(s), 0 source(s), 0 chunk(s), 0 wiki page(s), 0 artifact(s)`}}x(r.knowledgeDbPath);let d=lo(r.knowledgeDbPath),o=A(r.knowledgeDbPath);try{let a=Fe(we(o,` + ORDER BY artifact_uri ASC`).all(),u=[];for(let _ of t){let c=Lt(_.metadata_json),d=typeof c.key==="string"?c.key:null;if(!d?.startsWith(n))continue;let g=d.slice(n.length);if(!g)continue;u.push({id:_.id,artifact_uri:_.artifact_uri,kind:_.kind,current_key:d,repaired_key:Ze(g),hash:_.hash,size_bytes:_.size_bytes})}return u}finally{i.close()}}function t6(e){let r=["--scope",e.scope,"--json"],n=e.tables?.length?["--tables",e.tables.join(",")]:[],i=[Fd({id:"sync_status",reason:"Inspect local sync registry, clocks, snapshots, and conflicts.",args:["sync","status",...r]})];if(e.machine&&!mI(e.machine))i.push(Fd({id:"sync_dry_run_remote",reason:"Preview remote machine sync before changing either workspace.",args:["sync","dry-run","--machine",e.machine,...e.peerWorkspace?["--peer-workspace",e.peerWorkspace]:[],...n,...r]}));else if(e.peerWorkspace)i.push(Fd({id:"sync_dry_run_peer",reason:"Preview local peer sync before changing either workspace.",args:["sync","dry-run","--peer-workspace",e.peerWorkspace,...n,...r]}));for(let t of e.resolvedWorkspace?.repair_hints??[])i.push({id:t.id,reason:t.reason,command:t.command,shell_command:t.shell_command});if(e.openConflicts>0)i.push(Fd({id:"sync_conflicts",reason:"Review open conflicts before relying on bidirectional sync.",args:["sync","conflicts",...r]}));return i}function i6(){let e=process.env.KNOWLEDGE_SSH_COMMAND?.trim()||"ssh",r=process.env.KNOWLEDGE_SSH_COMMAND_ARGS_JSON;if(!r)return{command:e,argsPrefix:[]};let n;try{n=JSON.parse(r)}catch(i){throw Error(`KNOWLEDGE_SSH_COMMAND_ARGS_JSON must be a JSON string array: ${i instanceof Error?i.message:String(i)}`)}if(!Array.isArray(n)||!n.every((i)=>typeof i==="string"))throw Error("KNOWLEDGE_SSH_COMMAND_ARGS_JSON must be a JSON string array.");return{command:e,argsPrefix:n}}function NI(e,r,n,i){let t=i6(),u=AA(t.command,[...t.argsPrefix,i.target,r],{encoding:"utf8",env:process.env,input:n,maxBuffer:67108864});if((u.status??1)!==0){let _=i.source==="open-machines"?` via ${i.route??"resolved"}:${i.target}`:"";throw Error(`ssh ${e}${_} failed: ${(u.stderr||u.stdout||String(u.status)).trim()}`)}return u.stdout||""}function bI(e,r,n){try{return JSON.parse(n)}catch(i){let t=n.trim().slice(0,240);throw Error(`Remote knowledge ${r} on ${e} did not return JSON. Install a compatible @hasna/knowledge CLI on the remote machine. Output: ${t||String(i)}`)}}function u6(e,r){if(typeof r!=="object"||r===null||!("format"in r)||r.format!=="knowledge-sync-bundle")throw Error(`Remote knowledge sync export on ${e} did not return a knowledge sync bundle. Install @hasna/knowledge 0.2.32 or newer on the remote machine.`);let{protocol_version:n,min_protocol_version:i}=r;if(typeof n!=="number"||typeof i!=="number"||nLr)throw Error(`Remote knowledge sync export on ${e} uses an unsupported sync protocol. Install @hasna/knowledge 0.2.32 or newer on both machines.`)}function _6(e,r){if(typeof r!=="object"||r===null||!("ok"in r)||!("target"in r)||!("tables"in r)||!("artifacts"in r)||!("conflicts_created"in r))throw Error(`Remote knowledge sync import on ${e} did not return a sync import result. Install @hasna/knowledge 0.2.32 or newer on the remote machine.`);let{protocol_version:n,min_protocol_version:i}=r;if(typeof n!=="number"||typeof i!=="number"||nLr)throw Error(`Remote knowledge sync import on ${e} uses an unsupported sync protocol. Install @hasna/knowledge 0.2.32 or newer on both machines.`)}function c6(e){if(!e)return;let r=e.trim().toLowerCase();if(r==="local"||r==="offline")return"local";if(r==="hosted"||r==="remote"||r==="knowledge.hasna.xyz")return"hosted";throw Error("Invalid setup mode. Use hosted or local.")}class OI{options;ensuredWorkspace;cachedConfig;constructor(e={}){this.options=e}get scope(){return this.options.scope??"global"}get workspace(){return this.ensuredWorkspace??Nu(this.options.scope,this.options.cwd)}ensureWorkspace(){if(!this.ensuredWorkspace)this.ensuredWorkspace=Jn(this.workspace.home);return this.ensuredWorkspace}jsonStorePath(){return this.ensureWorkspace().jsonStorePath}config(e={}){let r=e.ensure?this.ensureWorkspace():this.workspace;if(!this.cachedConfig||e.ensure||s(r.configPath))this.cachedConfig=s(r.configPath)?_g(r.configPath):Pt();return this.cachedConfig}safetyPolicy(){return Kk(this.config(),this.workspace)}artifactStore(){return fg(this.config(),this.ensureWorkspace())}storageContract(){return Uu(this.config(),this.workspace,this.scope)}validateStorage(){return Eg(this.config(),this.workspace)}migrateLegacyPath(e={}){let r=this.workspace,n=lk(this.options.scope,this.options.cwd),i=oI({scope:this.scope,current:r,legacy:n,approveWrite:e.approveWrite,approvedBy:e.approvedBy});if(!i.dry_run&&i.ok)this.ensuredWorkspace=void 0,this.cachedConfig=void 0;return i}setup(e={}){let r=this.ensureWorkspace(),n=this.config({ensure:!0}),i=c6(e.mode)??n.mode,t=e.apiUrl?or(e.apiUrl):n.hosted?.api_url?or(n.hosted.api_url):null,u={...n,mode:i,hosted:{...n.hosted??{},...t?{api_url:t}:{}},storage:e.canonicalExample?ok():n.storage};ak(r.configPath,u),this.cachedConfig=u;let _=Uu(u,r,this.scope);return{ok:!0,mode:i,api_url:u.hosted?.api_url??null,storage_type:u.storage.type,artifact_uri_prefix:_.artifact_store.uri_prefix,canonical_example:_.canonical_example,config_path:r.configPath,next:i==="hosted"?["knowledge auth login --api-key ","knowledge storage status --json","knowledge remote contracts --json"]:["knowledge search ","knowledge "],message:`Set knowledge mode to ${i}`}}authStatus(e=process.env){return Dk(this.config(),e)}saveAuth(e,r=process.env){let n=e.apiUrl??this.config().hosted?.api_url;return mk({api_key:e.apiKey,email:e.email,org_id:e.orgId,org_slug:e.orgSlug,user_id:e.userId,api_url:n},r)}clearAuth(e=process.env){return wk(e)}remoteContract(){let e=this.storageContract();return Ok({mode:this.config().mode,sourceSchemes:this.config().sources.allowed_schemes,storageType:e.artifact_store.type,artifactUriPrefix:e.artifact_store.uri_prefix})}remoteClient(e=process.env){return Du.fromConfig(this.config(),e)}paths(){let e=this.workspace;return{ok:!0,scope:this.scope,home:e.home,exists:s(e.home),config_path:e.configPath,config_exists:s(e.configPath),json_store_path:e.jsonStorePath,json_store_exists:s(e.jsonStorePath),knowledge_db_path:e.knowledgeDbPath,knowledge_db_exists:s(e.knowledgeDbPath),artifacts_dir:e.artifactsDir,indexes_dir:e.indexesDir,logs_dir:e.logsDir,runs_dir:e.runsDir,schemas_dir:e.schemasDir,wiki_dir:e.wikiDir,config:this.config(),message:e.home}}initDb(){return P(this.ensureWorkspace().knowledgeDbPath)}dbStats(){let e=this.workspace;if(!s(e.knowledgeDbPath))return TI();return og(e.knowledgeDbPath)}inventory(e={}){let r=this.workspace,n=GA(e.limit),i=e.storePath??r.jsonStorePath,t=BA(i),u=t.items.filter((f)=>f.archived!==!0),_=e.includeArchived?t.items:u;if(!s(r.knowledgeDbPath)){let f=TI(),o={legacy_items:t.items.length,active_items:u.length,archived_items:t.items.length-u.length,schema_version:f.schema_version,sources:f.sources,source_revisions:f.source_revisions,chunks:f.chunks,wiki_pages:f.wiki_pages,citations:f.citations,indexes:f.indexes,runs:f.runs,run_events:f.run_events,storage_objects:f.storage_objects,embeddings:f.embeddings,vector_entries:f.vector_entries,reindex_queue:f.reindex_queue,redaction_findings:f.redaction_findings,audit_events:f.audit_events,approval_gates:f.approval_gates,knowledge_machines:f.knowledge_machines,sync_snapshots:f.sync_snapshots,sync_changes:f.sync_changes,sync_conflicts:f.sync_conflicts,sync_table_clocks:f.sync_table_clocks,sync_imports:f.sync_imports};return{ok:!0,scope:this.scope,home:r.home,limit:n,paths:{json_store_path:i,json_store_exists:t.exists,knowledge_db_path:r.knowledgeDbPath,knowledge_db_exists:!1,artifacts_dir:r.artifactsDir,indexes_dir:r.indexesDir,logs_dir:r.logsDir,wiki_dir:r.wikiDir},summary:o,legacy_store:{path:i,exists:t.exists,read_error:t.read_error,total_items:t.items.length,active_items:u.length,archived_items:t.items.length-u.length,items_returned:Math.min(_.length,n)},items:_.slice(0,n).map(kI),sources:[],source_revisions:[],chunks:[],wiki_pages:[],indexes:[],storage_objects:[],runs:[],vector_indexes:[],reindex_queue:[],machines:[],sync_conflicts:[],approval_gates:[],audit_events:[],message:`${t.items.length} item(s), 0 source(s), 0 chunk(s), 0 wiki page(s), 0 artifact(s)`}}P(r.knowledgeDbPath);let d=og(r.knowledgeDbPath),g=A(r.knowledgeDbPath);try{let f=Ke(Le(g,` SELECT s.id, s.uri, @@ -1042,7 +1042,7 @@ Pages should be concise, cited, and organized for both humans and agents. GROUP BY s.id ORDER BY s.updated_at DESC, s.created_at DESC LIMIT ? - `,[t]),["metadata_json","acl_json"]),g=Fe(we(o,` + `,[n]),["metadata_json","acl_json"]),o=Ke(Le(g,` SELECT sr.id, s.uri AS source_uri, @@ -1055,7 +1055,7 @@ Pages should be concise, cited, and organized for both humans and agents. JOIN sources s ON s.id = sr.source_id ORDER BY sr.created_at DESC LIMIT ? - `,[t])),E=Fe(we(o,` + `,[n])),a=Ke(Le(g,` SELECT c.id, c.kind, @@ -1076,22 +1076,22 @@ Pages should be concise, cited, and organized for both humans and agents. LEFT JOIN wiki_pages wp ON wp.id = c.wiki_page_id ORDER BY c.created_at DESC, c.ordinal ASC LIMIT ? - `,[t])),l=Fe(we(o,` + `,[n])),l=Ke(Le(g,` SELECT id, path, title, artifact_uri, content_hash, status, metadata_json, created_at, updated_at FROM wiki_pages ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t])),T=Fe(we(o,` + `,[n])),$=Ke(Le(g,` SELECT id, kind, name, artifact_uri, shard_key, metadata_json, created_at, updated_at FROM knowledge_indexes ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t])),f=Fe(we(o,` + `,[n])),v=Ke(Le(g,` SELECT id, artifact_uri, kind, content_type, hash, size_bytes, metadata_json, created_at, updated_at FROM storage_objects ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t])),v=Fe(we(o,` + `,[n])),k=Ke(Le(g,` SELECT id, type, @@ -1107,18 +1107,18 @@ Pages should be concise, cited, and organized for both humans and agents. FROM runs ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t])),N=we(o,` + `,[n])),T=Le(g,` SELECT provider, model, dimensions, status, COUNT(*) AS entries FROM vector_index_entries GROUP BY provider, model, dimensions, status ORDER BY entries DESC LIMIT ? - `,[t]),k=Fe(we(o,` + `,[n]),S=Ke(Le(g,` SELECT id, kind, target_id, source_uri, reason, status, attempts, metadata_json, created_at, updated_at FROM reindex_queue ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t])),R=Fe(we(o,` + `,[n])),O=Ke(Le(g,` SELECT machine_id, hostname, @@ -1136,7 +1136,7 @@ Pages should be concise, cited, and organized for both humans and agents. FROM knowledge_machines ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t]),["tailscale_ips_json","capabilities_json","metadata_json"]),S=Fe(we(o,` + `,[n]),["tailscale_ips_json","capabilities_json","metadata_json"]),b=Ke(Le(g,` SELECT id, entity_kind, @@ -1153,18 +1153,18 @@ Pages should be concise, cited, and organized for both humans and agents. FROM knowledge_sync_conflicts ORDER BY created_at DESC LIMIT ? - `,[t])),U=Fe(we(o,` + `,[n])),D=Ke(Le(g,` SELECT id, action, target_uri, status, reason, approved_by, metadata_json, created_at, updated_at FROM approval_gates ORDER BY updated_at DESC, created_at DESC LIMIT ? - `,[t])),X=Fe(we(o,` + `,[n])),y=Ke(Le(g,` SELECT id, event_type, action, target_uri, decision, metadata_json, created_at FROM audit_events ORDER BY created_at DESC LIMIT ? - `,[t])),j={legacy_items:n.items.length,active_items:_.length,archived_items:n.items.length-_.length,schema_version:d.schema_version,sources:d.sources,source_revisions:d.source_revisions,chunks:d.chunks,wiki_pages:d.wiki_pages,citations:d.citations,indexes:d.indexes,runs:d.runs,run_events:d.run_events,storage_objects:d.storage_objects,embeddings:d.embeddings,vector_entries:d.vector_entries,reindex_queue:d.reindex_queue,redaction_findings:d.redaction_findings,audit_events:d.audit_events,approval_gates:d.approval_gates,knowledge_machines:d.knowledge_machines,sync_snapshots:d.sync_snapshots,sync_changes:d.sync_changes,sync_conflicts:d.sync_conflicts,sync_table_clocks:d.sync_table_clocks,sync_imports:d.sync_imports};return{ok:!0,scope:this.scope,home:r.home,limit:t,paths:{json_store_path:i,json_store_exists:n.exists,knowledge_db_path:r.knowledgeDbPath,knowledge_db_exists:!0,artifacts_dir:r.artifactsDir,indexes_dir:r.indexesDir,logs_dir:r.logsDir,wiki_dir:r.wikiDir},summary:j,legacy_store:{path:i,exists:n.exists,read_error:n.read_error,total_items:n.items.length,active_items:_.length,archived_items:n.items.length-_.length,items_returned:Math.min(u.length,t)},items:u.slice(0,t).map(vO),sources:a,source_revisions:g,chunks:E,wiki_pages:l,indexes:T,storage_objects:f,runs:v,vector_indexes:N,reindex_queue:k,machines:R,sync_conflicts:S,approval_gates:U,audit_events:X,message:`${n.items.length} item(s), ${d.sources} source(s), ${d.chunks} chunk(s), ${d.wiki_pages} wiki page(s), ${d.storage_objects} artifact(s)`}}finally{o.close()}}assertAppWikiWrite(e){Jn({scope:this.scope,workspace:this.workspace,safetyPolicy:this.safetyPolicy(),allowGlobal:e})}async initAppWiki(e={}){this.assertAppWikiWrite(e.allowGlobal);let r=this.ensureWorkspace();return Vv({scope:this.scope,workspace:r,store:this.artifactStore(),safetyPolicy:this.safetyPolicy(),allowGlobal:e.allowGlobal})}async addAppWikiNote(e){this.assertAppWikiWrite(e.allowGlobal);let r=this.ensureWorkspace();return Qv({scope:this.scope,workspace:r,store:this.artifactStore(),safetyPolicy:this.safetyPolicy(),allowGlobal:e.allowGlobal,title:e.title,content:e.content,tags:e.tags,sourceRefs:e.sourceRefs,path:e.path,metadata:e.metadata})}listAppWikiNotes(e={}){let r=this.workspace;if(!s(r.knowledgeDbPath))return[];return Zv({dbPath:r.knowledgeDbPath,limit:e.limit})}async getAppWikiNote(e,r={}){let t=this.workspace;if(!s(t.knowledgeDbPath))return null;return sv({dbPath:t.knowledgeDbPath,store:this.artifactStore(),id:e,includeContent:r.includeContent})}async addAppWikiSourceRef(e){this.assertAppWikiWrite(e.allowGlobal);let r=this.ensureWorkspace();return pv({scope:this.scope,workspace:r,sourceRef:e.sourceRef,purpose:e.purpose,config:this.config(),safetyPolicy:this.safetyPolicy(),allowGlobal:e.allowGlobal})}async searchAppWiki(e){return this.search(e)}async queryAppWiki(e){return this.retrieveContext(e)}async initWiki(){let e=this.ensureWorkspace();x(e.knowledgeDbPath);let r=await eO(this.artifactStore()),t=A(e.knowledgeDbPath);try{lr(t,r.artifacts),rO(t,r.artifacts)}finally{t.close()}return r}async compileWiki(e={}){let r=this.ensureWorkspace();return QS({...e,dbPath:r.knowledgeDbPath,store:this.artifactStore()})}async fileAnswer(e){let r=this.ensureWorkspace(),t=await this.retrieveContext({query:e.prompt,limit:e.limit,semantic:e.semantic,modelRef:e.modelRef,dimensions:e.dimensions,fake:e.fake});return ZS({dbPath:r.knowledgeDbPath,store:this.artifactStore(),prompt:e.prompt,answer:e.answer,context:t,approveWrite:e.approveWrite})}lintWiki(){let e=this.ensureWorkspace();return sS({dbPath:e.knowledgeDbPath})}async ingestManifest(e){let r=this.ensureWorkspace();return qv({dbPath:r.knowledgeDbPath,input:e,config:this.config(),safetyPolicy:this.safetyPolicy()})}async ingestSource(e,r){let t=this.ensureWorkspace();return X_({dbPath:t.knowledgeDbPath,sourceRef:e,purpose:r,config:this.config(),safetyPolicy:this.safetyPolicy()})}async importRulesProvenance(e={}){let r=e.dryRun!==!1,t=r?this.workspace:this.ensureWorkspace();return WS({root:e.root??this.options.cwd??process.cwd(),scope:this.scope,owner:e.owner,dryRun:r,deprecateLegacy:e.deprecateLegacy,includeLegacy:e.includeLegacy,legacyStorePath:t.jsonStorePath,dbPath:t.knowledgeDbPath,safetyPolicy:this.safetyPolicy(),maxItems:e.maxItems,limit:e.limit})}async resolveSource(e,r={}){let t=this.ensureWorkspace();return h_({dbPath:t.knowledgeDbPath,sourceRef:e,purpose:r.purpose,limit:r.limit,safetyPolicy:this.safetyPolicy()})}async consumeOutbox(e){let r=this.ensureWorkspace();return cS({dbPath:r.knowledgeDbPath,input:e,config:this.config(),safetyPolicy:this.safetyPolicy()})}reindexHealth(e={}){let r=this.workspace;if(!s(r.knowledgeDbPath))return Z0();return RS({...e,dbPath:r.knowledgeDbPath,config:this.config()})}enqueueReindex(e={}){let r=this.ensureWorkspace();return l$({...e,dbPath:r.knowledgeDbPath,config:this.config()})}async refreshEmbeddings(e={}){let r=this.ensureWorkspace();return hS({...e,dbPath:r.knowledgeDbPath,config:this.config()})}providerStatus(e=process.env){return iN(this.config(),e)}modelRegistry(){return mo(this.config())}embeddingStatus(){let e=this.workspace;if(!s(e.knowledgeDbPath))return s0();return gN(e.knowledgeDbPath)}async indexEmbeddings(e={}){let r=this.ensureWorkspace();return P_({...e,dbPath:r.knowledgeDbPath,config:this.config()})}async semanticSearch(e){let r=this.workspace;if(!s(r.knowledgeDbPath))return{provider:"openai",model:"text-embedding-3-small",dimensions:e.dimensions??1536,query:e.query,results:[]};return F_({...e,dbPath:r.knowledgeDbPath,config:this.config()})}async search(e){let r=this.workspace,t=U$(this.scope,r,e.legacyStorePath);if(!s(r.knowledgeDbPath)){if(s(t))return z_({...e,legacyStorePath:t,config:this.config()});return DO(e.query,Math.max(1,Math.min(e.limit??10,100)),e.semantic===!0||e.fake===!0||Boolean(e.modelRef))}return J_({...e,dbPath:r.knowledgeDbPath,legacyStorePath:t,config:this.config()})}async retrieveContext(e){let r=this.workspace,t=U$(this.scope,r,e.legacyStorePath);if(!s(r.knowledgeDbPath)){if(s(t)){let i=await z_({...e,legacyStorePath:t,config:this.config()});return C_(i,{contextChars:e.contextChars})}return H0(e.query,Math.max(1,Math.min(e.limit??10,100)),e.semantic===!0||e.fake===!0||Boolean(e.modelRef))}return Bt({...e,dbPath:r.knowledgeDbPath,legacyStorePath:t,config:this.config()})}async contextPack(e){let r=this.workspace,t=U$(this.scope,r,e.legacyStorePath);if(!s(r.knowledgeDbPath)){let i=(e.query??e.topic??"").trim();if(i&&e.source!=="loops"&&e.source!=="runs"&&s(t)){let n=await z_({...e,query:i,legacyStorePath:t,config:this.config()}),_=C_(n,{contextChars:e.contextChars});return Q0(e,_,this.safetyPolicy())}return eX(e)}return xN({...e,dbPath:r.knowledgeDbPath,legacyStorePath:t,config:this.config(),safetyPolicy:this.safetyPolicy()})}async runPrompt(e){let r=this.ensureWorkspace(),t=e.legacyStorePath??r.jsonStorePath;if(!e.legacyStorePath)Fn(t);return UN({...e,dbPath:r.knowledgeDbPath,legacyStorePath:t,config:this.config()})}async webSearch(e){let r=this.ensureWorkspace();return CS({...e,dbPath:r.knowledgeDbPath,config:this.config(),safetyPolicy:this.safetyPolicy()})}async machineTopology(e={}){let r=this.workspace;return OS({...e,knowledge:{scope:this.scope,workspace_home:r.home}})}async machinePreflight(e={}){let r=this.workspace;return US({...e,knowledge:{scope:this.scope,workspace_home:r.home}})}syncStatus(){let e=this.workspace;if(!s(e.knowledgeDbPath))return p0({scope:this.scope,workspaceHome:e.home});return nk({dbPath:e.knowledgeDbPath,scope:this.scope,workspaceHome:e.home})}async syncDoctor(e={}){let r=this.ensureWorkspace();x(r.knowledgeDbPath);let t=this.syncStatus(),i=this.storageContract(),n=this.validateStorage(),_=rX(r.knowledgeDbPath,i),u=e.machine?.trim()||null,c=e.peerWorkspace?.trim()||null,d=[],o=null,a=null;if(u&&!LO(u)){let f=await g$({machineId:u,includeTailscale:e.includeTailscale});o=b$(f),d.push(...f.warnings)}if(u||c){let f=await wd({machineId:u??L$(r),peerWorkspace:c,includeTailscale:e.includeTailscale});if(u&&!c&&(o?.source==="raw"||!f.ok||!f.project_root)){let v=aO(r.knowledgeDbPath,u);if(v){if(o?.source==="raw"&&v.ssh_target)o=b$(TO(v,u,{target:o.target,route:o.route,targetKind:o.target_kind,confidence:o.confidence,source:o.source,adapter:o.adapter,evidence:o.evidence,cacheability:o.cacheability,warnings:[]}));if(!f.ok||!f.project_root){let N=fO(v,u,f);if(N)a=o_(N,N.project_root),d.push(...N.warnings)}}}a=f.ok&&f.project_root?o_(f,f.project_root):a??{...o_(f,c??""),project_root:f.project_root??c??""},d.push(...f.warnings)}if(!n.ok)d.push(...n.errors.map((f)=>`storage:${f}`));let g=M0(r.knowledgeDbPath,a);if(!g.ok)d.push("open_files_boundary_raw_payload_sentinels");if(!_.ok)d.push(..._.warnings);let E=a?.diagnostics.filter((f)=>f.severity==="fail")??[],l=n.ok&&_.ok&&g.ok&&E.length===0&&(a?.project_root!==""||!a),T=nX({scope:this.scope,machine:u,peerWorkspace:c,tables:e.tables,resolvedWorkspace:a,openConflicts:t.conflicts.open});return{ok:l,read_only:!0,generated_at:new Date().toISOString(),scope:this.scope,workspace_home:r.home,database:{sqlite_schema_version:t.sqlite_schema_version,table_counts:t.table_counts},storage:{contract:i,validation:n,artifact_manifest:_},sync:{machines:t.machines.total,snapshots:t.snapshots.total,clocks:t.clocks.total,imports:t.imports.total,open_conflicts:t.conflicts.open,table_clocks:t.clocks.rows},open_files:g,resolved_route:o,resolved_workspace:a,recommended_commands:T,warnings:[...new Set(d)],message:l?`Sync readiness ok: ${t.clocks.total} table clock(s), ${t.conflicts.open} open conflict(s)`:`Sync readiness needs attention: ${[...new Set(d)].join(", ")||"workspace diagnostics failed"}`}}repairArtifactManifestKeys(e={}){let r=this.ensureWorkspace();x(r.knowledgeDbPath);let t=this.storageContract(),i=h$(t),n=tX(r.knowledgeDbPath,t),_=e.dryRun===!0||e.approveWrite!==!0;if(n.length===0)return{ok:!0,dry_run:_,approval_required:!1,storage_type:t.storage_type,storage_prefix:i,candidates:n,repaired:0,audit_event_id:null,message:"No legacy S3 artifact manifest keys found"};if(e.dryRun===!0)return{ok:!0,dry_run:!0,approval_required:!1,storage_type:t.storage_type,storage_prefix:i,candidates:n,repaired:0,audit_event_id:null,message:`Would repair ${n.length} legacy S3 artifact manifest key(s)`};if(e.approveWrite!==!0||!e.approvedBy)return{ok:!1,dry_run:!0,approval_required:!0,storage_type:t.storage_type,storage_prefix:i,candidates:n,repaired:0,audit_event_id:null,message:"Artifact key repair requires --approve-write and --approved-by "};let u=A(r.knowledgeDbPath);try{let c=new Date().toISOString();u.transaction((a)=>{let g=u.query("UPDATE storage_objects SET metadata_json = ?, updated_at = ? WHERE id = ?"),E=u.query("SELECT id, metadata_json FROM storage_objects").all(),l=new Map(E.map((T)=>[T.id,wn(T.metadata_json)]));for(let T of a){let f=l.get(T.id)??{};f.key=T.repaired_key,g.run(JSON.stringify(f),c,T.id)}})(n);let o=re(u,{event_type:"artifact_manifest_key_repair",action:"storage.artifact_manifest.repair_keys",target_uri:`knowledge-storage://${r.home}/storage_objects`,decision:"allow",metadata:{approved_by:e.approvedBy,repaired:n.length,storage_type:t.storage_type,storage_prefix:i,artifact_uris:n.map((a)=>a.artifact_uri)}});return{ok:!0,dry_run:!1,approval_required:!1,storage_type:t.storage_type,storage_prefix:i,candidates:n,repaired:n.length,audit_event_id:o,message:`Repaired ${n.length} legacy S3 artifact manifest key(s)`}}finally{u.close()}}async createSyncSnapshot(e={}){let r=this.ensureWorkspace(),t=await this.machineTopology({includeTailscale:e.includeTailscale!==!1});return tk({dbPath:r.knowledgeDbPath,scope:this.scope,workspaceHome:r.home,storage:this.storageContract(),topology:t,machineId:e.machineId})}syncConflicts(e={}){let r=this.workspace;if(!s(r.knowledgeDbPath))return[];return ik(r.knowledgeDbPath,e)}syncConflict(e){let r=this.ensureWorkspace(),t=eu(r.knowledgeDbPath,e);if(!t)throw Error(`Sync conflict not found: ${e}`);return t}proposeSyncConflictResolution(e){let r=this.ensureWorkspace();return Hn(r.knowledgeDbPath,e)}async proposeSyncConflictResolutionWithAi(e){let r=this.ensureWorkspace();return _S({dbPath:r.knowledgeDbPath,id:e.id,config:this.config(),modelRef:e.modelRef,fake:e.fake,env:e.env})}resolveSyncConflict(e){let r=this.ensureWorkspace(),t=Hn(r.knowledgeDbPath,e.id);if(e.approveWrite!==!0||!e.approvedBy)return{ok:!1,approval_required:!0,conflict:t.conflict,proposal:t,message:"Sync conflict resolution requires --approve-write and --approved-by "};let i=ck(r.knowledgeDbPath,{id:e.id,strategy:e.strategy??t.proposed_strategy,approvedBy:e.approvedBy,proposedPatchUri:e.proposedPatchUri}),n=A(r.knowledgeDbPath);try{let _=re(n,{event_type:"sync_conflict_resolution",action:"sync.conflict.resolve",target_uri:`knowledge-sync-conflict://${e.id}`,decision:"allow",metadata:{conflict_id:e.id,entity_kind:i.entity_kind,entity_id:i.entity_id,strategy:i.resolution_strategy,approved_by:i.approved_by,proposed_patch_uri:i.proposed_patch_uri}});return{ok:!0,approval_required:!1,conflict:i,audit_event_id:_,message:`Resolved sync conflict ${e.id}`}}finally{n.close()}}syncMachines(){let e=this.workspace;if(!s(e.knowledgeDbPath))return[];return Go(e.knowledgeDbPath)}exportSyncBundle(e={}){let r=this.ensureWorkspace();return x(r.knowledgeDbPath),Bn({dbPath:r.knowledgeDbPath,scope:this.scope,workspaceHome:r.home,storage:this.storageContract(),machineId:e.machineId??null,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:e.recordClocks!==!1})}async importSyncBundle(e){let r=this.ensureWorkspace();return x(r.knowledgeDbPath),p_({targetDbPath:r.knowledgeDbPath,targetScope:this.scope,targetWorkspaceHome:r.home,targetStorage:this.storageContract(),targetStore:this.artifactStore(),bundle:e.bundle,direction:e.direction??"import",dryRun:e.dryRun,localMachineId:e.machineId??null})}async syncRemotePeer(e){let r=e.direction??"both",t=e.dryRun===!0,i=this.ensureWorkspace();x(i.knowledgeDbPath);let n=e.tables?.length?["--tables",e.tables.join(",")]:[],_=e.includeArtifactContent===!1?["--no-artifact-content"]:[],u=["--scope",this.scope,"--json"],c=await g$({machineId:e.machine,includeTailscale:e.includeTailscale}),d=await wd({machineId:e.machine,peerWorkspace:e.peerWorkspace,includeTailscale:e.includeTailscale});if(!e.peerWorkspace&&c.source==="raw"||!d.ok||!d.project_root){let l=aO(i.knowledgeDbPath,e.machine);if(l){if(!e.peerWorkspace&&c.source==="raw"&&l.ssh_target)c=TO(l,e.machine,c);if(!d.ok||!d.project_root){let T=fO(l,e.machine,d);if(T)d=T}}}if(!d.ok||!d.project_root)throw Error([`Unable to resolve peer workspace for ${e.machine}.`,"Pass --peer-workspace or configure workspace path mapping in machines.",d.warnings.length?`Warnings: ${d.warnings.join(", ")}`:null].filter(Boolean).join(" "));let o=d.project_root,a={ok:!0,dry_run:t,direction:r,transport:"ssh",machine:e.machine,resolved_machine:c.target,resolved_route:b$(c),resolved_workspace:o_(d,d.project_root),peer_workspace:o,message:""},g=!1,E=()=>{if(t||g)return;pN(i.knowledgeDbPath,{machineId:e.machine,route:c,workspace:d}),g=!0};if(r==="pull"||r==="both"){let l=EO(o,["sync","export",...u,...n,..._]),T=IO(e.machine,l,void 0,c),f=SO(e.machine,"sync export",T);_X(e.machine,f),a.pull=await this.importSyncBundle({bundle:f,dryRun:t,direction:"pull",machineId:e.machineId??null})}if(r==="push"||r==="both"){E();let l=this.exportSyncBundle({machineId:e.machineId??null,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:!t}),T=EO(o,["sync","import",...u,...t?["--dry-run"]:[]]),f=SO(e.machine,"sync import",IO(e.machine,T,JSON.stringify(l),c));uX(e.machine,f),a.push=f}return a.ok=(a.pull?.ok??!0)&&(a.push?.ok??!0),E(),a.message=[$O(a.resolved_workspace),a.pull?`pull: ${a.pull.message}`:null,a.push?`push: ${a.push.message}`:null].filter(Boolean).join("; "),a}async syncPeer(e){let r=e.direction??"both",t=this.ensureWorkspace();x(t.knowledgeDbPath);let i=OO(e.peerWorkspace),n=x0(i);x(n.knowledgeDbPath);let _=uo(n.configPath),u=m_(_,n,this.scope),c=To(_,n),d=e.machineId??L$(t),o=L$(n),a=await wd({machineId:e.machineId??o,peerWorkspace:i,includeTailscale:!1}),g=()=>Bn({dbPath:t.knowledgeDbPath,scope:this.scope,workspaceHome:t.home,storage:this.storageContract(),machineId:d,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:e.dryRun!==!0}),E=()=>Bn({dbPath:n.knowledgeDbPath,scope:this.scope,workspaceHome:n.home,storage:u,machineId:o,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:e.dryRun!==!0}),l={ok:!0,dry_run:e.dryRun===!0,direction:r,resolved_workspace:o_(a,a.project_root??i),message:""};if(r==="pull"||r==="both")l.pull=await p_({targetDbPath:t.knowledgeDbPath,targetScope:this.scope,targetWorkspaceHome:t.home,targetStorage:this.storageContract(),targetStore:this.artifactStore(),bundle:E(),targetBundle:g(),direction:"pull",dryRun:e.dryRun,localMachineId:d});if(r==="push"||r==="both")l.push=await p_({targetDbPath:n.knowledgeDbPath,targetScope:this.scope,targetWorkspaceHome:n.home,targetStorage:u,targetStore:c,bundle:g(),targetBundle:E(),direction:"push",dryRun:e.dryRun,localMachineId:o});return l.ok=(l.pull?.ok??!0)&&(l.push?.ok??!0),l.message=[$O(l.resolved_workspace),l.pull?`pull: ${l.pull.message}`:null,l.push?`push: ${l.push.message}`:null].filter(Boolean).join("; "),l}}function Jd(e={}){return new RO(e)}import{parseContract as dX,SCHEMA_IDS as hO}from"@hasna/contracts";var wO="@hasna/knowledge";function oX(e){if(!Number.isFinite(e??0))return 20;return Math.max(1,Math.min(100,Math.trunc(e??20)))}function gX(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"project"}function a_(e,r=180){let t=String(e??"").replace(/\s+/g," ").trim();if(t.length<=r)return t;return`${t.slice(0,Math.max(0,r-3))}...`}function de(e,r=""){return typeof e==="string"&&e.length>0?e:r}function T_(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function An(e){if(typeof e!=="string"||e.length===0)return;let r=e.includes("T")?e:`${e.replace(" ","T")}Z`,t=new Date(r);return Number.isNaN(t.valueOf())?void 0:t.toISOString()}function w$(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)}function He(e,r,t,i,n=[]){return{kind:e,id:r,name:t,uri:i&&w$(i)?i:void 0,externalId:r,sourcePackage:wO,tags:n}}function lX(e){return[...e.items.flatMap((t)=>[t.updated_at,t.created_at]),...e.sources.flatMap((t)=>[t.updated_at,t.created_at]),...e.chunks.map((t)=>t.created_at),...e.wiki_pages.flatMap((t)=>[t.updated_at,t.created_at]),...e.storage_objects.flatMap((t)=>[t.updated_at,t.created_at]),...e.runs.flatMap((t)=>[t.updated_at,t.created_at]),...e.reindex_queue.flatMap((t)=>[t.updated_at,t.created_at]),...e.sync_conflicts.map((t)=>t.created_at),...e.approval_gates.flatMap((t)=>[t.updated_at,t.created_at])].map(An).filter(Boolean).sort((t,i)=>i.localeCompare(t))[0]}function EX(e){if(!e)return"unknown";let r=Date.now()-new Date(e).valueOf();if(!Number.isFinite(r))return"unknown";return r>2592000000?"stale":"fresh"}function aX(e){let r=(t)=>{let i=String(t??"").toLowerCase();return i!==""&&!["done","complete","completed","resolved","succeeded","skipped"].includes(i)};return e.reindex_queue.filter((t)=>r(t.status)).length+e.sync_conflicts.filter((t)=>r(t.status)).length+e.approval_gates.filter((t)=>r(t.status)).length}function TX(e,r){let t=[];for(let i of e.items.slice(0,r))t.push({id:`item_${i.id}`,title:i.title,summary:a_(i.content_preview),status:i.archived?"archived":"active",priority:"medium",timestamp:An(i.updated_at??i.created_at),resourceRefs:[He("knowledge",i.id,i.title,`knowledge://item/${encodeURIComponent(i.id)}`,i.tags)],evidenceRefs:i.url?[{id:`url_${i.id}`,kind:"url",uri:i.url,summary:"Source URL for this knowledge item."}]:[],metadata:{source:"legacy_store",archived:i.archived,tags:i.tags}});for(let i of e.sources.slice(0,Math.max(0,r-t.length))){let n=de(i.id,de(i.uri,"source")),_=de(i.title,de(i.uri,n)),u=de(i.uri,`knowledge://source/${encodeURIComponent(n)}`);t.push({id:`source_${n}`,title:_,summary:a_(`${T_(i.chunks)} chunk(s), ${T_(i.revisions)} revision(s)`),status:T_(i.chunks)>0?"indexed":"source",priority:"medium",timestamp:An(i.updated_at??i.created_at),resourceRefs:[He("document",n,_,u)],evidenceRefs:w$(u)?[{id:`source_${n}`,kind:"url",uri:u,summary:"Source reference."}]:[],metadata:{source:"knowledge_db.sources",kind:i.kind,chunks:T_(i.chunks),revisions:T_(i.revisions)}})}for(let i of e.chunks.slice(0,Math.max(0,r-t.length))){let n=de(i.id,"chunk"),_=de(i.source_uri);t.push({id:`chunk_${n}`,title:de(i.wiki_title,_?`Chunk from ${_}`:`Knowledge chunk ${n}`),summary:a_(i.text_preview),status:"chunk",priority:"low",timestamp:An(i.created_at),resourceRefs:[He("context_pack",n,de(i.wiki_title,n),`knowledge://chunk/${encodeURIComponent(n)}`)],evidenceRefs:_&&w$(_)?[{id:`chunk_source_${n}`,kind:"url",uri:_,summary:"Chunk source reference."}]:[],metadata:{source:"knowledge_db.chunks",source_uri:_||void 0,token_count:i.token_count,ordinal:i.ordinal}})}for(let i of e.sync_conflicts.slice(0,Math.max(0,r-t.length))){let n=de(i.id,"sync_conflict");t.push({id:`sync_conflict_${n}`,title:`Sync conflict: ${de(i.entity_kind,"entity")}/${de(i.entity_id,n)}`,summary:a_(`Status ${de(i.status,"unknown")}; strategy ${de(i.resolution_strategy,"none")}.`),status:de(i.status,"unknown"),priority:"critical",timestamp:An(i.created_at),resourceRefs:[He("finding",n,"Knowledge sync conflict",`knowledge://sync-conflict/${encodeURIComponent(n)}`)],metadata:{source:"knowledge_db.sync_conflicts",local_machine_id:i.local_machine_id,remote_machine_id:i.remote_machine_id}})}for(let i of e.reindex_queue.slice(0,Math.max(0,r-t.length))){let n=de(i.id,"reindex");t.push({id:`reindex_${n}`,title:`Reindex ${de(i.kind,"item")}: ${de(i.target_id,n)}`,summary:a_(i.reason),status:de(i.status,"unknown"),priority:de(i.status).toLowerCase()==="failed"?"high":"medium",timestamp:An(i.updated_at??i.created_at),resourceRefs:[He("action",n,"Knowledge reindex work item",`knowledge://reindex/${encodeURIComponent(n)}`)],metadata:{source:"knowledge_db.reindex_queue",attempts:i.attempts,source_uri:i.source_uri}})}return t.slice(0,r)}function AO(e,r={}){let t=oX(r.limit),i=new Date().toISOString(),n=gX(e),u=(r.service??Jd({scope:r.scope??"project",cwd:r.cwd})).inventory({limit:t,storePath:r.storePath,includeArchived:r.includeArchived}),c=lX(u),d=EX(c),o=u.summary.active_items+u.summary.sources+u.summary.chunks+u.summary.wiki_pages+u.summary.storage_objects,a=aX(u),g=o===0?"empty":d==="stale"?"stale":"ready",E=TX(u,t),l={schema:hO.projectPanel,id:`knowledge_panel_${n}`,createdAt:i,projectId:n,provider:{kind:"knowledge",id:`knowledge_${n}`,name:"Knowledge",sourcePackage:wO,externalId:u.home},kind:"knowledge",title:"Knowledge",summary:g==="empty"?"No project knowledge items, sources, chunks, or wiki pages are available yet.":`${u.summary.active_items} active note(s), ${u.summary.sources} source(s), ${u.summary.chunks} chunk(s), and ${u.summary.wiki_pages} wiki page(s).`,state:g,stateReason:g==="stale"?"Latest indexed knowledge activity is older than 30 days.":void 0,generatedAt:i,freshness:d,metrics:[{id:"active_items",label:"Active notes",value:u.summary.active_items,status:u.summary.active_items>0?"good":"unknown"},{id:"sources",label:"Sources",value:u.summary.sources,status:u.summary.sources>0?"good":"unknown"},{id:"chunks",label:"Chunks",value:u.summary.chunks,status:u.summary.chunks>0?"good":"unknown"},{id:"wiki_pages",label:"Wiki pages",value:u.summary.wiki_pages,status:u.summary.wiki_pages>0?"good":"unknown"},{id:"artifacts",label:"Artifacts",value:u.summary.storage_objects,status:u.summary.storage_objects>0?"good":"unknown"},{id:"vector_entries",label:"Vector entries",value:u.summary.vector_entries,status:u.summary.vector_entries>0?"good":"unknown"},{id:"unresolved",label:"Unresolved",value:a,status:a>0?"warning":"good"}],items:E,actions:[He("action","knowledge:inventory","Inspect knowledge inventory"),He("action","knowledge:context-pack","Build cited context pack"),He("action","knowledge:ingest","Ingest project source")],resourceRefs:[He("project",n,e,`project://${n}`),He("knowledge",`home_${n}`,"Knowledge workspace",`knowledge://workspace/${encodeURIComponent(n)}`),He("artifact",`db_${n}`,"Knowledge database",`knowledge://db/${encodeURIComponent(n)}`)],renderFragment:{renderer:"json_render",title:"Knowledge",spec:{component:"project.knowledge.summary",metrics:["active_items","sources","chunks","wiki_pages","unresolved"],itemLimit:t}},metadata:{scope:u.scope,home:u.home,json_store_exists:u.paths.json_store_exists,latest_activity_at:c}};return dX(hO.projectPanel,l)}function XO(e){let r=[`${e.title}: ${e.state}`,e.summary??"",...e.metrics.map((t)=>`${t.label}: ${t.value}`)].filter(Boolean);if(e.items.length>0){r.push("Items:");for(let t of e.items.slice(0,10))if(r.push(`- ${t.title}${t.status?` [${t.status}]`:""}`),t.summary)r.push(` ${t.summary}`)}return r.join(` -`)}var A$=[`CREATE TABLE IF NOT EXISTS sources ( + `,[n])),x={legacy_items:t.items.length,active_items:u.length,archived_items:t.items.length-u.length,schema_version:d.schema_version,sources:d.sources,source_revisions:d.source_revisions,chunks:d.chunks,wiki_pages:d.wiki_pages,citations:d.citations,indexes:d.indexes,runs:d.runs,run_events:d.run_events,storage_objects:d.storage_objects,embeddings:d.embeddings,vector_entries:d.vector_entries,reindex_queue:d.reindex_queue,redaction_findings:d.redaction_findings,audit_events:d.audit_events,approval_gates:d.approval_gates,knowledge_machines:d.knowledge_machines,sync_snapshots:d.sync_snapshots,sync_changes:d.sync_changes,sync_conflicts:d.sync_conflicts,sync_table_clocks:d.sync_table_clocks,sync_imports:d.sync_imports};return{ok:!0,scope:this.scope,home:r.home,limit:n,paths:{json_store_path:i,json_store_exists:t.exists,knowledge_db_path:r.knowledgeDbPath,knowledge_db_exists:!0,artifacts_dir:r.artifactsDir,indexes_dir:r.indexesDir,logs_dir:r.logsDir,wiki_dir:r.wikiDir},summary:x,legacy_store:{path:i,exists:t.exists,read_error:t.read_error,total_items:t.items.length,active_items:u.length,archived_items:t.items.length-u.length,items_returned:Math.min(_.length,n)},items:_.slice(0,n).map(kI),sources:f,source_revisions:o,chunks:a,wiki_pages:l,indexes:$,storage_objects:v,runs:k,vector_indexes:T,reindex_queue:S,machines:O,sync_conflicts:b,approval_gates:D,audit_events:y,message:`${t.items.length} item(s), ${d.sources} source(s), ${d.chunks} chunk(s), ${d.wiki_pages} wiki page(s), ${d.storage_objects} artifact(s)`}}finally{g.close()}}assertAppWikiWrite(e){zt({scope:this.scope,workspace:this.workspace,safetyPolicy:this.safetyPolicy(),allowGlobal:e})}async initAppWiki(e={}){this.assertAppWikiWrite(e.allowGlobal);let r=this.ensureWorkspace();return Vk({scope:this.scope,workspace:r,store:this.artifactStore(),safetyPolicy:this.safetyPolicy(),allowGlobal:e.allowGlobal})}async addAppWikiNote(e){this.assertAppWikiWrite(e.allowGlobal);let r=this.ensureWorkspace();return Qk({scope:this.scope,workspace:r,store:this.artifactStore(),safetyPolicy:this.safetyPolicy(),allowGlobal:e.allowGlobal,title:e.title,content:e.content,tags:e.tags,sourceRefs:e.sourceRefs,path:e.path,metadata:e.metadata})}listAppWikiNotes(e={}){let r=this.workspace;if(!s(r.knowledgeDbPath))return[];return Zk({dbPath:r.knowledgeDbPath,limit:e.limit})}async getAppWikiNote(e,r={}){let n=this.workspace;if(!s(n.knowledgeDbPath))return null;return sk({dbPath:n.knowledgeDbPath,store:this.artifactStore(),id:e,includeContent:r.includeContent})}async addAppWikiSourceRef(e){this.assertAppWikiWrite(e.allowGlobal);let r=this.ensureWorkspace();return pk({scope:this.scope,workspace:r,sourceRef:e.sourceRef,purpose:e.purpose,config:this.config(),safetyPolicy:this.safetyPolicy(),allowGlobal:e.allowGlobal})}async searchAppWiki(e){return this.search(e)}async queryAppWiki(e){return this.retrieveContext(e)}async initWiki(){let e=this.ensureWorkspace();P(e.knowledgeDbPath);let r=await eI(this.artifactStore()),n=A(e.knowledgeDbPath);try{lr(n,r.artifacts),rI(n,r.artifacts)}finally{n.close()}return r}async compileWiki(e={}){let r=this.ensureWorkspace();return Qb({...e,dbPath:r.knowledgeDbPath,store:this.artifactStore()})}async fileAnswer(e){let r=this.ensureWorkspace(),n=await this.retrieveContext({query:e.prompt,limit:e.limit,semantic:e.semantic,modelRef:e.modelRef,dimensions:e.dimensions,fake:e.fake});return Zb({dbPath:r.knowledgeDbPath,store:this.artifactStore(),prompt:e.prompt,answer:e.answer,context:n,approveWrite:e.approveWrite})}lintWiki(){let e=this.ensureWorkspace();return sb({dbPath:e.knowledgeDbPath})}async ingestManifest(e){let r=this.ensureWorkspace();return Gk({dbPath:r.knowledgeDbPath,input:e,config:this.config(),safetyPolicy:this.safetyPolicy()})}async ingestSource(e,r){let n=this.ensureWorkspace();return yu({dbPath:n.knowledgeDbPath,sourceRef:e,purpose:r,config:this.config(),safetyPolicy:this.safetyPolicy()})}async importRulesProvenance(e={}){let r=e.dryRun!==!1,n=r?this.workspace:this.ensureWorkspace();return Jb({root:e.root??this.options.cwd??process.cwd(),scope:this.scope,owner:e.owner,dryRun:r,deprecateLegacy:e.deprecateLegacy,includeLegacy:e.includeLegacy,legacyStorePath:n.jsonStorePath,dbPath:n.knowledgeDbPath,safetyPolicy:this.safetyPolicy(),maxItems:e.maxItems,limit:e.limit})}async resolveSource(e,r={}){let n=this.ensureWorkspace();return Ru({dbPath:n.knowledgeDbPath,sourceRef:e,purpose:r.purpose,limit:r.limit,safetyPolicy:this.safetyPolicy()})}async consumeOutbox(e){let r=this.ensureWorkspace();return cb({dbPath:r.knowledgeDbPath,input:e,config:this.config(),safetyPolicy:this.safetyPolicy()})}reindexHealth(e={}){let r=this.workspace;if(!s(r.knowledgeDbPath))return ZA();return Ob({...e,dbPath:r.knowledgeDbPath,config:this.config()})}enqueueReindex(e={}){let r=this.ensureWorkspace();return lE({...e,dbPath:r.knowledgeDbPath,config:this.config()})}async refreshEmbeddings(e={}){let r=this.ensureWorkspace();return Rb({...e,dbPath:r.knowledgeDbPath,config:this.config()})}providerStatus(e=process.env){return iT(this.config(),e)}modelRegistry(){return Dg(this.config())}embeddingStatus(){let e=this.workspace;if(!s(e.knowledgeDbPath))return sA();return oT(e.knowledgeDbPath)}async indexEmbeddings(e={}){let r=this.ensureWorkspace();return Xu({...e,dbPath:r.knowledgeDbPath,config:this.config()})}async semanticSearch(e){let r=this.workspace;if(!s(r.knowledgeDbPath))return{provider:"openai",model:"text-embedding-3-small",dimensions:e.dimensions??1536,query:e.query,results:[]};return Ku({...e,dbPath:r.knowledgeDbPath,config:this.config()})}async search(e){let r=this.workspace,n=DE(this.scope,r,e.legacyStorePath);if(!s(r.knowledgeDbPath)){if(s(n))return Wu({...e,legacyStorePath:n,config:this.config()});return hI(e.query,Math.max(1,Math.min(e.limit??10,100)),e.semantic===!0||e.fake===!0||Boolean(e.modelRef))}return zu({...e,dbPath:r.knowledgeDbPath,legacyStorePath:n,config:this.config()})}async retrieveContext(e){let r=this.workspace,n=DE(this.scope,r,e.legacyStorePath);if(!s(r.knowledgeDbPath)){if(s(n)){let i=await Wu({...e,legacyStorePath:n,config:this.config()});return qu(i,{contextChars:e.contextChars})}return YA(e.query,Math.max(1,Math.min(e.limit??10,100)),e.semantic===!0||e.fake===!0||Boolean(e.modelRef))}return Yn({...e,dbPath:r.knowledgeDbPath,legacyStorePath:n,config:this.config()})}async contextPack(e){let r=this.workspace,n=DE(this.scope,r,e.legacyStorePath);if(!s(r.knowledgeDbPath)){let i=(e.query??e.topic??"").trim();if(i&&e.source!=="loops"&&e.source!=="runs"&&s(n)){let t=await Wu({...e,query:i,legacyStorePath:n,config:this.config()}),u=qu(t,{contextChars:e.contextChars});return QA(e,u,this.safetyPolicy())}return e6(e)}return PT({...e,dbPath:r.knowledgeDbPath,legacyStorePath:n,config:this.config(),safetyPolicy:this.safetyPolicy()})}async runPrompt(e){let r=this.ensureWorkspace(),n=e.legacyStorePath??r.jsonStorePath;if(!e.legacyStorePath)Kt(n);return DT({...e,dbPath:r.knowledgeDbPath,legacyStorePath:n,config:this.config()})}async webSearch(e){let r=this.ensureWorkspace();return qb({...e,dbPath:r.knowledgeDbPath,config:this.config(),safetyPolicy:this.safetyPolicy()})}async machineTopology(e={}){let r=this.workspace;return Ib({...e,knowledge:{scope:this.scope,workspace_home:r.home}})}async machinePreflight(e={}){let r=this.workspace;return Db({...e,knowledge:{scope:this.scope,workspace_home:r.home}})}syncStatus(){let e=this.workspace;if(!s(e.knowledgeDbPath))return pA({scope:this.scope,workspaceHome:e.home});return tS({dbPath:e.knowledgeDbPath,scope:this.scope,workspaceHome:e.home})}async syncDoctor(e={}){let r=this.ensureWorkspace();P(r.knowledgeDbPath);let n=this.syncStatus(),i=this.storageContract(),t=this.validateStorage(),u=r6(r.knowledgeDbPath,i),_=e.machine?.trim()||null,c=e.peerWorkspace?.trim()||null,d=[],g=null,f=null;if(_&&!mI(_)){let v=await oE({machineId:_,includeTailscale:e.includeTailscale});g=wE(v),d.push(...v.warnings)}if(_||c){let v=await Ld({machineId:_??mE(r),peerWorkspace:c,includeTailscale:e.includeTailscale});if(_&&!c&&(g?.source==="raw"||!v.ok||!v.project_root)){let k=fI(r.knowledgeDbPath,_);if(k){if(g?.source==="raw"&&k.ssh_target)g=wE($I(k,_,{target:g.target,route:g.route,targetKind:g.target_kind,confidence:g.confidence,source:g.source,adapter:g.adapter,evidence:g.evidence,cacheability:g.cacheability,warnings:[]}));if(!v.ok||!v.project_root){let T=vI(k,_,v);if(T)f=gu(T,T.project_root),d.push(...T.warnings)}}}f=v.ok&&v.project_root?gu(v,v.project_root):f??{...gu(v,c??""),project_root:v.project_root??c??""},d.push(...v.warnings)}if(!t.ok)d.push(...t.errors.map((v)=>`storage:${v}`));let o=MA(r.knowledgeDbPath,f);if(!o.ok)d.push("open_files_boundary_raw_payload_sentinels");if(!u.ok)d.push(...u.warnings);let a=f?.diagnostics.filter((v)=>v.severity==="fail")??[],l=t.ok&&u.ok&&o.ok&&a.length===0&&(f?.project_root!==""||!f),$=t6({scope:this.scope,machine:_,peerWorkspace:c,tables:e.tables,resolvedWorkspace:f,openConflicts:n.conflicts.open});return{ok:l,read_only:!0,generated_at:new Date().toISOString(),scope:this.scope,workspace_home:r.home,database:{sqlite_schema_version:n.sqlite_schema_version,table_counts:n.table_counts},storage:{contract:i,validation:t,artifact_manifest:u},sync:{machines:n.machines.total,snapshots:n.snapshots.total,clocks:n.clocks.total,imports:n.imports.total,open_conflicts:n.conflicts.open,table_clocks:n.clocks.rows},open_files:o,resolved_route:g,resolved_workspace:f,recommended_commands:$,warnings:[...new Set(d)],message:l?`Sync readiness ok: ${n.clocks.total} table clock(s), ${n.conflicts.open} open conflict(s)`:`Sync readiness needs attention: ${[...new Set(d)].join(", ")||"workspace diagnostics failed"}`}}repairArtifactManifestKeys(e={}){let r=this.ensureWorkspace();P(r.knowledgeDbPath);let n=this.storageContract(),i=RE(n),t=n6(r.knowledgeDbPath,n),u=e.dryRun===!0||e.approveWrite!==!0;if(t.length===0)return{ok:!0,dry_run:u,approval_required:!1,storage_type:n.storage_type,storage_prefix:i,candidates:t,repaired:0,audit_event_id:null,message:"No legacy S3 artifact manifest keys found"};if(e.dryRun===!0)return{ok:!0,dry_run:!0,approval_required:!1,storage_type:n.storage_type,storage_prefix:i,candidates:t,repaired:0,audit_event_id:null,message:`Would repair ${t.length} legacy S3 artifact manifest key(s)`};if(e.approveWrite!==!0||!e.approvedBy)return{ok:!1,dry_run:!0,approval_required:!0,storage_type:n.storage_type,storage_prefix:i,candidates:t,repaired:0,audit_event_id:null,message:"Artifact key repair requires --approve-write and --approved-by "};let _=A(r.knowledgeDbPath);try{let c=new Date().toISOString();_.transaction((f)=>{let o=_.query("UPDATE storage_objects SET metadata_json = ?, updated_at = ? WHERE id = ?"),a=_.query("SELECT id, metadata_json FROM storage_objects").all(),l=new Map(a.map(($)=>[$.id,Lt($.metadata_json)]));for(let $ of f){let v=l.get($.id)??{};v.key=$.repaired_key,o.run(JSON.stringify(v),c,$.id)}})(t);let g=re(_,{event_type:"artifact_manifest_key_repair",action:"storage.artifact_manifest.repair_keys",target_uri:`knowledge-storage://${r.home}/storage_objects`,decision:"allow",metadata:{approved_by:e.approvedBy,repaired:t.length,storage_type:n.storage_type,storage_prefix:i,artifact_uris:t.map((f)=>f.artifact_uri)}});return{ok:!0,dry_run:!1,approval_required:!1,storage_type:n.storage_type,storage_prefix:i,candidates:t,repaired:t.length,audit_event_id:g,message:`Repaired ${t.length} legacy S3 artifact manifest key(s)`}}finally{_.close()}}async createSyncSnapshot(e={}){let r=this.ensureWorkspace(),n=await this.machineTopology({includeTailscale:e.includeTailscale!==!1});return nS({dbPath:r.knowledgeDbPath,scope:this.scope,workspaceHome:r.home,storage:this.storageContract(),topology:n,machineId:e.machineId})}syncConflicts(e={}){let r=this.workspace;if(!s(r.knowledgeDbPath))return[];return iS(r.knowledgeDbPath,e)}syncConflict(e){let r=this.ensureWorkspace(),n=e_(r.knowledgeDbPath,e);if(!n)throw Error(`Sync conflict not found: ${e}`);return n}proposeSyncConflictResolution(e){let r=this.ensureWorkspace();return Yt(r.knowledgeDbPath,e)}async proposeSyncConflictResolutionWithAi(e){let r=this.ensureWorkspace();return ub({dbPath:r.knowledgeDbPath,id:e.id,config:this.config(),modelRef:e.modelRef,fake:e.fake,env:e.env})}resolveSyncConflict(e){let r=this.ensureWorkspace(),n=Yt(r.knowledgeDbPath,e.id);if(e.approveWrite!==!0||!e.approvedBy)return{ok:!1,approval_required:!0,conflict:n.conflict,proposal:n,message:"Sync conflict resolution requires --approve-write and --approved-by "};let i=cS(r.knowledgeDbPath,{id:e.id,strategy:e.strategy??n.proposed_strategy,approvedBy:e.approvedBy,proposedPatchUri:e.proposedPatchUri}),t=A(r.knowledgeDbPath);try{let u=re(t,{event_type:"sync_conflict_resolution",action:"sync.conflict.resolve",target_uri:`knowledge-sync-conflict://${e.id}`,decision:"allow",metadata:{conflict_id:e.id,entity_kind:i.entity_kind,entity_id:i.entity_id,strategy:i.resolution_strategy,approved_by:i.approved_by,proposed_patch_uri:i.proposed_patch_uri}});return{ok:!0,approval_required:!1,conflict:i,audit_event_id:u,message:`Resolved sync conflict ${e.id}`}}finally{t.close()}}syncMachines(){let e=this.workspace;if(!s(e.knowledgeDbPath))return[];return Gg(e.knowledgeDbPath)}exportSyncBundle(e={}){let r=this.ensureWorkspace();return P(r.knowledgeDbPath),Ct({dbPath:r.knowledgeDbPath,scope:this.scope,workspaceHome:r.home,storage:this.storageContract(),machineId:e.machineId??null,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:e.recordClocks!==!1})}async importSyncBundle(e){let r=this.ensureWorkspace();return P(r.knowledgeDbPath),pu({targetDbPath:r.knowledgeDbPath,targetScope:this.scope,targetWorkspaceHome:r.home,targetStorage:this.storageContract(),targetStore:this.artifactStore(),bundle:e.bundle,direction:e.direction??"import",dryRun:e.dryRun,localMachineId:e.machineId??null})}async syncRemotePeer(e){let r=e.direction??"both",n=e.dryRun===!0,i=this.ensureWorkspace();P(i.knowledgeDbPath);let t=e.tables?.length?["--tables",e.tables.join(",")]:[],u=e.includeArtifactContent===!1?["--no-artifact-content"]:[],_=["--scope",this.scope,"--json"],c=await oE({machineId:e.machine,includeTailscale:e.includeTailscale}),d=await Ld({machineId:e.machine,peerWorkspace:e.peerWorkspace,includeTailscale:e.includeTailscale});if(!e.peerWorkspace&&c.source==="raw"||!d.ok||!d.project_root){let l=fI(i.knowledgeDbPath,e.machine);if(l){if(!e.peerWorkspace&&c.source==="raw"&&l.ssh_target)c=$I(l,e.machine,c);if(!d.ok||!d.project_root){let $=vI(l,e.machine,d);if($)d=$}}}if(!d.ok||!d.project_root)throw Error([`Unable to resolve peer workspace for ${e.machine}.`,"Pass --peer-workspace or configure workspace path mapping in machines.",d.warnings.length?`Warnings: ${d.warnings.join(", ")}`:null].filter(Boolean).join(" "));let g=d.project_root,f={ok:!0,dry_run:n,direction:r,transport:"ssh",machine:e.machine,resolved_machine:c.target,resolved_route:wE(c),resolved_workspace:gu(d,d.project_root),peer_workspace:g,message:""},o=!1,a=()=>{if(n||o)return;pT(i.knowledgeDbPath,{machineId:e.machine,route:c,workspace:d}),o=!0};if(r==="pull"||r==="both"){let l=aI(g,["sync","export",..._,...t,...u]),$=NI(e.machine,l,void 0,c),v=bI(e.machine,"sync export",$);u6(e.machine,v),f.pull=await this.importSyncBundle({bundle:v,dryRun:n,direction:"pull",machineId:e.machineId??null})}if(r==="push"||r==="both"){a();let l=this.exportSyncBundle({machineId:e.machineId??null,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:!n}),$=aI(g,["sync","import",..._,...n?["--dry-run"]:[]]),v=bI(e.machine,"sync import",NI(e.machine,$,JSON.stringify(l),c));_6(e.machine,v),f.push=v}return f.ok=(f.pull?.ok??!0)&&(f.push?.ok??!0),a(),f.message=[EI(f.resolved_workspace),f.pull?`pull: ${f.pull.message}`:null,f.push?`push: ${f.push.message}`:null].filter(Boolean).join("; "),f}async syncPeer(e){let r=e.direction??"both",n=this.ensureWorkspace();P(n.knowledgeDbPath);let i=II(e.peerWorkspace),t=PA(i);P(t.knowledgeDbPath);let u=_g(t.configPath),_=Uu(u,t,this.scope),c=fg(u,t),d=e.machineId??mE(n),g=mE(t),f=await Ld({machineId:e.machineId??g,peerWorkspace:i,includeTailscale:!1}),o=()=>Ct({dbPath:n.knowledgeDbPath,scope:this.scope,workspaceHome:n.home,storage:this.storageContract(),machineId:d,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:e.dryRun!==!0}),a=()=>Ct({dbPath:t.knowledgeDbPath,scope:this.scope,workspaceHome:t.home,storage:_,machineId:g,tables:e.tables,includeArtifactContent:e.includeArtifactContent,recordClocks:e.dryRun!==!0}),l={ok:!0,dry_run:e.dryRun===!0,direction:r,resolved_workspace:gu(f,f.project_root??i),message:""};if(r==="pull"||r==="both")l.pull=await pu({targetDbPath:n.knowledgeDbPath,targetScope:this.scope,targetWorkspaceHome:n.home,targetStorage:this.storageContract(),targetStore:this.artifactStore(),bundle:a(),targetBundle:o(),direction:"pull",dryRun:e.dryRun,localMachineId:d});if(r==="push"||r==="both")l.push=await pu({targetDbPath:t.knowledgeDbPath,targetScope:this.scope,targetWorkspaceHome:t.home,targetStorage:_,targetStore:c,bundle:o(),targetBundle:a(),direction:"push",dryRun:e.dryRun,localMachineId:g});return l.ok=(l.pull?.ok??!0)&&(l.push?.ok??!0),l.message=[EI(l.resolved_workspace),l.pull?`pull: ${l.pull.message}`:null,l.push?`push: ${l.push.message}`:null].filter(Boolean).join("; "),l}}function zd(e={}){return new OI(e)}import{parseContract as d6,SCHEMA_IDS as RI}from"@hasna/contracts";var LI="@hasna/knowledge";function g6(e){if(!Number.isFinite(e??0))return 20;return Math.max(1,Math.min(100,Math.trunc(e??20)))}function o6(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"project"}function fu(e,r=180){let n=String(e??"").replace(/\s+/g," ").trim();if(n.length<=r)return n;return`${n.slice(0,Math.max(0,r-3))}...`}function de(e,r=""){return typeof e==="string"&&e.length>0?e:r}function $u(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function At(e){if(typeof e!=="string"||e.length===0)return;let r=e.includes("T")?e:`${e.replace(" ","T")}Z`,n=new Date(r);return Number.isNaN(n.valueOf())?void 0:n.toISOString()}function LE(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)}function Ye(e,r,n,i,t=[]){return{kind:e,id:r,name:n,uri:i&&LE(i)?i:void 0,externalId:r,sourcePackage:LI,tags:t}}function l6(e){return[...e.items.flatMap((n)=>[n.updated_at,n.created_at]),...e.sources.flatMap((n)=>[n.updated_at,n.created_at]),...e.chunks.map((n)=>n.created_at),...e.wiki_pages.flatMap((n)=>[n.updated_at,n.created_at]),...e.storage_objects.flatMap((n)=>[n.updated_at,n.created_at]),...e.runs.flatMap((n)=>[n.updated_at,n.created_at]),...e.reindex_queue.flatMap((n)=>[n.updated_at,n.created_at]),...e.sync_conflicts.map((n)=>n.created_at),...e.approval_gates.flatMap((n)=>[n.updated_at,n.created_at])].map(At).filter(Boolean).sort((n,i)=>i.localeCompare(n))[0]}function a6(e){if(!e)return"unknown";let r=Date.now()-new Date(e).valueOf();if(!Number.isFinite(r))return"unknown";return r>2592000000?"stale":"fresh"}function f6(e){let r=(n)=>{let i=String(n??"").toLowerCase();return i!==""&&!["done","complete","completed","resolved","succeeded","skipped"].includes(i)};return e.reindex_queue.filter((n)=>r(n.status)).length+e.sync_conflicts.filter((n)=>r(n.status)).length+e.approval_gates.filter((n)=>r(n.status)).length}function $6(e,r){let n=[];for(let i of e.items.slice(0,r))n.push({id:`item_${i.id}`,title:i.title,summary:fu(i.content_preview),status:i.archived?"archived":"active",priority:"medium",timestamp:At(i.updated_at??i.created_at),resourceRefs:[Ye("knowledge",i.id,i.title,`knowledge://item/${encodeURIComponent(i.id)}`,i.tags)],evidenceRefs:i.url?[{id:`url_${i.id}`,kind:"url",uri:i.url,summary:"Source URL for this knowledge item."}]:[],metadata:{source:"legacy_store",archived:i.archived,tags:i.tags}});for(let i of e.sources.slice(0,Math.max(0,r-n.length))){let t=de(i.id,de(i.uri,"source")),u=de(i.title,de(i.uri,t)),_=de(i.uri,`knowledge://source/${encodeURIComponent(t)}`);n.push({id:`source_${t}`,title:u,summary:fu(`${$u(i.chunks)} chunk(s), ${$u(i.revisions)} revision(s)`),status:$u(i.chunks)>0?"indexed":"source",priority:"medium",timestamp:At(i.updated_at??i.created_at),resourceRefs:[Ye("document",t,u,_)],evidenceRefs:LE(_)?[{id:`source_${t}`,kind:"url",uri:_,summary:"Source reference."}]:[],metadata:{source:"knowledge_db.sources",kind:i.kind,chunks:$u(i.chunks),revisions:$u(i.revisions)}})}for(let i of e.chunks.slice(0,Math.max(0,r-n.length))){let t=de(i.id,"chunk"),u=de(i.source_uri);n.push({id:`chunk_${t}`,title:de(i.wiki_title,u?`Chunk from ${u}`:`Knowledge chunk ${t}`),summary:fu(i.text_preview),status:"chunk",priority:"low",timestamp:At(i.created_at),resourceRefs:[Ye("context_pack",t,de(i.wiki_title,t),`knowledge://chunk/${encodeURIComponent(t)}`)],evidenceRefs:u&&LE(u)?[{id:`chunk_source_${t}`,kind:"url",uri:u,summary:"Chunk source reference."}]:[],metadata:{source:"knowledge_db.chunks",source_uri:u||void 0,token_count:i.token_count,ordinal:i.ordinal}})}for(let i of e.sync_conflicts.slice(0,Math.max(0,r-n.length))){let t=de(i.id,"sync_conflict");n.push({id:`sync_conflict_${t}`,title:`Sync conflict: ${de(i.entity_kind,"entity")}/${de(i.entity_id,t)}`,summary:fu(`Status ${de(i.status,"unknown")}; strategy ${de(i.resolution_strategy,"none")}.`),status:de(i.status,"unknown"),priority:"critical",timestamp:At(i.created_at),resourceRefs:[Ye("finding",t,"Knowledge sync conflict",`knowledge://sync-conflict/${encodeURIComponent(t)}`)],metadata:{source:"knowledge_db.sync_conflicts",local_machine_id:i.local_machine_id,remote_machine_id:i.remote_machine_id}})}for(let i of e.reindex_queue.slice(0,Math.max(0,r-n.length))){let t=de(i.id,"reindex");n.push({id:`reindex_${t}`,title:`Reindex ${de(i.kind,"item")}: ${de(i.target_id,t)}`,summary:fu(i.reason),status:de(i.status,"unknown"),priority:de(i.status).toLowerCase()==="failed"?"high":"medium",timestamp:At(i.updated_at??i.created_at),resourceRefs:[Ye("action",t,"Knowledge reindex work item",`knowledge://reindex/${encodeURIComponent(t)}`)],metadata:{source:"knowledge_db.reindex_queue",attempts:i.attempts,source_uri:i.source_uri}})}return n.slice(0,r)}function AI(e,r={}){let n=g6(r.limit),i=new Date().toISOString(),t=o6(e),_=(r.service??zd({scope:r.scope??"project",cwd:r.cwd})).inventory({limit:n,storePath:r.storePath,includeArchived:r.includeArchived}),c=l6(_),d=a6(c),g=_.summary.active_items+_.summary.sources+_.summary.chunks+_.summary.wiki_pages+_.summary.storage_objects,f=f6(_),o=g===0?"empty":d==="stale"?"stale":"ready",a=$6(_,n),l={schema:RI.projectPanel,id:`knowledge_panel_${t}`,createdAt:i,projectId:t,provider:{kind:"knowledge",id:`knowledge_${t}`,name:"Knowledge",sourcePackage:LI,externalId:_.home},kind:"knowledge",title:"Knowledge",summary:o==="empty"?"No project knowledge items, sources, chunks, or wiki pages are available yet.":`${_.summary.active_items} active note(s), ${_.summary.sources} source(s), ${_.summary.chunks} chunk(s), and ${_.summary.wiki_pages} wiki page(s).`,state:o,stateReason:o==="stale"?"Latest indexed knowledge activity is older than 30 days.":void 0,generatedAt:i,freshness:d,metrics:[{id:"active_items",label:"Active notes",value:_.summary.active_items,status:_.summary.active_items>0?"good":"unknown"},{id:"sources",label:"Sources",value:_.summary.sources,status:_.summary.sources>0?"good":"unknown"},{id:"chunks",label:"Chunks",value:_.summary.chunks,status:_.summary.chunks>0?"good":"unknown"},{id:"wiki_pages",label:"Wiki pages",value:_.summary.wiki_pages,status:_.summary.wiki_pages>0?"good":"unknown"},{id:"artifacts",label:"Artifacts",value:_.summary.storage_objects,status:_.summary.storage_objects>0?"good":"unknown"},{id:"vector_entries",label:"Vector entries",value:_.summary.vector_entries,status:_.summary.vector_entries>0?"good":"unknown"},{id:"unresolved",label:"Unresolved",value:f,status:f>0?"warning":"good"}],items:a,actions:[Ye("action","knowledge:inventory","Inspect knowledge inventory"),Ye("action","knowledge:context-pack","Build cited context pack"),Ye("action","knowledge:ingest","Ingest project source")],resourceRefs:[Ye("project",t,e,`project://${t}`),Ye("knowledge",`home_${t}`,"Knowledge workspace",`knowledge://workspace/${encodeURIComponent(t)}`),Ye("artifact",`db_${t}`,"Knowledge database",`knowledge://db/${encodeURIComponent(t)}`)],renderFragment:{renderer:"json_render",title:"Knowledge",spec:{component:"project.knowledge.summary",metrics:["active_items","sources","chunks","wiki_pages","unresolved"],itemLimit:n}},metadata:{scope:_.scope,home:_.home,json_store_exists:_.paths.json_store_exists,latest_activity_at:c}};return d6(RI.projectPanel,l)}function yI(e){let r=[`${e.title}: ${e.state}`,e.summary??"",...e.metrics.map((n)=>`${n.label}: ${n.value}`)].filter(Boolean);if(e.items.length>0){r.push("Items:");for(let n of e.items.slice(0,10))if(r.push(`- ${n.title}${n.status?` [${n.status}]`:""}`),n.summary)r.push(` ${n.summary}`)}return r.join(` +`)}var AE=[`CREATE TABLE IF NOT EXISTS sources ( id TEXT PRIMARY KEY, uri TEXT NOT NULL UNIQUE, kind TEXT NOT NULL, @@ -1419,22 +1419,33 @@ Pages should be concise, cited, and organized for both humans and agents. generated_at TEXT NOT NULL, applied_at TEXT NOT NULL, metadata_json TEXT NOT NULL DEFAULT '{}' - )`,"CREATE INDEX IF NOT EXISTS idx_source_revisions_source ON source_revisions(source_id)","CREATE INDEX IF NOT EXISTS idx_chunks_source_revision ON chunks(source_revision_id)","CREATE INDEX IF NOT EXISTS idx_chunks_wiki_page ON chunks(wiki_page_id)","CREATE INDEX IF NOT EXISTS idx_citations_wiki_page ON citations(wiki_page_id)","CREATE INDEX IF NOT EXISTS idx_citations_chunk ON citations(chunk_id)","CREATE INDEX IF NOT EXISTS idx_run_events_run ON run_events(run_id)","CREATE INDEX IF NOT EXISTS idx_provider_usage_run ON provider_usage(run_id)","CREATE INDEX IF NOT EXISTS idx_audit_events_action ON audit_events(action)","CREATE INDEX IF NOT EXISTS idx_audit_events_target ON audit_events(target_uri)","CREATE INDEX IF NOT EXISTS idx_audit_events_created ON audit_events(created_at)","CREATE INDEX IF NOT EXISTS idx_approval_gates_action ON approval_gates(action)","CREATE INDEX IF NOT EXISTS idx_approval_gates_status ON approval_gates(status)","CREATE INDEX IF NOT EXISTS idx_vector_index_provider_model ON vector_index_entries(provider, model)","CREATE INDEX IF NOT EXISTS idx_vector_index_source_revision ON vector_index_entries(source_revision_id)","CREATE INDEX IF NOT EXISTS idx_vector_index_source_uri ON vector_index_entries(source_uri)","CREATE INDEX IF NOT EXISTS idx_vector_index_status ON vector_index_entries(status)","CREATE INDEX IF NOT EXISTS idx_reindex_queue_status ON reindex_queue(status)","CREATE INDEX IF NOT EXISTS idx_reindex_queue_kind_target ON reindex_queue(kind, target_id)","CREATE INDEX IF NOT EXISTS idx_reindex_queue_source_uri ON reindex_queue(source_uri)","CREATE INDEX IF NOT EXISTS idx_knowledge_machines_last_seen ON knowledge_machines(last_seen_at)","CREATE INDEX IF NOT EXISTS idx_sync_snapshots_machine_created ON knowledge_sync_snapshots(machine_id, created_at)","CREATE INDEX IF NOT EXISTS idx_sync_snapshots_hash ON knowledge_sync_snapshots(content_hash)","CREATE INDEX IF NOT EXISTS idx_sync_changes_entity ON knowledge_sync_changes(entity_kind, entity_id)","CREATE INDEX IF NOT EXISTS idx_sync_changes_origin ON knowledge_sync_changes(origin_machine_id)","CREATE INDEX IF NOT EXISTS idx_sync_changes_created ON knowledge_sync_changes(created_at)","CREATE INDEX IF NOT EXISTS idx_sync_changes_bundle ON knowledge_sync_changes(bundle_id)","CREATE INDEX IF NOT EXISTS idx_sync_changes_clock ON knowledge_sync_changes(entity_kind, logical_clock)","CREATE INDEX IF NOT EXISTS idx_sync_conflicts_status ON knowledge_sync_conflicts(status)","CREATE INDEX IF NOT EXISTS idx_sync_conflicts_entity ON knowledge_sync_conflicts(entity_kind, entity_id)","CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_machine ON knowledge_sync_table_clocks(machine_id)","CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_updated ON knowledge_sync_table_clocks(updated_at)","CREATE INDEX IF NOT EXISTS idx_sync_imports_source ON knowledge_sync_imports(source_machine_id, applied_at)","CREATE INDEX IF NOT EXISTS idx_sync_imports_target ON knowledge_sync_imports(target_machine_id, applied_at)","CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)"];import{readFileSync as fX}from"fs";function $X(e){let r=e.indexOf("?"),t=new URLSearchParams(r===-1?"":e.slice(r+1)),i=t.get("sslmode")?.trim().toLowerCase();if(i)switch(i){case"disable":case"prefer":case"require":case"verify-ca":case"verify-full":return i;case"allow":return"prefer";default:throw Error(`Unknown sslmode '${i}' in connection string.`)}let n=t.get("ssl")?.trim().toLowerCase();if(n&&["1","true","yes","on","require"].includes(n))return"require";return"disable"}function vX(e){let r=e.env??process.env;if(e.ca&&e.ca.trim())return e.ca;let t=e.caCertPath??r.PGSSLROOTCERT??r.NODE_EXTRA_CA_CERTS;if(t&&t.trim())return fX(t.trim(),"utf8");return null}function X$(e,r={}){let t=$X(e);if(t==="disable")return;let i=vX(r);if(t==="prefer"||t==="require")return i?{rejectUnauthorized:!1,ca:i}:{rejectUnauthorized:!1};if(!i)throw Error(`sslmode=${t} requires a CA bundle. Set PGSSLROOTCERT (or pass caCertPath/ca) to the Amazon RDS global bundle: https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem`);return{rejectUnauthorized:!0,ca:i}}function y$(e){return{async query(r,t){let i=await e.query(r,t);return{rows:i.rows,rowCount:i.rowCount??i.rows.length}},async many(r,t){return(await e.query(r,t)).rows},async get(r,t){return(await e.query(r,t)).rows[0]??null},async one(r,t){let i=await e.query(r,t);if(i.rows.length!==1)throw Error(`Expected exactly one row, got ${i.rows.length}.`);return i.rows[0]},async execute(r,t){await e.query(r,t)}}}function zd(e){return{...y$(e),pool:e,async transaction(t){let i=await e.connect();try{await i.query("BEGIN");let n=await t(y$(i));return await i.query("COMMIT"),n}catch(n){try{await i.query("ROLLBACK")}catch{}throw n}finally{i.release()}},async close(){await e.end()}}}import IX from"pg";function x$(e){let r=X$(e.connectionString,{...e.ca!==void 0?{ca:e.ca}:{},...e.caCertPath!==void 0?{caCertPath:e.caCertPath}:{},...e.env!==void 0?{env:e.env}:{}}),t={connectionString:e.connectionString};if(r!==void 0)t.ssl=r;if(e.max!==void 0)t.max=e.max;if(e.idleTimeoutMillis!==void 0)t.idleTimeoutMillis=e.idleTimeoutMillis;if(e.connectionTimeoutMillis!==void 0)t.connectionTimeoutMillis=e.connectionTimeoutMillis;if(e.applicationName!==void 0)t.application_name=e.applicationName;return new IX.Pool(t)}function j$(e){let r=0;return e.replace(/\?/g,()=>`$${++r}`)}function P$(e){return(e.length===1&&Array.isArray(e[0])?e[0]:e).map((t)=>t===void 0?null:t)}class Md{client;constructor(e){let r=x$({connectionString:e,applicationName:"@hasna/knowledge"});this.client=zd(r)}get pool(){return this.client.pool}async run(e,...r){return{changes:(await this.client.query(j$(e),P$(r))).rowCount}}async all(e,...r){return(await this.client.query(j$(e),P$(r))).rows}async get(e,...r){return this.client.get(j$(e),P$(r))}async close(){await this.client.close()}}var Cd=["sources","wiki_pages","source_revisions","chunks","chunk_embeddings","wiki_backlinks","citations","knowledge_indexes","runs","run_events","provider_usage","redaction_findings","storage_objects","audit_events","approval_gates","vector_index_entries","reindex_queue","knowledge_machines","knowledge_sync_snapshots","knowledge_sync_changes","knowledge_sync_conflicts","knowledge_sync_table_clocks","knowledge_sync_imports"];var LX=["remote","hybrid","self_hosted"],xO="HASNA_KNOWLEDGE_DATABASE_URL",jO="KNOWLEDGE_DATABASE_URL",PO="HASNA_KNOWLEDGE_STORAGE_MODE",FO="KNOWLEDGE_STORAGE_MODE",F$=[xO,jO];var KO={sources:["id"],wiki_pages:["id"],source_revisions:["id"],chunks:["id"],chunk_embeddings:["id"],wiki_backlinks:["from_page_id","to_page_id"],citations:["id"],knowledge_indexes:["id"],runs:["id"],run_events:["id"],provider_usage:["id"],redaction_findings:["id"],storage_objects:["id"],audit_events:["id"],approval_gates:["id"],vector_index_entries:["id"],reindex_queue:["id"],knowledge_machines:["machine_id"],knowledge_sync_snapshots:["id"],knowledge_sync_changes:["id"],knowledge_sync_conflicts:["id"],knowledge_sync_table_clocks:["table_name","machine_id"],knowledge_sync_imports:["bundle_id"]};function qd(e){return process.env[e]?.trim()||void 0}function yO(e){let r=e?.trim().toLowerCase().replace(/-/g,"_");if(r==="local")return"local";if(r==="cloud")return"cloud";if(r&&LX.includes(r))return"cloud";return}function K$(e={}){let r=Kt(I_(e.scope,e.cwd).home);return x(r.knowledgeDbPath),{db:A(r.knowledgeDbPath),path:r.knowledgeDbPath,scope:e.scope??"global"}}function WO(){for(let e of F$)if(qd(e))return e;return null}function W$(){let e=WO();return e?{name:e}:null}function JO(){let e=W$();return e?qd(e.name)??null:null}function zO(){let e=yO(qd(PO))??yO(qd(FO));if(e)return e;return"local"}async function J$(){let e=JO();if(!e)throw Error("Missing HASNA_KNOWLEDGE_DATABASE_URL or KNOWLEDGE_DATABASE_URL");return new Md(e)}async function z$(e){await e.run("CREATE EXTENSION IF NOT EXISTS pgcrypto");for(let r of A$)await e.run(r)}async function Gd(e={}){let r=e.remote??await J$(),t=!e.remote,i=K$(e);try{await z$(r);let n=[];for(let _ of Bd(e.tables))n.push(await bX(i.db,r,_));return MO(i.db,"push",n),n}finally{if(i.db.close(),t)await r.close()}}async function Yd(e={}){let r=e.remote??await J$(),t=!e.remote,i=K$(e);try{await z$(r);let n=[];for(let _ of Bd(e.tables))n.push(await UX(r,i.db,_));return MO(i.db,"pull",n),n}finally{if(i.db.close(),t)await r.close()}}async function M$(e={}){let r=await Yd(e),t=await Gd(e);return{pull:r,push:t}}function C$(e={}){let r=W$(),t=K$(e);try{CO(t.db);let i=t.db.query("SELECT table_name, last_synced_at, direction FROM _knowledge_sync_meta ORDER BY table_name, direction").all();return{configured:Boolean(r),mode:zO(),env:F$,activeEnv:r?.name??null,service:"knowledge",scope:t.scope,databasePath:t.path,tables:Cd,sync:i}}finally{t.db.close()}}function Bd(e){if(!e||e.length===0)return[...Cd];let r=new Set(Cd),t=e.map((n)=>n.trim()).filter(Boolean),i=t.filter((n)=>!r.has(n));if(i.length>0)throw Error(`Unknown knowledge sync table(s): ${i.join(", ")}`);return t}function q$(e){if(!e)return;return Bd(Array.isArray(e)?e:e.split(","))}async function bX(e,r,t){let i={table:t,rowsRead:0,rowsWritten:0,errors:[]};try{if(!qO(e,t))return i;let n=e.query(`SELECT * FROM ${Ee(t)}`).all();if(i.rowsRead=n.length,n.length===0)return i;let _=await mX(r,t),u=DX(_,Object.keys(n[0]));i.rowsWritten=await hX(r,t,u,n,_)}catch(n){i.errors.push(n instanceof Error?n.message:String(n))}return i}async function UX(e,r,t){let i={table:t,rowsRead:0,rowsWritten:0,errors:[]};try{if(!qO(r,t))return i;let n=await e.all(`SELECT * FROM ${Ee(t)}`);if(i.rowsRead=n.length,n.length===0)return i;let _=RX(r,t,Object.keys(n[0]));i.rowsWritten=wX(r,t,_,n)}catch(n){i.errors.push(n instanceof Error?n.message:String(n))}return i}async function mX(e,r){let t=await e.all("SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'public' AND table_name = ?",r);return new Map(t.map((i)=>[i.column_name,i.data_type]))}function DX(e,r){if(e.size===0)return r;return r.filter((t)=>e.has(t))}function RX(e,r,t){let i=e.query(`PRAGMA table_info(${Ee(r)})`).all(),n=new Set(i.map((_)=>_.name));return t.filter((_)=>n.has(_))}async function hX(e,r,t,i,n){if(t.length===0)return 0;let _=KO[r],u=t.map(Ee).join(", "),c=t.map(()=>"?").join(", "),d=_.map(Ee).join(", "),o=t.filter((E)=>!_.includes(E)),a=_[0],g=o.length>0?o.map((E)=>`${Ee(E)} = EXCLUDED.${Ee(E)}`).join(", "):`${Ee(a)} = EXCLUDED.${Ee(a)}`;for(let E of i)await e.run(`INSERT INTO ${Ee(r)} (${u}) VALUES (${c}) - ON CONFLICT (${d}) DO UPDATE SET ${g}`,...t.map((l)=>AX(E[l],n.get(l))));return i.length}function wX(e,r,t,i){if(t.length===0)return 0;let n=KO[r],_=t.map(Ee).join(", "),u=t.map(()=>"?").join(", "),c=n.map(Ee).join(", "),d=t.filter((l)=>!n.includes(l)),o=n[0],a=d.length>0?d.map((l)=>`${Ee(l)} = excluded.${Ee(l)}`).join(", "):`${Ee(o)} = excluded.${Ee(o)}`,g=e.query(`INSERT INTO ${Ee(r)} (${_}) VALUES (${u}) - ON CONFLICT (${c}) DO UPDATE SET ${a}`);return e.transaction((l)=>{for(let T of l)g.run(...t.map((f)=>XX(T[f])))})(i),i.length}function MO(e,r,t){CO(e);let i=new Date().toISOString(),n=e.query(` + )`,"CREATE INDEX IF NOT EXISTS idx_source_revisions_source ON source_revisions(source_id)","CREATE INDEX IF NOT EXISTS idx_chunks_source_revision ON chunks(source_revision_id)","CREATE INDEX IF NOT EXISTS idx_chunks_wiki_page ON chunks(wiki_page_id)","CREATE INDEX IF NOT EXISTS idx_citations_wiki_page ON citations(wiki_page_id)","CREATE INDEX IF NOT EXISTS idx_citations_chunk ON citations(chunk_id)","CREATE INDEX IF NOT EXISTS idx_run_events_run ON run_events(run_id)","CREATE INDEX IF NOT EXISTS idx_provider_usage_run ON provider_usage(run_id)","CREATE INDEX IF NOT EXISTS idx_audit_events_action ON audit_events(action)","CREATE INDEX IF NOT EXISTS idx_audit_events_target ON audit_events(target_uri)","CREATE INDEX IF NOT EXISTS idx_audit_events_created ON audit_events(created_at)","CREATE INDEX IF NOT EXISTS idx_approval_gates_action ON approval_gates(action)","CREATE INDEX IF NOT EXISTS idx_approval_gates_status ON approval_gates(status)","CREATE INDEX IF NOT EXISTS idx_vector_index_provider_model ON vector_index_entries(provider, model)","CREATE INDEX IF NOT EXISTS idx_vector_index_source_revision ON vector_index_entries(source_revision_id)","CREATE INDEX IF NOT EXISTS idx_vector_index_source_uri ON vector_index_entries(source_uri)","CREATE INDEX IF NOT EXISTS idx_vector_index_status ON vector_index_entries(status)","CREATE INDEX IF NOT EXISTS idx_reindex_queue_status ON reindex_queue(status)","CREATE INDEX IF NOT EXISTS idx_reindex_queue_kind_target ON reindex_queue(kind, target_id)","CREATE INDEX IF NOT EXISTS idx_reindex_queue_source_uri ON reindex_queue(source_uri)","CREATE INDEX IF NOT EXISTS idx_knowledge_machines_last_seen ON knowledge_machines(last_seen_at)","CREATE INDEX IF NOT EXISTS idx_sync_snapshots_machine_created ON knowledge_sync_snapshots(machine_id, created_at)","CREATE INDEX IF NOT EXISTS idx_sync_snapshots_hash ON knowledge_sync_snapshots(content_hash)","CREATE INDEX IF NOT EXISTS idx_sync_changes_entity ON knowledge_sync_changes(entity_kind, entity_id)","CREATE INDEX IF NOT EXISTS idx_sync_changes_origin ON knowledge_sync_changes(origin_machine_id)","CREATE INDEX IF NOT EXISTS idx_sync_changes_created ON knowledge_sync_changes(created_at)","CREATE INDEX IF NOT EXISTS idx_sync_changes_bundle ON knowledge_sync_changes(bundle_id)","CREATE INDEX IF NOT EXISTS idx_sync_changes_clock ON knowledge_sync_changes(entity_kind, logical_clock)","CREATE INDEX IF NOT EXISTS idx_sync_conflicts_status ON knowledge_sync_conflicts(status)","CREATE INDEX IF NOT EXISTS idx_sync_conflicts_entity ON knowledge_sync_conflicts(entity_kind, entity_id)","CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_machine ON knowledge_sync_table_clocks(machine_id)","CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_updated ON knowledge_sync_table_clocks(updated_at)","CREATE INDEX IF NOT EXISTS idx_sync_imports_source ON knowledge_sync_imports(source_machine_id, applied_at)","CREATE INDEX IF NOT EXISTS idx_sync_imports_target ON knowledge_sync_imports(target_machine_id, applied_at)","CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)",`CREATE TABLE IF NOT EXISTS knowledge_items ( + id TEXT PRIMARY KEY, + short_id TEXT, + title TEXT NOT NULL, + content TEXT NOT NULL DEFAULT '', + url TEXT, + tags JSONB NOT NULL DEFAULT '[]'::jsonb, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + archived BOOLEAN NOT NULL DEFAULT FALSE, + created_at TEXT NOT NULL DEFAULT NOW()::text, + updated_at TEXT NOT NULL DEFAULT NOW()::text + )`,"CREATE INDEX IF NOT EXISTS idx_knowledge_items_short_id ON knowledge_items(short_id)","CREATE INDEX IF NOT EXISTS idx_knowledge_items_archived ON knowledge_items(archived)","CREATE INDEX IF NOT EXISTS idx_knowledge_items_created ON knowledge_items(created_at)"];import{readFileSync as v6}from"fs";function E6(e){let r=e.indexOf("?"),n=new URLSearchParams(r===-1?"":e.slice(r+1)),i=n.get("sslmode")?.trim().toLowerCase();if(i)switch(i){case"disable":case"prefer":case"require":case"verify-ca":case"verify-full":return i;case"allow":return"prefer";default:throw Error(`Unknown sslmode '${i}' in connection string.`)}let t=n.get("ssl")?.trim().toLowerCase();if(t&&["1","true","yes","on","require"].includes(t))return"require";return"disable"}function k6(e){let r=e.env??process.env;if(e.ca&&e.ca.trim())return e.ca;let n=e.caCertPath??r.PGSSLROOTCERT??r.NODE_EXTRA_CA_CERTS;if(n&&n.trim())return v6(n.trim(),"utf8");return null}function yE(e,r={}){let n=E6(e);if(n==="disable")return;let i=k6(r);if(n==="prefer"||n==="require")return i?{rejectUnauthorized:!1,ca:i}:{rejectUnauthorized:!1};if(!i)throw Error(`sslmode=${n} requires a CA bundle. Set PGSSLROOTCERT (or pass caCertPath/ca) to the Amazon RDS global bundle: https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem`);return{rejectUnauthorized:!0,ca:i}}function jE(e){return{async query(r,n){let i=await e.query(r,n);return{rows:i.rows,rowCount:i.rowCount??i.rows.length}},async many(r,n){return(await e.query(r,n)).rows},async get(r,n){return(await e.query(r,n)).rows[0]??null},async one(r,n){let i=await e.query(r,n);if(i.rows.length!==1)throw Error(`Expected exactly one row, got ${i.rows.length}.`);return i.rows[0]},async execute(r,n){await e.query(r,n)}}}function Wd(e){return{...jE(e),pool:e,async transaction(n){let i=await e.connect();try{await i.query("BEGIN");let t=await n(jE(i));return await i.query("COMMIT"),t}catch(t){try{await i.query("ROLLBACK")}catch{}throw t}finally{i.release()}},async close(){await e.end()}}}import N6 from"pg";function PE(e){let r=yE(e.connectionString,{...e.ca!==void 0?{ca:e.ca}:{},...e.caCertPath!==void 0?{caCertPath:e.caCertPath}:{},...e.env!==void 0?{env:e.env}:{}}),n={connectionString:e.connectionString};if(r!==void 0)n.ssl=r;if(e.max!==void 0)n.max=e.max;if(e.idleTimeoutMillis!==void 0)n.idleTimeoutMillis=e.idleTimeoutMillis;if(e.connectionTimeoutMillis!==void 0)n.connectionTimeoutMillis=e.connectionTimeoutMillis;if(e.applicationName!==void 0)n.application_name=e.applicationName;return new N6.Pool(n)}function xE(e){let r=0;return e.replace(/\?/g,()=>`$${++r}`)}function XE(e){return(e.length===1&&Array.isArray(e[0])?e[0]:e).map((n)=>n===void 0?null:n)}class Md{client;constructor(e){let r=PE({connectionString:e,applicationName:"@hasna/knowledge"});this.client=Wd(r)}get pool(){return this.client.pool}async run(e,...r){return{changes:(await this.client.query(xE(e),XE(r))).rowCount}}async all(e,...r){return(await this.client.query(xE(e),XE(r))).rows}async get(e,...r){return this.client.get(xE(e),XE(r))}async close(){await this.client.close()}}var qd=["sources","wiki_pages","source_revisions","chunks","chunk_embeddings","wiki_backlinks","citations","knowledge_indexes","runs","run_events","provider_usage","redaction_findings","storage_objects","audit_events","approval_gates","vector_index_entries","reindex_queue","knowledge_machines","knowledge_sync_snapshots","knowledge_sync_changes","knowledge_sync_conflicts","knowledge_sync_table_clocks","knowledge_sync_imports"];var m6=["remote","hybrid","self_hosted"],PI="HASNA_KNOWLEDGE_DATABASE_URL",xI="KNOWLEDGE_DATABASE_URL",XI="HASNA_KNOWLEDGE_STORAGE_MODE",KI="KNOWLEDGE_STORAGE_MODE",KE=[PI,xI];var FI={sources:["id"],wiki_pages:["id"],source_revisions:["id"],chunks:["id"],chunk_embeddings:["id"],wiki_backlinks:["from_page_id","to_page_id"],citations:["id"],knowledge_indexes:["id"],runs:["id"],run_events:["id"],provider_usage:["id"],redaction_findings:["id"],storage_objects:["id"],audit_events:["id"],approval_gates:["id"],vector_index_entries:["id"],reindex_queue:["id"],knowledge_machines:["machine_id"],knowledge_sync_snapshots:["id"],knowledge_sync_changes:["id"],knowledge_sync_conflicts:["id"],knowledge_sync_table_clocks:["table_name","machine_id"],knowledge_sync_imports:["bundle_id"]};function Gd(e){return process.env[e]?.trim()||void 0}function jI(e){let r=e?.trim().toLowerCase().replace(/-/g,"_");if(r==="local")return"local";if(r==="cloud")return"cloud";if(r&&m6.includes(r))return"cloud";return}function FE(e={}){let r=Jn(Nu(e.scope,e.cwd).home);return P(r.knowledgeDbPath),{db:A(r.knowledgeDbPath),path:r.knowledgeDbPath,scope:e.scope??"global"}}function JI(){for(let e of KE)if(Gd(e))return e;return null}function JE(){let e=JI();return e?{name:e}:null}function zI(){let e=JE();return e?Gd(e.name)??null:null}function WI(){let e=jI(Gd(XI))??jI(Gd(KI));if(e)return e;return"local"}async function zE(){let e=zI();if(!e)throw Error("Missing HASNA_KNOWLEDGE_DATABASE_URL or KNOWLEDGE_DATABASE_URL");return new Md(e)}async function WE(e){await e.run("CREATE EXTENSION IF NOT EXISTS pgcrypto");for(let r of AE)await e.run(r)}async function Hd(e={}){let r=e.remote??await zE(),n=!e.remote,i=FE(e);try{await WE(r);let t=[];for(let u of Cd(e.tables))t.push(await w6(i.db,r,u));return MI(i.db,"push",t),t}finally{if(i.db.close(),n)await r.close()}}async function Bd(e={}){let r=e.remote??await zE(),n=!e.remote,i=FE(e);try{await WE(r);let t=[];for(let u of Cd(e.tables))t.push(await D6(r,i.db,u));return MI(i.db,"pull",t),t}finally{if(i.db.close(),n)await r.close()}}async function ME(e={}){let r=await Bd(e),n=await Hd(e);return{pull:r,push:n}}function qE(e={}){let r=JE(),n=FE(e);try{qI(n.db);let i=n.db.query("SELECT table_name, last_synced_at, direction FROM _knowledge_sync_meta ORDER BY table_name, direction").all();return{configured:Boolean(r),mode:WI(),env:KE,activeEnv:r?.name??null,service:"knowledge",scope:n.scope,databasePath:n.path,tables:qd,sync:i}}finally{n.db.close()}}function Cd(e){if(!e||e.length===0)return[...qd];let r=new Set(qd),n=e.map((t)=>t.trim()).filter(Boolean),i=n.filter((t)=>!r.has(t));if(i.length>0)throw Error(`Unknown knowledge sync table(s): ${i.join(", ")}`);return n}function GE(e){if(!e)return;return Cd(Array.isArray(e)?e:e.split(","))}async function w6(e,r,n){let i={table:n,rowsRead:0,rowsWritten:0,errors:[]};try{if(!GI(e,n))return i;let t=e.query(`SELECT * FROM ${ae(n)}`).all();if(i.rowsRead=t.length,t.length===0)return i;let u=await U6(r,n),_=h6(u,Object.keys(t[0]));i.rowsWritten=await R6(r,n,_,t,u)}catch(t){i.errors.push(t instanceof Error?t.message:String(t))}return i}async function D6(e,r,n){let i={table:n,rowsRead:0,rowsWritten:0,errors:[]};try{if(!GI(r,n))return i;let t=await e.all(`SELECT * FROM ${ae(n)}`);if(i.rowsRead=t.length,t.length===0)return i;let u=O6(r,n,Object.keys(t[0]));i.rowsWritten=L6(r,n,u,t)}catch(t){i.errors.push(t instanceof Error?t.message:String(t))}return i}async function U6(e,r){let n=await e.all("SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'public' AND table_name = ?",r);return new Map(n.map((i)=>[i.column_name,i.data_type]))}function h6(e,r){if(e.size===0)return r;return r.filter((n)=>e.has(n))}function O6(e,r,n){let i=e.query(`PRAGMA table_info(${ae(r)})`).all(),t=new Set(i.map((u)=>u.name));return n.filter((u)=>t.has(u))}async function R6(e,r,n,i,t){if(n.length===0)return 0;let u=FI[r],_=n.map(ae).join(", "),c=n.map(()=>"?").join(", "),d=u.map(ae).join(", "),g=n.filter((a)=>!u.includes(a)),f=u[0],o=g.length>0?g.map((a)=>`${ae(a)} = EXCLUDED.${ae(a)}`).join(", "):`${ae(f)} = EXCLUDED.${ae(f)}`;for(let a of i)await e.run(`INSERT INTO ${ae(r)} (${_}) VALUES (${c}) + ON CONFLICT (${d}) DO UPDATE SET ${o}`,...n.map((l)=>A6(a[l],t.get(l))));return i.length}function L6(e,r,n,i){if(n.length===0)return 0;let t=FI[r],u=n.map(ae).join(", "),_=n.map(()=>"?").join(", "),c=t.map(ae).join(", "),d=n.filter((l)=>!t.includes(l)),g=t[0],f=d.length>0?d.map((l)=>`${ae(l)} = excluded.${ae(l)}`).join(", "):`${ae(g)} = excluded.${ae(g)}`,o=e.query(`INSERT INTO ${ae(r)} (${u}) VALUES (${_}) + ON CONFLICT (${c}) DO UPDATE SET ${f}`);return e.transaction((l)=>{for(let $ of l)o.run(...n.map((v)=>y6($[v])))})(i),i.length}function MI(e,r,n){qI(e);let i=new Date().toISOString(),t=e.query(` INSERT INTO _knowledge_sync_meta (table_name, last_synced_at, direction) VALUES (?, ?, ?) ON CONFLICT(table_name, direction) DO UPDATE SET last_synced_at = excluded.last_synced_at - `);for(let _ of t){if(_.errors.length>0)continue;n.run(_.table,i,r)}}function CO(e){e.exec(` + `);for(let u of n){if(u.errors.length>0)continue;t.run(u.table,i,r)}}function qI(e){e.exec(` CREATE TABLE IF NOT EXISTS _knowledge_sync_meta ( table_name TEXT NOT NULL, last_synced_at TEXT, direction TEXT NOT NULL CHECK(direction IN ('push', 'pull')), PRIMARY KEY (table_name, direction) ) - `)}function qO(e,r){let t=e.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(r);return Boolean(t)}function Ee(e){return`"${e.replace(/"/g,'""')}"`}function AX(e,r){if(e===void 0||e===null)return null;if(r==="boolean"){if(typeof e==="boolean")return e;if(typeof e==="number")return e!==0;if(typeof e==="string")return e==="1"||e.toLowerCase()==="true"}if(e instanceof Date)return e.toISOString();if(Buffer.isBuffer(e)||e instanceof Uint8Array)return e;if(typeof e==="object")return JSON.stringify(e);return e}function XX(e){if(e===void 0||e===null)return null;if(typeof e==="string"||typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return e;if(e instanceof Date)return e.toISOString();if(Buffer.isBuffer(e)||e instanceof Uint8Array)return e;if(typeof e==="object")return JSON.stringify(e);return String(e)}var cL=hL(uL(),1),{program:yK,createCommand:xK,createArgument:jK,createOption:PK,CommanderError:FK,InvalidArgumentError:KK,InvalidOptionArgumentError:WK,Command:dL,Argument:JK,Option:zK,Help:MK}=cL.default;import{chmod as p$,mkdir as Dy,readFile as Ry,rename as hy,writeFile as gL}from"fs/promises";import{existsSync as wy}from"fs";import{homedir as Ay}from"os";import{join as Qd}from"path";import{createHmac as jy,timingSafeEqual as VK}from"crypto";import{randomUUID as Ky}from"crypto";import{spawn as Wy}from"child_process";import{randomUUID as Gy}from"crypto";function Ly(e,r){return r.split(".").reduce((t,i)=>{if(t&&typeof t==="object"&&i in t)return t[i];return},e)}function by(e){let r=e.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${r}$`)}function $_(e,r){if(r===void 0)return!0;if(e===void 0)return!1;return(Array.isArray(r)?r:[r]).some((i)=>by(i).test(e))}function oL(e,r){if(!r)return!0;return Object.entries(r).every(([t,i])=>{let n=Ly(e,t);if(typeof i==="string"||Array.isArray(i))return $_(n===void 0?void 0:String(n),i);return n===i})}function Uy(e,r){return $_(e.source,r.source)&&$_(e.type,r.type)&&$_(e.subject,r.subject)&&$_(e.severity,r.severity)&&oL(e.data,r.data)&&oL(e.metadata,r.metadata)}function my(e,r){if(!e.enabled)return!1;if(!e.filters||e.filters.length===0)return!0;return e.filters.some((t)=>Uy(r,t))}var Xy="HASNA_EVENTS_DIR",yy="HASNA_EVENTS_HOME";function xy(e){return e||process.env[Xy]||process.env[yy]||Qd(Ay(),".hasna","events")}class iv{dataDir;channelsPath;eventsPath;deliveriesPath;constructor(e=xy()){this.dataDir=e,this.channelsPath=Qd(e,"channels.json"),this.eventsPath=Qd(e,"events.json"),this.deliveriesPath=Qd(e,"deliveries.json")}async init(){await Dy(this.dataDir,{recursive:!0,mode:448}),await p$(this.dataDir,448).catch(()=>{return}),await this.ensureArrayFile(this.channelsPath),await this.ensureArrayFile(this.eventsPath),await this.ensureArrayFile(this.deliveriesPath)}async addChannel(e){await this.init();let r=await this.readJson(this.channelsPath,[]),t=r.findIndex((i)=>i.id===e.id);if(t>=0)r[t]={...e,createdAt:r[t].createdAt,updatedAt:new Date().toISOString()};else r.push(e);return await this.writeJson(this.channelsPath,r),t>=0?r[t]:e}async listChannels(){return await this.init(),this.readJson(this.channelsPath,[])}async getChannel(e){return(await this.listChannels()).find((t)=>t.id===e)}async removeChannel(e){await this.init();let r=await this.readJson(this.channelsPath,[]),t=r.filter((i)=>i.id!==e);return await this.writeJson(this.channelsPath,t),t.length!==r.length}async appendEvent(e){await this.init();let r=await this.readJson(this.eventsPath,[]);return r.push(e),await this.writeJson(this.eventsPath,r),e}async listEvents(){return await this.init(),this.readJson(this.eventsPath,[])}async findEventByIdentity(e){return(await this.listEvents()).find((t)=>e.id!==void 0&&t.id===e.id||e.dedupeKey!==void 0&&t.dedupeKey===e.dedupeKey)}async appendDelivery(e){await this.init();let r=await this.readJson(this.deliveriesPath,[]);return r.push(e),await this.writeJson(this.deliveriesPath,r),e}async listDeliveries(){return await this.init(),this.readJson(this.deliveriesPath,[])}async exportData(){return{channels:await this.listChannels(),events:await this.listEvents(),deliveries:await this.listDeliveries()}}async ensureArrayFile(e){if(!wy(e))await gL(e,`[] -`,{encoding:"utf-8",mode:384});await p$(e,384).catch(()=>{return})}async readJson(e,r){try{let t=await Ry(e,"utf-8");if(!t.trim())return r;return JSON.parse(t)}catch(t){if(t.code==="ENOENT")return r;throw t}}async writeJson(e,r){let t=`${e}.${process.pid}.${Date.now()}.tmp`;await gL(t,`${JSON.stringify(r,null,2)} -`,{encoding:"utf-8",mode:384}),await hy(t,e),await p$(e,384).catch(()=>{return})}}function Py(e,r){return`${e}.${r}`}function Fy(e,r,t){return`sha256=${jy("sha256",e).update(Py(r,t)).digest("hex")}`}function ir(){return new Date().toISOString()}function v_(e,r=4096){return e.length>r?`${e.slice(0,r)}...`:e}function Jy(e,r){if(!r.webhook)throw Error(`Channel ${r.id} has no webhook config`);let t=JSON.stringify(e),i=e.time,n={"Content-Type":"application/json","User-Agent":"@hasna/events","X-Hasna-Event-Id":e.id,"X-Hasna-Event-Type":e.type,"X-Hasna-Timestamp":i,...r.webhook.headers};if(r.webhook.secret)n["X-Hasna-Signature"]=Fy(r.webhook.secret,i,t);return{body:t,headers:n}}async function zy(e,r,t={}){if(!r.webhook)throw Error(`Channel ${r.id} has no webhook config`);let i=ir(),{body:n,headers:_}=Jy(e,r),u=new AbortController,c=setTimeout(()=>u.abort(),r.webhook.timeoutMs??15000);try{let d=await(t.fetchImpl??fetch)(r.webhook.url,{method:"POST",headers:_,body:n,signal:u.signal}),o=v_(await d.text());return{attempt:1,status:d.ok?"success":"failed",startedAt:i,completedAt:ir(),responseStatus:d.status,responseBody:o,error:d.ok?void 0:`Webhook returned HTTP ${d.status}`}}catch(d){return{attempt:1,status:"failed",startedAt:i,completedAt:ir(),error:d instanceof Error?d.message:String(d)}}finally{clearTimeout(c)}}async function My(e,r){if(!r.command)throw Error(`Channel ${r.id} has no command config`);let t=ir(),i=JSON.stringify(e),n={...process.env,...r.command.env,HASNA_CHANNEL_ID:r.id,HASNA_EVENT_ID:e.id,HASNA_EVENT_TYPE:e.type,HASNA_EVENT_SOURCE:e.source,HASNA_EVENT_SUBJECT:e.subject??"",HASNA_EVENT_SEVERITY:e.severity,HASNA_EVENT_TIME:e.time,HASNA_EVENT_DEDUPE_KEY:e.dedupeKey??"",HASNA_EVENT_SCHEMA_VERSION:e.schemaVersion,HASNA_EVENT_JSON:i};return new Promise((_)=>{let u=Wy(r.command.command,r.command.args??[],{cwd:r.command.cwd,env:n,stdio:["pipe","pipe","pipe"]}),c="",d="",o=setTimeout(()=>u.kill("SIGTERM"),r.command.timeoutMs??15000);u.stdin.end(i),u.stdout.on("data",(a)=>{c+=a.toString()}),u.stderr.on("data",(a)=>{d+=a.toString()}),u.on("error",(a)=>{clearTimeout(o),_({attempt:1,status:"failed",startedAt:t,completedAt:ir(),stdout:v_(c),stderr:v_(d),error:a.message})}),u.on("close",(a,g)=>{clearTimeout(o);let E=a===0;_({attempt:1,status:E?"success":"failed",startedAt:t,completedAt:ir(),stdout:v_(c),stderr:v_(d),error:E?void 0:`Command exited with ${g?`signal ${g}`:`code ${a}`}`})})})}async function Cy(e,r,t={}){if(r.transport==="webhook")return zy(e,r,t);if(r.transport==="command")return My(e,r);return{attempt:1,status:"skipped",startedAt:ir(),completedAt:ir(),error:`Unsupported transport: ${r.transport}`}}function qy(e,r,t){let i=t.some((n)=>n.status==="success")?"success":t.every((n)=>n.status==="skipped")?"skipped":"failed";return{id:Ky(),eventId:e.id,channelId:r.id,transport:r.transport,status:i,attempts:t,createdAt:t[0]?.startedAt??ir(),completedAt:t.at(-1)?.completedAt??ir()}}function ev(e){return{id:e.id??Gy(),source:e.source,type:e.type,time:Qy(e.time),subject:e.subject,severity:e.severity??"info",data:e.data??{},message:e.message,dedupeKey:e.dedupeKey,schemaVersion:e.schemaVersion??"1.0",metadata:e.metadata??{}}}class EL{store;redactors;transportOptions;constructor(e={}){this.store=e.store??new iv(e.dataDir),this.redactors=e.redactors??[],this.transportOptions={fetchImpl:e.fetchImpl}}async addChannel(e){let r=new Date().toISOString();return this.store.addChannel({...e,createdAt:e.createdAt??r,updatedAt:e.updatedAt??r})}async listChannels(){return this.store.listChannels()}async removeChannel(e){return this.store.removeChannel(e)}async emit(e,r={}){let t=r.redactSensitiveData===!1?ev(e):Hy(ev(e));if(r.dedupe!==!1){let n=await this.store.findEventByIdentity({id:e.id,dedupeKey:t.dedupeKey});if(n)return{event:n,deliveries:[],deduped:!0}}await this.store.appendEvent(t);let i=r.deliver===!1?[]:await this.deliver(t);return{event:t,deliveries:i,deduped:!1}}async listEvents(){return this.store.listEvents()}async listDeliveries(){return this.store.listDeliveries()}async deliver(e){let t=(await this.store.listChannels()).filter((n)=>my(n,e)),i=[];for(let n of t){let _=await this.applyRedaction(e,n),u=await this.deliverWithRetry(_,n);await this.store.appendDelivery(u),i.push(u)}return i}async testChannel(e,r={}){let t=await this.store.getChannel(e);if(!t)throw Error(`Channel not found: ${e}`);let i=ev({source:r.source??"hasna.events",type:r.type??"events.test",subject:r.subject??e,severity:r.severity??"info",data:r.data??{test:!0},message:r.message??"Hasna events test delivery",dedupeKey:r.dedupeKey,schemaVersion:r.schemaVersion,metadata:r.metadata,time:r.time,id:r.id}),n=await this.applyRedaction(i,t),_=await this.deliverWithRetry(n,t);return await this.store.appendDelivery(_),_}async replay(e={}){let r=(await this.store.listEvents()).filter((i)=>{if(e.eventId&&i.id!==e.eventId)return!1;if(e.source&&i.source!==e.source)return!1;if(e.type&&i.type!==e.type)return!1;return!0});if(e.dryRun)return{events:r,deliveries:[]};let t=[];for(let i of r)t.push(...await this.deliver(i));return{events:r,deliveries:t}}async applyRedaction(e,r){let t=Yy(e,r.redact?.paths??[],r.redact?.replacement??"[REDACTED]");for(let i of this.redactors)t=await i(t,r);return t}async deliverWithRetry(e,r){let t=Zy(r.retry),i=[];for(let n=0;n[t,TL(t)?"[REDACTED]":i]));return r}function By(e){return e.map(aL)}function Hy(e,r="[REDACTED]"){return tv(e,r)}function TL(e){return/secret|token|password|api[_-]?key|authorization/i.test(e)}function tv(e,r){if(Array.isArray(e))return e.map((t)=>tv(t,r));if(!e||typeof e!=="object")return e;return Object.fromEntries(Object.entries(e).map(([t,i])=>[t,TL(t)?r:tv(i,r)]))}function Vy(e,r,t){let i=r.split("."),n=e;for(let u of i.slice(0,-1)){let c=n[u];if(!c||typeof c!=="object")return;n=c}let _=i.at(-1);if(_&&_ in n)n[_]=t}function Qy(e){if(!e)return new Date().toISOString();return e instanceof Date?e.toISOString():e}function Zy(e){return{maxAttempts:Math.max(1,e?.maxAttempts??1),backoffMs:Math.max(0,e?.backoffMs??250),multiplier:Math.max(1,e?.multiplier??2)}}function nv(e,r){if(!e)return r;let t=JSON.parse(e);if(!t||typeof t!=="object"||Array.isArray(t))throw Error("Expected a JSON object");return t}function sy(e){if(!e?.length)return;let r={};for(let t of e){let i=t.indexOf("=");if(i===-1)throw Error(`Invalid header, expected name=value: ${t}`);r[t.slice(0,i)]=t.slice(i+1)}return r}function py(e){let r={};if(e.source)r.source=e.source;if(e.type)r.type=e.type;if(e.subject)r.subject=e.subject;if(e.severity)r.severity=e.severity;return Object.keys(r).length>0?[r]:void 0}function xt(e){if(e.createClient)return e.createClient();return new EL({store:new iv(e.dataDir)})}function N_(e,r,t){if(r)console.log(JSON.stringify(e,null,2));else console.log(t)}function lL(e){return Boolean(e?.json||e?.opts?.().json||e?.optsWithGlobals?.().json||e?.parent?.opts?.().json||e?.parent?.optsWithGlobals?.().json)}function jt(e,r){return lL(e)||lL(r)}function e6(e,r){let t=e.command(r.webhooksCommandName??"webhooks").description("Manage Hasna event webhook subscriptions");return t.command("add").description("Add or replace a webhook or command subscription").argument("","Webhook URL or command binary").requiredOption("--id ","Subscription/channel identifier").option("--transport ","Transport kind: webhook or command","webhook").option("--name ","Display name").option("--type ","Event type filter, e.g. todos.task.*").option("--source ","Event source filter").option("--subject ","Event subject filter").option("--severity ","Event severity filter").option("--secret ","Webhook HMAC secret").option("--header ","Webhook header",rv,[]).option("--arg ","Command argument",rv,[]).option("--timeout-ms ","Transport timeout in milliseconds",Zd).option("--retry-attempts ","Maximum delivery attempts",Zd).option("--retry-backoff-ms ","Initial retry backoff in milliseconds",Zd).option("--redact ","Event field path to redact before delivery",rv,[]).option("--disabled","Create channel disabled",!1).option("-j, --json","Print JSON output",!1).action(async(i,n,_)=>{let u=new Date().toISOString(),c={id:n.id,name:n.name,enabled:!n.disabled,transport:n.transport,filters:py(n),retry:n.retryAttempts||n.retryBackoffMs?{maxAttempts:n.retryAttempts,backoffMs:n.retryBackoffMs}:void 0,redact:n.redact?.length?{paths:n.redact}:void 0,createdAt:u,updatedAt:u};if(n.transport==="webhook")c.webhook={url:i,secret:n.secret,headers:sy(n.header),timeoutMs:n.timeoutMs};else if(n.transport==="command")c.command={command:i,args:n.arg??[],timeoutMs:n.timeoutMs};else throw Error(`Transport ${n.transport} is reserved for future use and cannot be added yet`);let d=await xt(r).addChannel(c);N_(aL(d),jt(n,_),`Added ${d.transport} channel ${d.id}`)}),t.command("list").description("List configured subscriptions").option("-j, --json","Print JSON output",!1).action(async(i,n)=>{let _=await xt(r).listChannels();if(jt(i,n)){console.log(JSON.stringify(By(_),null,2));return}if(!_.length){console.log("No channels configured.");return}for(let u of _)console.log(`${u.id} ${u.enabled?"enabled":"disabled"} ${u.transport} ${u.webhook?.url??u.command?.command??u.transport}`)}),t.command("remove").description("Remove a subscription").argument("","Subscription/channel identifier").option("-j, --json","Print JSON output",!1).action(async(i,n,_)=>{let u=await xt(r).removeChannel(i);N_({removed:u},jt(n,_),u?`Removed ${i}`:`Channel not found: ${i}`)}),t.command("test").description("Send a test event to one subscription").argument("","Subscription/channel identifier").option("--type ","Event type","events.test").option("--subject ","Event subject").option("--message ","Event message","Hasna events test delivery").option("--data ","Event data JSON object").option("-j, --json","Print JSON output",!1).action(async(i,n,_)=>{let u=await xt(r).testChannel(i,{source:r.source,type:n.type,subject:n.subject??i,message:n.message,data:nv(n.data,{test:!0})});N_(u,jt(n,_),`${u.status}: ${u.channelId}`)}),t}function r6(e,r){let t=e.command(r.eventsCommandName??"events").description("Emit, list, and replay Hasna events");return t.command("emit").description("Emit an event from this app").argument("","Event type").option("--source ","Event source override").option("--subject ","Event subject").option("--severity ","Event severity","info").option("--message ","Event message").option("--dedupe-key ","Dedupe key").option("--data ","Event data JSON object").option("--metadata ","Event metadata JSON object").option("--no-deliver","Record without delivering").option("--no-dedupe","Allow duplicate id/dedupeKey events").option("-j, --json","Print JSON output",!1).action(async(i,n,_)=>{let u=await xt(r).emit({source:n.source??r.source,type:i,subject:n.subject,severity:n.severity,message:n.message,dedupeKey:n.dedupeKey,data:nv(n.data,{}),metadata:nv(n.metadata,{})},{deliver:n.deliver,dedupe:n.dedupe});N_(u,jt(n,_),`${u.deduped?"Deduped":"Emitted"} ${u.event.id} to ${u.deliveries.length} channel(s)`)}),t.command("list").description("List recorded events").option("--source ","Filter by source").option("--type ","Filter by type").option("--limit ","Limit results",Zd).option("-j, --json","Print JSON output",!1).action(async(i,n)=>{let _=await xt(r).listEvents();if(i.source)_=_.filter((u)=>u.source===i.source);if(i.type)_=_.filter((u)=>u.type===i.type);if(i.limit)_=_.slice(-i.limit);if(jt(i,n)){console.log(JSON.stringify(_,null,2));return}if(!_.length){console.log("No events recorded.");return}for(let u of _)console.log(`${u.time} ${u.id} ${u.source} ${u.type} ${u.severity}`)}),t.command("replay").description("Replay recorded events").option("--id ","Replay one event id").option("--source ","Filter by source").option("--type ","Filter by type").option("--dry-run","Preview without delivery",!1).option("-j, --json","Print JSON output",!1).action(async(i,n)=>{let _=await xt(r).replay({eventId:i.id,source:i.source,type:i.type,dryRun:i.dryRun});N_(_,jt(i,n),`Replayed ${_.events.length} event(s), ${_.deliveries.length} delivery result(s)`)}),t}function fL(e,r){e6(e,r),r6(e,r)}function Zd(e){let r=Number(e);if(!Number.isFinite(r))throw Error(`Expected a number, got ${e}`);return r}function rv(e,r){return r.push(e),r}import{basename as n6}from"path";var Ve={name:"@hasna/knowledge",version:"0.2.77",description:"Agent-friendly local knowledge CLI with JSON output, pagination, and safe destructive actions",type:"module",exports:{".":{import:"./dist/index.js",types:"./dist/index.d.ts"},"./storage":{import:"./dist/storage.js",types:"./dist/storage.d.ts"}},main:"./dist/index.js",types:"./dist/index.d.ts",bin:{knowledge:"bin/knowledge.js","knowledge-mcp":"bin/knowledge-mcp.js"},files:["bin","dist","scripts","docs","LICENSE","README.md"],scripts:{test:"bun test","test:cli":"bun test tests/cli.test.ts","smoke:machines-adapter":"bun scripts/smoke-machines-adapter.mjs","smoke:machine-sync-release":"bun scripts/smoke-machine-sync-release.mjs","smoke:open-files-installed-boundary":"bun scripts/smoke-open-files-installed-boundary.mjs","verify:generated":"bun run build && bun scripts/verify-generated-artifacts.mjs",build:"rm -rf dist && bun build --target=bun --outfile=bin/knowledge.js --minify --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/cli.ts && bun build --target=bun --outfile=bin/knowledge-mcp.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @modelcontextprotocol/sdk --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/mcp.js && bun build ./src/index.ts ./src/storage.ts --outdir ./dist --target bun --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek && bun scripts/strip-generated-trailing-whitespace.mjs && bunx tsc -p tsconfig.build.json",prepublishOnly:"bun run build"},keywords:["knowledge","cli","agents","json","notes","local","store"],license:"Apache-2.0",publishConfig:{registry:"https://registry.npmjs.org",access:"public"},repository:{type:"git",url:"git+https://github.com/hasna/knowledge.git"},bugs:{url:"https://github.com/hasna/knowledge/issues"},author:"Hasna Inc. ",engines:{bun:">=1.0",node:">=18"},dependencies:{"@ai-sdk/anthropic":"^3.0.81","@ai-sdk/deepseek":"^2.0.35","@ai-sdk/openai":"^3.0.68","@aws-sdk/client-s3":"^3.1063.0","@aws-sdk/credential-providers":"^3.1063.0","@hasna/contracts":"^0.2.2","@hasna/events":"^0.1.3","@modelcontextprotocol/sdk":"^1.29.0","@types/json-schema":"^7.0.15",ai:"^6.0.197",commander:"^13.1.0",pg:"^8.16.3",zod:"^4.3.6"},devDependencies:{"@types/bun":"^1.3.14","@types/pg":"^8.15.6"}};var $L={debug:0,info:1,warn:2,error:3},i6=()=>{if(process.env.DEBUG)return"debug";if(process.env.LOG_LEVEL==="debug")return"debug";if(process.env.LOG_LEVEL==="warn")return"warn";if(process.env.LOG_LEVEL==="error")return"error";return"info"};function Pt(e,r,t){if($L[e]<$L[i6()])return;let i={debug:"[DEBUG]",info:"[INFO]",warn:"[WARN]",error:"[ERROR]"}[e],n=t?`${i} ${r} ${JSON.stringify(t)}`:`${i} ${r}`;if(e==="error")console.error(n);else console.error(n)}var kL=["events","webhooks"],IL=["add","list","get","delete","update","archive","restore","upsert","untag","export","prune","dedupe","stats","inventory","project-panel","paths","setup","auth","remote","storage","machines","sync","db","wiki","app-wiki","source","ingest","reindex","search","context","proposals","web","ask","build","embeddings","providers","safety","help",...kL],SL={ls:"list",rm:"delete",edit:"update",unarchive:"restore"};function _6(e){let r=[],t={};for(let i=0;iArray(r.length+1).fill(0));for(let i=0;i<=e.length;i+=1)t[i][0]=i;for(let i=0;i<=r.length;i+=1)t[0][i]=i;for(let i=1;i<=e.length;i+=1)for(let n=1;n<=r.length;n+=1){let _=e[i-1]===r[n-1]?0:1;t[i][n]=Math.min(t[i-1][n]+1,t[i][n-1]+1,t[i-1][n-1]+_)}return t[e.length][r.length]}function d6(e){if(!e)return"";let r=[...IL,...Object.keys(SL)],t="",i=Number.POSITIVE_INFINITY;for(let n of r){let _=c6(e,n);if(_{if(n&&typeof n==="object"&&i in n)return n[i];return},e)}function wy(e){let r=e.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${r}$`)}function Eu(e,r){if(r===void 0)return!0;if(e===void 0)return!1;return(Array.isArray(r)?r:[r]).some((i)=>wy(i).test(e))}function gm(e,r){if(!r)return!0;return Object.entries(r).every(([n,i])=>{let t=my(e,n);if(typeof i==="string"||Array.isArray(i))return Eu(t===void 0?void 0:String(t),i);return t===i})}function Dy(e,r){return Eu(e.source,r.source)&&Eu(e.type,r.type)&&Eu(e.subject,r.subject)&&Eu(e.severity,r.severity)&&gm(e.data,r.data)&&gm(e.metadata,r.metadata)}function Uy(e,r){if(!e.enabled)return!1;if(!e.filters||e.filters.length===0)return!0;return e.filters.some((n)=>Dy(r,n))}var yy="HASNA_EVENTS_DIR",jy="HASNA_EVENTS_HOME";function Py(e){return e||process.env[yy]||process.env[jy]||Qd(Ay(),".hasna","events")}class ik{dataDir;channelsPath;eventsPath;deliveriesPath;constructor(e=Py()){this.dataDir=e,this.channelsPath=Qd(e,"channels.json"),this.eventsPath=Qd(e,"events.json"),this.deliveriesPath=Qd(e,"deliveries.json")}async init(){await hy(this.dataDir,{recursive:!0,mode:448}),await pE(this.dataDir,448).catch(()=>{return}),await this.ensureArrayFile(this.channelsPath),await this.ensureArrayFile(this.eventsPath),await this.ensureArrayFile(this.deliveriesPath)}async addChannel(e){await this.init();let r=await this.readJson(this.channelsPath,[]),n=r.findIndex((i)=>i.id===e.id);if(n>=0)r[n]={...e,createdAt:r[n].createdAt,updatedAt:new Date().toISOString()};else r.push(e);return await this.writeJson(this.channelsPath,r),n>=0?r[n]:e}async listChannels(){return await this.init(),this.readJson(this.channelsPath,[])}async getChannel(e){return(await this.listChannels()).find((n)=>n.id===e)}async removeChannel(e){await this.init();let r=await this.readJson(this.channelsPath,[]),n=r.filter((i)=>i.id!==e);return await this.writeJson(this.channelsPath,n),n.length!==r.length}async appendEvent(e){await this.init();let r=await this.readJson(this.eventsPath,[]);return r.push(e),await this.writeJson(this.eventsPath,r),e}async listEvents(){return await this.init(),this.readJson(this.eventsPath,[])}async findEventByIdentity(e){return(await this.listEvents()).find((n)=>e.id!==void 0&&n.id===e.id||e.dedupeKey!==void 0&&n.dedupeKey===e.dedupeKey)}async appendDelivery(e){await this.init();let r=await this.readJson(this.deliveriesPath,[]);return r.push(e),await this.writeJson(this.deliveriesPath,r),e}async listDeliveries(){return await this.init(),this.readJson(this.deliveriesPath,[])}async exportData(){return{channels:await this.listChannels(),events:await this.listEvents(),deliveries:await this.listDeliveries()}}async ensureArrayFile(e){if(!Ly(e))await om(e,`[] +`,{encoding:"utf-8",mode:384});await pE(e,384).catch(()=>{return})}async readJson(e,r){try{let n=await Oy(e,"utf-8");if(!n.trim())return r;return JSON.parse(n)}catch(n){if(n.code==="ENOENT")return r;throw n}}async writeJson(e,r){let n=`${e}.${process.pid}.${Date.now()}.tmp`;await om(n,`${JSON.stringify(r,null,2)} +`,{encoding:"utf-8",mode:384}),await Ry(n,e),await pE(e,384).catch(()=>{return})}}function Xy(e,r){return`${e}.${r}`}function Ky(e,r,n){return`sha256=${xy("sha256",e).update(Xy(r,n)).digest("hex")}`}function ir(){return new Date().toISOString()}function ku(e,r=4096){return e.length>r?`${e.slice(0,r)}...`:e}function zy(e,r){if(!r.webhook)throw Error(`Channel ${r.id} has no webhook config`);let n=JSON.stringify(e),i=e.time,t={"Content-Type":"application/json","User-Agent":"@hasna/events","X-Hasna-Event-Id":e.id,"X-Hasna-Event-Type":e.type,"X-Hasna-Timestamp":i,...r.webhook.headers};if(r.webhook.secret)t["X-Hasna-Signature"]=Ky(r.webhook.secret,i,n);return{body:n,headers:t}}async function Wy(e,r,n={}){if(!r.webhook)throw Error(`Channel ${r.id} has no webhook config`);let i=ir(),{body:t,headers:u}=zy(e,r),_=new AbortController,c=setTimeout(()=>_.abort(),r.webhook.timeoutMs??15000);try{let d=await(n.fetchImpl??fetch)(r.webhook.url,{method:"POST",headers:u,body:t,signal:_.signal}),g=ku(await d.text());return{attempt:1,status:d.ok?"success":"failed",startedAt:i,completedAt:ir(),responseStatus:d.status,responseBody:g,error:d.ok?void 0:`Webhook returned HTTP ${d.status}`}}catch(d){return{attempt:1,status:"failed",startedAt:i,completedAt:ir(),error:d instanceof Error?d.message:String(d)}}finally{clearTimeout(c)}}async function My(e,r){if(!r.command)throw Error(`Channel ${r.id} has no command config`);let n=ir(),i=JSON.stringify(e),t={...process.env,...r.command.env,HASNA_CHANNEL_ID:r.id,HASNA_EVENT_ID:e.id,HASNA_EVENT_TYPE:e.type,HASNA_EVENT_SOURCE:e.source,HASNA_EVENT_SUBJECT:e.subject??"",HASNA_EVENT_SEVERITY:e.severity,HASNA_EVENT_TIME:e.time,HASNA_EVENT_DEDUPE_KEY:e.dedupeKey??"",HASNA_EVENT_SCHEMA_VERSION:e.schemaVersion,HASNA_EVENT_JSON:i};return new Promise((u)=>{let _=Jy(r.command.command,r.command.args??[],{cwd:r.command.cwd,env:t,stdio:["pipe","pipe","pipe"]}),c="",d="",g=setTimeout(()=>_.kill("SIGTERM"),r.command.timeoutMs??15000);_.stdin.end(i),_.stdout.on("data",(f)=>{c+=f.toString()}),_.stderr.on("data",(f)=>{d+=f.toString()}),_.on("error",(f)=>{clearTimeout(g),u({attempt:1,status:"failed",startedAt:n,completedAt:ir(),stdout:ku(c),stderr:ku(d),error:f.message})}),_.on("close",(f,o)=>{clearTimeout(g);let a=f===0;u({attempt:1,status:a?"success":"failed",startedAt:n,completedAt:ir(),stdout:ku(c),stderr:ku(d),error:a?void 0:`Command exited with ${o?`signal ${o}`:`code ${f}`}`})})})}async function qy(e,r,n={}){if(r.transport==="webhook")return Wy(e,r,n);if(r.transport==="command")return My(e,r);return{attempt:1,status:"skipped",startedAt:ir(),completedAt:ir(),error:`Unsupported transport: ${r.transport}`}}function Gy(e,r,n){let i=n.some((t)=>t.status==="success")?"success":n.every((t)=>t.status==="skipped")?"skipped":"failed";return{id:Fy(),eventId:e.id,channelId:r.id,transport:r.transport,status:i,attempts:n,createdAt:n[0]?.startedAt??ir(),completedAt:n.at(-1)?.completedAt??ir()}}function ek(e){return{id:e.id??Hy(),source:e.source,type:e.type,time:Qy(e.time),subject:e.subject,severity:e.severity??"info",data:e.data??{},message:e.message,dedupeKey:e.dedupeKey,schemaVersion:e.schemaVersion??"1.0",metadata:e.metadata??{}}}class am{store;redactors;transportOptions;constructor(e={}){this.store=e.store??new ik(e.dataDir),this.redactors=e.redactors??[],this.transportOptions={fetchImpl:e.fetchImpl}}async addChannel(e){let r=new Date().toISOString();return this.store.addChannel({...e,createdAt:e.createdAt??r,updatedAt:e.updatedAt??r})}async listChannels(){return this.store.listChannels()}async removeChannel(e){return this.store.removeChannel(e)}async emit(e,r={}){let n=r.redactSensitiveData===!1?ek(e):Yy(ek(e));if(r.dedupe!==!1){let t=await this.store.findEventByIdentity({id:e.id,dedupeKey:n.dedupeKey});if(t)return{event:t,deliveries:[],deduped:!0}}await this.store.appendEvent(n);let i=r.deliver===!1?[]:await this.deliver(n);return{event:n,deliveries:i,deduped:!1}}async listEvents(){return this.store.listEvents()}async listDeliveries(){return this.store.listDeliveries()}async deliver(e){let n=(await this.store.listChannels()).filter((t)=>Uy(t,e)),i=[];for(let t of n){let u=await this.applyRedaction(e,t),_=await this.deliverWithRetry(u,t);await this.store.appendDelivery(_),i.push(_)}return i}async testChannel(e,r={}){let n=await this.store.getChannel(e);if(!n)throw Error(`Channel not found: ${e}`);let i=ek({source:r.source??"hasna.events",type:r.type??"events.test",subject:r.subject??e,severity:r.severity??"info",data:r.data??{test:!0},message:r.message??"Hasna events test delivery",dedupeKey:r.dedupeKey,schemaVersion:r.schemaVersion,metadata:r.metadata,time:r.time,id:r.id}),t=await this.applyRedaction(i,n),u=await this.deliverWithRetry(t,n);return await this.store.appendDelivery(u),u}async replay(e={}){let r=(await this.store.listEvents()).filter((i)=>{if(e.eventId&&i.id!==e.eventId)return!1;if(e.source&&i.source!==e.source)return!1;if(e.type&&i.type!==e.type)return!1;return!0});if(e.dryRun)return{events:r,deliveries:[]};let n=[];for(let i of r)n.push(...await this.deliver(i));return{events:r,deliveries:n}}async applyRedaction(e,r){let n=By(e,r.redact?.paths??[],r.redact?.replacement??"[REDACTED]");for(let i of this.redactors)n=await i(n,r);return n}async deliverWithRetry(e,r){let n=Zy(r.retry),i=[];for(let t=0;t[n,$m(n)?"[REDACTED]":i]));return r}function Cy(e){return e.map(fm)}function Yy(e,r="[REDACTED]"){return nk(e,r)}function $m(e){return/secret|token|password|api[_-]?key|authorization/i.test(e)}function nk(e,r){if(Array.isArray(e))return e.map((n)=>nk(n,r));if(!e||typeof e!=="object")return e;return Object.fromEntries(Object.entries(e).map(([n,i])=>[n,$m(n)?r:nk(i,r)]))}function Vy(e,r,n){let i=r.split("."),t=e;for(let _ of i.slice(0,-1)){let c=t[_];if(!c||typeof c!=="object")return;t=c}let u=i.at(-1);if(u&&u in t)t[u]=n}function Qy(e){if(!e)return new Date().toISOString();return e instanceof Date?e.toISOString():e}function Zy(e){return{maxAttempts:Math.max(1,e?.maxAttempts??1),backoffMs:Math.max(0,e?.backoffMs??250),multiplier:Math.max(1,e?.multiplier??2)}}function tk(e,r){if(!e)return r;let n=JSON.parse(e);if(!n||typeof n!=="object"||Array.isArray(n))throw Error("Expected a JSON object");return n}function sy(e){if(!e?.length)return;let r={};for(let n of e){let i=n.indexOf("=");if(i===-1)throw Error(`Invalid header, expected name=value: ${n}`);r[n.slice(0,i)]=n.slice(i+1)}return r}function py(e){let r={};if(e.source)r.source=e.source;if(e.type)r.type=e.type;if(e.subject)r.subject=e.subject;if(e.severity)r.severity=e.severity;return Object.keys(r).length>0?[r]:void 0}function xn(e){if(e.createClient)return e.createClient();return new am({store:new ik(e.dataDir)})}function Tu(e,r,n){if(r)console.log(JSON.stringify(e,null,2));else console.log(n)}function lm(e){return Boolean(e?.json||e?.opts?.().json||e?.optsWithGlobals?.().json||e?.parent?.opts?.().json||e?.parent?.optsWithGlobals?.().json)}function Xn(e,r){return lm(e)||lm(r)}function e4(e,r){let n=e.command(r.webhooksCommandName??"webhooks").description("Manage Hasna event webhook subscriptions");return n.command("add").description("Add or replace a webhook or command subscription").argument("","Webhook URL or command binary").requiredOption("--id ","Subscription/channel identifier").option("--transport ","Transport kind: webhook or command","webhook").option("--name ","Display name").option("--type ","Event type filter, e.g. todos.task.*").option("--source ","Event source filter").option("--subject ","Event subject filter").option("--severity ","Event severity filter").option("--secret ","Webhook HMAC secret").option("--header ","Webhook header",rk,[]).option("--arg ","Command argument",rk,[]).option("--timeout-ms ","Transport timeout in milliseconds",Zd).option("--retry-attempts ","Maximum delivery attempts",Zd).option("--retry-backoff-ms ","Initial retry backoff in milliseconds",Zd).option("--redact ","Event field path to redact before delivery",rk,[]).option("--disabled","Create channel disabled",!1).option("-j, --json","Print JSON output",!1).action(async(i,t,u)=>{let _=new Date().toISOString(),c={id:t.id,name:t.name,enabled:!t.disabled,transport:t.transport,filters:py(t),retry:t.retryAttempts||t.retryBackoffMs?{maxAttempts:t.retryAttempts,backoffMs:t.retryBackoffMs}:void 0,redact:t.redact?.length?{paths:t.redact}:void 0,createdAt:_,updatedAt:_};if(t.transport==="webhook")c.webhook={url:i,secret:t.secret,headers:sy(t.header),timeoutMs:t.timeoutMs};else if(t.transport==="command")c.command={command:i,args:t.arg??[],timeoutMs:t.timeoutMs};else throw Error(`Transport ${t.transport} is reserved for future use and cannot be added yet`);let d=await xn(r).addChannel(c);Tu(fm(d),Xn(t,u),`Added ${d.transport} channel ${d.id}`)}),n.command("list").description("List configured subscriptions").option("-j, --json","Print JSON output",!1).action(async(i,t)=>{let u=await xn(r).listChannels();if(Xn(i,t)){console.log(JSON.stringify(Cy(u),null,2));return}if(!u.length){console.log("No channels configured.");return}for(let _ of u)console.log(`${_.id} ${_.enabled?"enabled":"disabled"} ${_.transport} ${_.webhook?.url??_.command?.command??_.transport}`)}),n.command("remove").description("Remove a subscription").argument("","Subscription/channel identifier").option("-j, --json","Print JSON output",!1).action(async(i,t,u)=>{let _=await xn(r).removeChannel(i);Tu({removed:_},Xn(t,u),_?`Removed ${i}`:`Channel not found: ${i}`)}),n.command("test").description("Send a test event to one subscription").argument("","Subscription/channel identifier").option("--type ","Event type","events.test").option("--subject ","Event subject").option("--message ","Event message","Hasna events test delivery").option("--data ","Event data JSON object").option("-j, --json","Print JSON output",!1).action(async(i,t,u)=>{let _=await xn(r).testChannel(i,{source:r.source,type:t.type,subject:t.subject??i,message:t.message,data:tk(t.data,{test:!0})});Tu(_,Xn(t,u),`${_.status}: ${_.channelId}`)}),n}function r4(e,r){let n=e.command(r.eventsCommandName??"events").description("Emit, list, and replay Hasna events");return n.command("emit").description("Emit an event from this app").argument("","Event type").option("--source ","Event source override").option("--subject ","Event subject").option("--severity ","Event severity","info").option("--message ","Event message").option("--dedupe-key ","Dedupe key").option("--data ","Event data JSON object").option("--metadata ","Event metadata JSON object").option("--no-deliver","Record without delivering").option("--no-dedupe","Allow duplicate id/dedupeKey events").option("-j, --json","Print JSON output",!1).action(async(i,t,u)=>{let _=await xn(r).emit({source:t.source??r.source,type:i,subject:t.subject,severity:t.severity,message:t.message,dedupeKey:t.dedupeKey,data:tk(t.data,{}),metadata:tk(t.metadata,{})},{deliver:t.deliver,dedupe:t.dedupe});Tu(_,Xn(t,u),`${_.deduped?"Deduped":"Emitted"} ${_.event.id} to ${_.deliveries.length} channel(s)`)}),n.command("list").description("List recorded events").option("--source ","Filter by source").option("--type ","Filter by type").option("--limit ","Limit results",Zd).option("-j, --json","Print JSON output",!1).action(async(i,t)=>{let u=await xn(r).listEvents();if(i.source)u=u.filter((_)=>_.source===i.source);if(i.type)u=u.filter((_)=>_.type===i.type);if(i.limit)u=u.slice(-i.limit);if(Xn(i,t)){console.log(JSON.stringify(u,null,2));return}if(!u.length){console.log("No events recorded.");return}for(let _ of u)console.log(`${_.time} ${_.id} ${_.source} ${_.type} ${_.severity}`)}),n.command("replay").description("Replay recorded events").option("--id ","Replay one event id").option("--source ","Filter by source").option("--type ","Filter by type").option("--dry-run","Preview without delivery",!1).option("-j, --json","Print JSON output",!1).action(async(i,t)=>{let u=await xn(r).replay({eventId:i.id,source:i.source,type:i.type,dryRun:i.dryRun});Tu(u,Xn(i,t),`Replayed ${u.events.length} event(s), ${u.deliveries.length} delivery result(s)`)}),n}function vm(e,r){e4(e,r),r4(e,r)}function Zd(e){let r=Number(e);if(!Number.isFinite(r))throw Error(`Expected a number, got ${e}`);return r}function rk(e,r){return r.push(e),r}import{basename as t4}from"path";var Ve={name:"@hasna/knowledge",version:"0.2.77",description:"Agent-friendly local knowledge CLI with JSON output, pagination, and safe destructive actions",type:"module",exports:{".":{import:"./dist/index.js",types:"./dist/index.d.ts"},"./storage":{import:"./dist/storage.js",types:"./dist/storage.d.ts"},"./serve":{import:"./dist/serve.js",types:"./dist/serve.d.ts"}},main:"./dist/index.js",types:"./dist/index.d.ts",bin:{knowledge:"bin/knowledge.js","knowledge-mcp":"bin/knowledge-mcp.js","knowledge-serve":"bin/knowledge-serve.js"},files:["bin","dist","scripts","docs","LICENSE","README.md"],scripts:{test:"bun test","test:cli":"bun test tests/cli.test.ts","smoke:machines-adapter":"bun scripts/smoke-machines-adapter.mjs","smoke:machine-sync-release":"bun scripts/smoke-machine-sync-release.mjs","smoke:open-files-installed-boundary":"bun scripts/smoke-open-files-installed-boundary.mjs","generate:sdk":"bun scripts/generate-sdk.mjs","migrate:cloud":"bun scripts/apply-cloud-migrations.mjs",serve:"bun src/serve-entry.ts","verify:generated":"bun run build && bun scripts/verify-generated-artifacts.mjs",build:"bun run generate:sdk && rm -rf dist && bun build --target=bun --outfile=bin/knowledge.js --minify --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/cli.ts && bun build --target=bun --outfile=bin/knowledge-mcp.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @modelcontextprotocol/sdk --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/mcp.js && bun build --target=bun --outfile=bin/knowledge-serve.js --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek src/serve-entry.ts && bun build ./src/index.ts ./src/storage.ts ./src/serve.ts --outdir ./dist --target bun --external pg --external @hasna/contracts --external @hasna/machines --external @hasna/machines/consumer --external @aws-sdk/client-s3 --external @aws-sdk/credential-providers --external ai --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/deepseek && bun scripts/strip-generated-trailing-whitespace.mjs && bunx tsc -p tsconfig.build.json",prepublishOnly:"bun run build"},keywords:["knowledge","cli","agents","json","notes","local","store"],license:"Apache-2.0",publishConfig:{registry:"https://registry.npmjs.org",access:"public"},repository:{type:"git",url:"git+https://github.com/hasna/knowledge.git"},bugs:{url:"https://github.com/hasna/knowledge/issues"},author:"Hasna Inc. ",engines:{bun:">=1.0",node:">=18"},dependencies:{"@ai-sdk/anthropic":"^3.0.81","@ai-sdk/deepseek":"^2.0.35","@ai-sdk/openai":"^3.0.68","@aws-sdk/client-s3":"^3.1063.0","@aws-sdk/credential-providers":"^3.1063.0","@hasna/contracts":"0.4.1","@hasna/events":"^0.1.3","@modelcontextprotocol/sdk":"^1.29.0","@types/json-schema":"^7.0.15",ai:"^6.0.197",commander:"^13.1.0",pg:"^8.16.3",zod:"^4.3.6"},devDependencies:{"@types/bun":"^1.3.14","@types/pg":"^8.15.6"}};var Em={debug:0,info:1,warn:2,error:3},i4=()=>{if(process.env.DEBUG)return"debug";if(process.env.LOG_LEVEL==="debug")return"debug";if(process.env.LOG_LEVEL==="warn")return"warn";if(process.env.LOG_LEVEL==="error")return"error";return"info"};function Kn(e,r,n){if(Em[e]Array(r.length+1).fill(0));for(let i=0;i<=e.length;i+=1)n[i][0]=i;for(let i=0;i<=r.length;i+=1)n[0][i]=i;for(let i=1;i<=e.length;i+=1)for(let t=1;t<=r.length;t+=1){let u=e[i-1]===r[t-1]?0:1;n[i][t]=Math.min(n[i-1][t]+1,n[i][t-1]+1,n[i-1][t-1]+u)}return n[e.length][r.length]}function d4(e){if(!e)return"";let r=[...Nm,...Object.keys(bm)],n="",i=Number.POSITIVE_INFINITY;for(let t of r){let u=c4(e,t);if(u [options] @@ -1565,9 +1576,9 @@ Export Options: Prune Options: --older-than Remove items older than N days - --empty Remove items with empty content`)}function E6(e){if(e==="add"){console.log("Usage: knowledge add <content> [--url <url>] [-t <tag>] [--json]");return}if(e==="list"||e==="ls"){console.log("Usage: knowledge list|ls [--format table|json] [-p <page>] [-l <limit>] [-s <search>] [-t <tag>] [--sort created|title] [--desc] [--json]");return}if(e==="get"){console.log("Usage: knowledge get --id <id> [--json]");return}if(e==="update"||e==="edit"){console.log("Usage: knowledge update|edit --id <id> [--title <title>] [--content <content>] [--url <url>] [-t <tag>] [--json]");return}if(e==="archive"){console.log("Usage: knowledge archive --id <id> [--json]");return}if(e==="restore"||e==="unarchive"){console.log("Usage: knowledge restore|unarchive --id <id> [--json]");return}if(e==="upsert"){console.log("Usage: knowledge upsert [title] [content] [--id <id>] [--title <title>] [--content <content>] [--url <url>] [-t <tag>] [--json]");return}if(e==="untag"){console.log("Usage: knowledge untag --id <id> -t <tag> [--json]");return}if(e==="delete"||e==="rm"){console.log("Usage: knowledge delete|rm --id <id> -y [--json]");return}if(e==="export"){console.log("Usage: knowledge export [--format jsonl] [--json]");return}if(e==="prune"){console.log("Usage: knowledge prune --yes [--older-than <days>] [--empty] [--json]");return}if(e==="dedupe"){console.log("Usage: knowledge dedupe --yes [--json]");return}if(e==="stats"){console.log("Usage: knowledge stats [--json]");return}if(e==="inventory"){console.log("Usage: knowledge inventory [--scope local|global|project] [--limit <n>] [--include-archived] [--json]");return}if(e==="project-panel"){console.log("Usage: knowledge project-panel --project <id|name|slug> [--scope project|local|global] [--limit <n>] [--include-archived] [--json|--contract]");return}if(e==="paths"){console.log("Usage: knowledge paths [--scope local|global|project] [--json]");return}if(e==="setup"){console.log("Usage: knowledge setup --mode local|hosted [--api-url https://...] [--canonical-example] [--scope local|global|project] [--json]");return}if(e==="auth"){console.log("Usage: knowledge auth login|whoami|logout [--api-key <key>] [--email <email>] [--org <slug>] [--api-url https://...] [--scope local|global|project] [--json]");return}if(e==="remote"){console.log("Usage: knowledge remote contracts|status [--scope local|global|project] [--json]");return}if(e==="storage"){console.log("Usage: knowledge storage status|validate|repair-artifact-keys|migrate-legacy-path [--approve-write --approved-by <name>] [--scope local|global|project] [--json]");return}if(e==="machines"){console.log("Usage: knowledge machines topology [--no-tailscale] | preflight [machine] [--workspace <repo>] [--scope local|global|project] [--json]");return}if(e==="sync"){console.log(`Usage: knowledge sync status|doctor|readiness|snapshot|machines|conflicts [show|propose|resolve] [id] | dry-run|pull|push|sync|export|import [--peer-workspace <path>] [--machine <ssh-alias>] [--tables <names>] [--dry-run] [--limit <n>] [--approve-write] [--approved-by <name>] [--strategy <name>] [--mode deterministic|ai] [--model <alias|provider:model>] [--fake] [--no-tailscale] [--scope local|global|project] [--json] + --empty Remove items with empty content`)}function a4(e){if(e==="add"){console.log("Usage: knowledge add <title> <content> [--url <url>] [-t <tag>] [--json]");return}if(e==="list"||e==="ls"){console.log("Usage: knowledge list|ls [--format table|json] [-p <page>] [-l <limit>] [-s <search>] [-t <tag>] [--sort created|title] [--desc] [--json]");return}if(e==="get"){console.log("Usage: knowledge get --id <id> [--json]");return}if(e==="update"||e==="edit"){console.log("Usage: knowledge update|edit --id <id> [--title <title>] [--content <content>] [--url <url>] [-t <tag>] [--json]");return}if(e==="archive"){console.log("Usage: knowledge archive --id <id> [--json]");return}if(e==="restore"||e==="unarchive"){console.log("Usage: knowledge restore|unarchive --id <id> [--json]");return}if(e==="upsert"){console.log("Usage: knowledge upsert [title] [content] [--id <id>] [--title <title>] [--content <content>] [--url <url>] [-t <tag>] [--json]");return}if(e==="untag"){console.log("Usage: knowledge untag --id <id> -t <tag> [--json]");return}if(e==="delete"||e==="rm"){console.log("Usage: knowledge delete|rm --id <id> -y [--json]");return}if(e==="export"){console.log("Usage: knowledge export [--format jsonl] [--json]");return}if(e==="prune"){console.log("Usage: knowledge prune --yes [--older-than <days>] [--empty] [--json]");return}if(e==="dedupe"){console.log("Usage: knowledge dedupe --yes [--json]");return}if(e==="stats"){console.log("Usage: knowledge stats [--json]");return}if(e==="inventory"){console.log("Usage: knowledge inventory [--scope local|global|project] [--limit <n>] [--include-archived] [--json]");return}if(e==="project-panel"){console.log("Usage: knowledge project-panel --project <id|name|slug> [--scope project|local|global] [--limit <n>] [--include-archived] [--json|--contract]");return}if(e==="paths"){console.log("Usage: knowledge paths [--scope local|global|project] [--json]");return}if(e==="setup"){console.log("Usage: knowledge setup --mode local|hosted [--api-url https://...] [--canonical-example] [--scope local|global|project] [--json]");return}if(e==="auth"){console.log("Usage: knowledge auth login|whoami|logout [--api-key <key>] [--email <email>] [--org <slug>] [--api-url https://...] [--scope local|global|project] [--json]");return}if(e==="remote"){console.log("Usage: knowledge remote contracts|status [--scope local|global|project] [--json]");return}if(e==="storage"){console.log("Usage: knowledge storage status|validate|repair-artifact-keys|migrate-legacy-path [--approve-write --approved-by <name>] [--scope local|global|project] [--json]");return}if(e==="machines"){console.log("Usage: knowledge machines topology [--no-tailscale] | preflight [machine] [--workspace <repo>] [--scope local|global|project] [--json]");return}if(e==="sync"){console.log(`Usage: knowledge sync status|doctor|readiness|snapshot|machines|conflicts [show|propose|resolve] [id] | dry-run|pull|push|sync|export|import [--peer-workspace <path>] [--machine <ssh-alias>] [--tables <names>] [--dry-run] [--limit <n>] [--approve-write] [--approved-by <name>] [--strategy <name>] [--mode deterministic|ai] [--model <alias|provider:model>] [--fake] [--no-tailscale] [--scope local|global|project] [--json] -Remote machine sync resolves peer paths through @hasna/machines when --peer-workspace is omitted.`);return}if(e==="db"){console.log("Usage: knowledge db init|stats|storage status|push|pull|sync [--tables sources,chunks] [--scope local|global|project] [--json]");return}if(e==="wiki"){console.log("Usage: knowledge wiki init|compile|file-answer|lint [query|prompt] [--title <title>] [--content <answer>] [--approve-write] [--limit <n>] [--scope local|global|project] [--json]");return}if(e==="app-wiki"){console.log("Usage: knowledge app-wiki init | note add|get|list | source add <source-ref> | search <query> | query <query> [--title <title>] [--content <text>] [--tag <tag>] [--source-ref <uri>] [--scope project|local|global] [--allow-global] [--json]");return}if(e==="source"){console.log("Usage: knowledge source resolve <source-ref> [--purpose knowledge_answer|knowledge_index] [--limit <n>] [--scope local|global|project] [--json]");return}if(e==="ingest"){console.log("Usage: knowledge ingest manifest <file|s3://bucket/key> | source <source-ref> | rules [--workspace <path>] [--owner <name>] [--dry-run] [--max-items <n>] [--limit <n>] [--purpose knowledge_index] [--scope local|global|project] [--json]");return}if(e==="reindex"){console.log("Usage: knowledge reindex status|enqueue|embeddings|outbox [file|s3://bucket/key] [--full] [--fake] [--scope local|global|project] [--json]");return}if(e==="search"){console.log("Usage: knowledge search <query> [--context] [--semantic] [--model openai:text-embedding-3-small] [--limit <n>] [--dimensions <n>] [--fake] [--scope local|global|project] [--json]");return}if(e==="context"){console.log("Usage: knowledge context pack <query> [--from search|runs|loops] [--max-tokens <n>] [--max-items <n>] [--limit <n>] [--semantic] [--model openai:text-embedding-3-small] [--dimensions <n>] [--fake] [--scope local|global|project] [--json]");return}if(e==="proposals"){console.log("Usage: knowledge proposals context --from loops --topic <text> [--since <duration|ISO>] [--dedupe] [--max-tokens <n>] [--max-items <n>] [--scope local|global|project] [--json]");return}if(e==="web"){console.log("Usage: knowledge web search <query> [--provider openai|anthropic] [--model provider:model] [--domain <domain>] [--file-results] [--fake] [--scope local|global|project] [--json]");return}if(e==="ask"||e==="build"){console.log("Usage: knowledge ask|build <prompt> [--generate] [--semantic] [--model default|provider:model] [--approve-write] [--scope local|global|project] [--json]");return}if(e==="embeddings"){console.log("Usage: knowledge embeddings status|index|search [query] [--model openai:text-embedding-3-small] [--limit <n>] [--dimensions <n>] [--fake] [--scope local|global|project] [--json]");return}if(e==="providers"){console.log("Usage: knowledge providers status|models|check [provider|model-alias] [--scope local|global|project] [--json]");return}if(e==="safety"){console.log("Usage: knowledge safety status|check|approve|audit|redact [args] [--scope local|global|project] [--json]");return}if(e==="events"){console.log("Usage: knowledge events emit|list|replay [args] [--json]");return}if(e==="webhooks"){console.log("Usage: knowledge webhooks add|list|remove|test [args] [--json]");return}l6()}function a6(e){if(e.noColor||process.env.NO_COLOR)return!1;if(process.env.FORCE_COLOR)return!0;return process.stdout.isTTY===!0}function D(e,r,t){if(r){console.log(JSON.stringify(e,null,2));return}if(typeof e==="string"){console.log(e);return}console.log(e.message??JSON.stringify(e,null,2))}function vL(e){console.log(JSON.stringify(e))}function T6(e){let r=e.summary,t=[`Knowledge inventory (${e.scope})`,`Home: ${e.home}`,`JSON store: ${e.paths.json_store_path}${e.paths.json_store_exists?"":" (missing)"}`,`SQLite catalog: ${e.paths.knowledge_db_path}`,`Summary: ${r.legacy_items} item(s), ${r.sources} source(s), ${r.chunks} chunk(s), ${r.wiki_pages} wiki page(s), ${r.indexes} index(es), ${r.storage_objects} artifact(s), ${r.runs} run(s)`],i=(n,_,u)=>{if(_.length===0)return;t.push("",`${n}:`);for(let c of _.slice(0,e.limit))t.push(`- ${u(c)}`)};return i("Items",e.items,(n)=>`${n.id}: ${n.title}`),i("Sources",e.sources,(n)=>`${n.kind??"source"} ${n.uri} (${n.chunks??0} chunk(s))`),i("Chunks",e.chunks,(n)=>`${n.kind??"chunk"} ${n.id}: ${n.text_preview??""}`),i("Wiki pages",e.wiki_pages,(n)=>`${n.path}: ${n.title}`),i("Indexes",e.indexes,(n)=>`${n.kind??"index"} ${n.name}${n.shard_key?` (${n.shard_key})`:""}`),i("Artifacts",e.storage_objects,(n)=>`${n.kind??"artifact"} ${n.artifact_uri}`),i("Runs",e.runs,(n)=>`${n.type??"run"} ${n.id}: ${n.status??"unknown"}`),i("Machines",e.machines,(n)=>`${n.machine_id}${n.workspace_home?` ${n.workspace_home}`:""}`),i("Sync conflicts",e.sync_conflicts,(n)=>`${n.id}: ${n.entity_kind}/${n.entity_id} ${n.status}`),t.join(` -`)}function NL(e){return!e||e==="local"||e==="localhost"}function sd(e){return e.every((r)=>r.errors.length===0)}function pd(e,r){let t=e.reduce((n,_)=>n+_.rowsWritten,0),i=e.flatMap((n)=>n.errors.map((_)=>`${n.table}: ${_}`));if(i.length>0)return`Storage ${r} completed with errors: ${i.join("; ")}`;return`Storage ${r} completed: ${t} rows across ${e.length} tables`}function k_(e){if(!e.id)throw Error("Missing required --id. Example: knowledge get --id <id>")}function f6(e,r){let t=r.sort??"created";if(t!=="created"&&t!=="title")throw Error("Invalid --sort value. Use 'created' or 'title'.");let i=[...e].sort((n,_)=>{if(t==="title")return n.title.localeCompare(_.title);return n.created_at.localeCompare(_.created_at)});if(r.desc)i.reverse();return{sorted:i,sort:t,direction:r.desc?"desc":"asc"}}async function $6(e){if(await g6(e))return;let{positional:r,flags:t}=_6(e);if(Pt("debug","CLI invoked",{command:r[0],flags:{json:t.json,store:t.store}}),t.version){console.log(t.json?JSON.stringify({name:Ve.name,version:Ve.version},null,2):`${Ve.name} ${Ve.version}`);return}if(t.completions){let g=t.completions;if(g==="bash")console.log('_knowledge() { local cur; cur="${COMP_WORDS[COMP_CWORD]}"; COMPREPLY=($(compgen -W "add list get update archive restore upsert untag delete export prune dedupe stats inventory project-panel paths setup auth remote storage machines sync db wiki app-wiki source ingest reindex search context proposals web ask build embeddings providers safety events webhooks help ls rm edit unarchive --json --yes --help --version --desc --page --limit --search --sort --id --store --title --content --url --tag --format --completions --purpose --model --dimensions --semantic --context --max-tokens --max-items --from --since --topic --dedupe --generate --approve-write --provider --mode --machine --workspace --peer-workspace --api-url --canonical-example --api-key --email --org --org-id --user-id --owner --domain --file-results --full --dry-run --fake --no-tailscale --no-artifact-content --no-color --scope --tables --archived --include-archived --project --contract --source-ref --allow-global" -- "$cur")); }; complete -F _knowledge knowledge');else if(g==="zsh")console.log(`#compdef knowledge -_knowledge() { _arguments -C "1: :(add list get update archive restore upsert untag delete export prune dedupe stats inventory project-panel paths setup auth remote storage machines sync db wiki app-wiki source ingest reindex search context proposals web ask build embeddings providers safety events webhooks help ls rm edit unarchive)" "(--json)--json" "(--yes)-y" "(--help)--help" "(--version)--version" "(--desc)--desc" "(--archived)--archived" "(--include-archived)--include-archived" "(--semantic)--semantic" "(--context)--context" "(--dedupe)--dedupe" "(--generate)--generate" "(--approve-write)--approve-write" "(--canonical-example)--canonical-example" "(--file-results)--file-results" "(--full)--full" "(--dry-run)--dry-run" "(--fake)--fake" "(--no-tailscale)--no-tailscale" "(--no-artifact-content)--no-artifact-content" "(--contract)--contract" "(--allow-global)--allow-global" "(-p --page)"{-p,--page}"[page number]:number:" "(-l --limit)"{-l,--limit}"[items per page]:number:" "(-s --search)"{-s,--search}"[search text]:text:" "(--sort)--sort"{created,title}:" "(--id)--id[item id]:id:" "(--store)--store[store path]:path:" "(--title)--title[new title]:" "(--content)--content[new content]:" "(--url)--url[source url]:" "(-t --tag)"{-t,--tag}"[tag]:tag:" "(--format)--format[json|jsonl]:" "(--completions)--completions[output completions]:shell:(bash zsh fish):" "(--purpose)--purpose[purpose]:" "(--model)--model[model ref]:" "(--dimensions)--dimensions[embedding dimensions]:number:" "(--max-tokens)--max-tokens[token budget]:number:" "(--max-items)--max-items[item budget]:number:" "(--from)--from"{search,loops,runs}:" "(--since)--since[duration or ISO time]:" "(--topic)--topic[topic text]:" "(--provider)--provider[provider]:" "(--mode)--mode"{local,hosted}:" "(--machine)--machine[machine id or SSH alias]:" "(--workspace)--workspace[repo workspace path]:path:" "(--peer-workspace)--peer-workspace[peer repo or knowledge home path]:path:" "(--api-url)--api-url[hosted API URL]:" "(--api-key)--api-key[hosted API key]:" "(--email)--email[email]:" "(--org)--org[org slug]:" "(--org-id)--org-id[org id]:" "(--user-id)--user-id[user id]:" "(--owner)--owner[provenance owner]:" "(--domain)--domain[domain]:" "(--project)--project[project id/name/slug]:" "(--source-ref)--source-ref[source ref]:" "(--no-color)--no-color[disable color]" "(--scope)--scope"{local,global,project}:" "(--tables)--tables[comma-separated DB sync tables]:" }; _knowledge`);else if(g==="fish")console.log('complete -c knowledge -f; complete -c knowledge -a "add list get update archive restore upsert untag delete export prune dedupe stats inventory project-panel paths setup auth remote storage machines sync db wiki app-wiki source ingest reindex search context proposals web ask build embeddings providers safety events webhooks help ls rm edit unarchive"; complete -c knowledge -l json; complete -c knowledge -l yes -s y; complete -c knowledge -l help -s h; complete -c knowledge -l version -s v; complete -c knowledge -l desc; complete -c knowledge -l archived; complete -c knowledge -l include-archived; complete -c knowledge -l semantic; complete -c knowledge -l context; complete -c knowledge -l max-tokens; complete -c knowledge -l max-items; complete -c knowledge -l from -a "search loops runs"; complete -c knowledge -l since; complete -c knowledge -l topic; complete -c knowledge -l dedupe; complete -c knowledge -l generate; complete -c knowledge -l approve-write; complete -c knowledge -l allow-global; complete -c knowledge -l canonical-example; complete -c knowledge -l provider; complete -c knowledge -l mode; complete -c knowledge -l machine; complete -c knowledge -l workspace; complete -c knowledge -l peer-workspace; complete -c knowledge -l api-url; complete -c knowledge -l api-key; complete -c knowledge -l email; complete -c knowledge -l org; complete -c knowledge -l org-id; complete -c knowledge -l user-id; complete -c knowledge -l owner; complete -c knowledge -l domain; complete -c knowledge -l project; complete -c knowledge -l contract; complete -c knowledge -l source-ref; complete -c knowledge -l file-results; complete -c knowledge -l full; complete -c knowledge -l dry-run; complete -c knowledge -l fake; complete -c knowledge -l no-tailscale; complete -c knowledge -l no-artifact-content; complete -c knowledge -s p -l page; complete -c knowledge -s l -l limit; complete -c knowledge -s s -l search; complete -c knowledge -l sort; complete -c knowledge -l id; complete -c knowledge -l store; complete -c knowledge -l title; complete -c knowledge -l content; complete -c knowledge -l url; complete -c knowledge -s t -l tag; complete -c knowledge -l format; complete -c knowledge -l completions; complete -c knowledge -l purpose; complete -c knowledge -l model; complete -c knowledge -l dimensions; complete -c knowledge -l no-color; complete -c knowledge -l scope -a "local global project"; complete -c knowledge -l tables');else throw Error("Invalid --completions value. Use 'bash', 'zsh', or 'fish'.");return}let i=u6(r[0]),n=1;if(o6()&&i&&!IL.includes(i))i="ask",n=0;if(!i||t.help||i==="help"){E6(r[1]);return}let _=i==="project-panel"||i==="app-wiki"?t.scope??"project":t.scope,u=Jd({scope:_});if(i==="storage"){let g=r[1]??"status";if(g==="migrate-legacy-path"||g==="migrate-legacy"||g==="migrate-path"){let E=u.migrateLegacyPath({approveWrite:t.approveWrite,approvedBy:t.approvedBy});if(D(E,t.json),!E.ok&&!t.json)process.exitCode=1;return}}let c=Boolean(t.store),d=t.store;if(!d)if(_==="project"||_==="local")d=u.workspace.jsonStorePath;else d=co();if(!c&&(i==="ask"||i==="build"))Fn(d);if(i==="inventory"){let g=u.inventory({limit:t.limit,includeArchived:t.includeArchived||t.archived,storePath:d});D(t.json?g:T6(g),t.json);return}if(i==="project-panel"){let g=t.project??r[1];if(!g)throw Error("Usage: knowledge project-panel --project <id|name|slug> [--json|--contract]");let E=AO(g,{service:u,limit:t.limit,storePath:d,includeArchived:t.includeArchived||t.archived});D(t.json||t.contract?E:XO(E),t.json||t.contract);return}if(i==="paths"){D(u.paths(),t.json);return}if(i==="setup"){let g=u.setup({mode:t.mode,apiUrl:t.apiUrl,canonicalExample:t.canonicalExample});D(g,t.json);return}if(i==="auth"){let g=r[1]??"whoami";if(g==="whoami"||g==="status"){let E=u.authStatus(process.env);D({ok:!0,...E,message:E.authenticated?`Authenticated via ${E.source}`:"Not authenticated"},t.json);return}if(g==="login"){let E=t.apiKey??process.env.KNOWLEDGE_API_KEY??process.env.HASNA_KNOWLEDGE_API_KEY;if(!E)throw Error("Usage: knowledge auth login --api-key <key> [--email <email>]");let l=u.saveAuth({apiKey:E,email:t.email,orgSlug:t.org,orgId:t.orgId,userId:t.userId,apiUrl:t.apiUrl},process.env);D({ok:!0,authenticated:!0,email:l.email??null,org_slug:l.org_slug??null,api_url:l.api_url??u.authStatus(process.env).api_url,auth_path:u.authStatus(process.env).auth_path,message:`Saved hosted credentials for ${l.email??"API key"}`},t.json);return}if(g==="logout"){let E=u.clearAuth(process.env);D({ok:!0,removed:E,message:E?"Removed hosted credentials":"No hosted credentials found"},t.json);return}throw Error("Invalid auth action. Use 'login', 'whoami', or 'logout'.")}if(i==="remote"){let g=r[1]??"status";if(g==="contracts"||g==="contract"){let E=u.authStatus(process.env);D({ok:!0,authenticated:E.authenticated,api_url:E.api_url,contract:u.remoteContract(),message:`Remote contract v${u.remoteContract().contract_version}`},t.json);return}if(g==="status"){let E=u.authStatus(process.env),l=u.remoteContract();D({ok:!0,mode:u.config().mode,authenticated:E.authenticated,auth_source:E.source,api_url:E.api_url,client_ready:Boolean(u.remoteClient(process.env)),contract_version:l.contract_version,capabilities:l.capabilities,message:E.authenticated?`Remote client ready for ${E.api_url}`:"Remote client not authenticated"},t.json);return}throw Error("Invalid remote action. Use 'contracts' or 'status'.")}if(i==="storage"){let g=r[1]??"status";if(g==="status"){let E=u.storageContract(),l=u.validateStorage();D({ok:l.ok,...E,validation:l,message:`${E.storage_type} artifact storage at ${E.artifact_store.uri_prefix}`},t.json);return}if(g==="validate"){let E=u.validateStorage();D({ok:E.ok,validation:E,message:E.ok?"Storage contract valid":`Storage contract invalid: ${E.errors.join("; ")}`},t.json);return}if(g==="repair-artifact-keys"||g==="repair-keys"){let E=u.repairArtifactManifestKeys({approveWrite:t.approveWrite,approvedBy:t.approvedBy,dryRun:t.dryRun});D(E,t.json);return}if(g==="migrate-legacy-path"||g==="migrate-legacy"||g==="migrate-path"){let E=u.migrateLegacyPath({approveWrite:t.approveWrite,approvedBy:t.approvedBy});if(D(E,t.json),!E.ok&&!t.json)process.exitCode=1;return}throw Error("Invalid storage action. Use 'status', 'validate', 'repair-artifact-keys', or 'migrate-legacy-path'.")}if(i==="machines"){let g=r[1]??"topology";if(g==="topology"||g==="status"){let E=await u.machineTopology({includeTailscale:t.tailscale!==!1});D(E,t.json);return}if(g==="preflight"||g==="check"){let E=r[2]??t.machine??"local",l=t.workspace??process.cwd(),T=await u.machinePreflight({machineId:E,commands:[{command:"bun",required:!0},{command:"knowledge",required:!0}],packages:[{name:Ve.name,command:"knowledge",expectedVersion:Ve.version,required:!0},{name:"@hasna/machines",command:"machines",required:!1}],workspaces:[{label:"open-knowledge",path:l,expectedPackageName:Ve.name,expectedVersion:Ve.version,required:!0}]});if(D(T,t.json),!T.ok&&!t.json)process.exitCode=1;return}throw Error("Invalid machines action. Use 'topology' or 'preflight'.")}if(i==="sync"){let g=r[1]??"status",E=t.tables?t.tables.split(",").map((l)=>l.trim()).filter(Boolean):void 0;if(g==="status"){let l=u.syncStatus();D(l,t.json);return}if(g==="doctor"||g==="readiness"||g==="preflight"){let l=await u.syncDoctor({machine:t.machine??null,peerWorkspace:t.peerWorkspace??null,includeTailscale:t.tailscale!==!1,tables:E});if(D({package:{name:Ve.name,version:Ve.version},...l},t.json),!l.ok&&!t.json)process.exitCode=1;return}if(g==="snapshot"||g==="record"){let l=await u.createSyncSnapshot({includeTailscale:t.tailscale!==!1,machineId:t.machine});D(l,t.json);return}if(g==="conflicts"||g==="conflict"){let l=r[2];if(l==="show"||l==="get"){let f=r[3]??t.id;if(!f)throw Error("Usage: knowledge sync conflicts show <id>");let v=u.syncConflict(f);D({ok:!0,conflict:v,message:`Sync conflict ${f}`},t.json);return}if(l==="propose"||l==="proposal"){let f=r[3]??t.id;if(!f)throw Error("Usage: knowledge sync conflicts propose <id>");D(t.mode==="ai"?await u.proposeSyncConflictResolutionWithAi({id:f,modelRef:t.model,fake:t.fake}):u.proposeSyncConflictResolution(f),t.json);return}if(l==="resolve"){let f=r[3]??t.id;if(!f)throw Error("Usage: knowledge sync conflicts resolve <id> --approve-write --approved-by <name> [--strategy <name>]");let v=u.resolveSyncConflict({id:f,strategy:t.strategy,approvedBy:t.approvedBy,approveWrite:t.approveWrite,proposedPatchUri:t.patchUri});if(D(v,t.json),!v.ok&&!t.json)process.exitCode=1;return}let T=u.syncConflicts({status:l,limit:t.limit});D({ok:!0,conflicts:T,message:`${T.length} sync conflict(s)`},t.json);return}if(g==="machines"||g==="registry"){let l=u.syncMachines();D({ok:!0,machines:l,message:`${l.length} registered sync machine(s)`},t.json);return}if(g==="export"){let l=u.exportSyncBundle({machineId:t.machine??null,tables:E,includeArtifactContent:t.artifactContent!==!1});D(l,!0);return}if(g==="import"){let l=await Bun.stdin.text();if(!l.trim())throw Error("Usage: knowledge sync import < bundle.json");let T=await u.importSyncBundle({bundle:JSON.parse(l),dryRun:t.dryRun,direction:"import",machineId:t.machine??null});D(T,t.json);return}if(g==="dry-run"||g==="pull"||g==="push"||g==="sync"){if(!t.peerWorkspace&&NL(t.machine))throw Error(`Usage: knowledge sync ${g} --peer-workspace <repo-or-knowledge-home> [--scope project] -Remote machine sync can omit --peer-workspace when machines path mapping is configured.`);let l=g==="dry-run"?"both":g==="sync"?"both":g,T=!NL(t.machine)?await u.syncRemotePeer({direction:l,machine:t.machine,peerWorkspace:t.peerWorkspace,tables:E,dryRun:t.dryRun===!0||g==="dry-run",includeArtifactContent:t.artifactContent!==!1,includeTailscale:t.tailscale!==!1}):await u.syncPeer({peerWorkspace:t.peerWorkspace,direction:l,dryRun:t.dryRun===!0||g==="dry-run",tables:E,includeArtifactContent:t.artifactContent!==!1,machineId:t.machine??null});if(D(T,t.json),!T.ok&&!t.json)process.exitCode=1;return}throw Error("Invalid sync action. Use 'status', 'doctor', 'snapshot', 'conflicts', 'machines', 'dry-run', 'pull', 'push', 'sync', 'export', or 'import'.")}if(i==="db"){let g=r[1]??"init";if(g==="init"){let E=u.initDb();D({ok:!0,...E,message:`Initialized ${E.path}`},t.json);return}if(g==="stats"){let E=u.dbStats();D({ok:!0,path:u.workspace.knowledgeDbPath,...E,message:`knowledge.db schema v${E.schema_version}`},t.json);return}if(g==="storage"){let E=r[2]??"status",l=q$(t.tables);if(E==="status"){let T=C$({scope:t.scope});D({ok:!0,...T,message:`knowledge.db storage mode ${T.mode}${T.activeEnv?` via ${T.activeEnv}`:""}`},t.json);return}if(E==="push"){let T=await Gd({scope:t.scope,tables:l});D({ok:sd(T),results:T,message:pd(T,"push")},t.json);return}if(E==="pull"){let T=await Yd({scope:t.scope,tables:l});D({ok:sd(T),results:T,message:pd(T,"pull")},t.json);return}if(E==="sync"){let T=await M$({scope:t.scope,tables:l});D({ok:sd(T.pull)&&sd(T.push),...T,message:`${pd(T.pull,"pull")}; ${pd(T.push,"push")}`},t.json);return}throw Error("Invalid db storage action. Use 'status', 'push', 'pull', or 'sync'.")}throw Error("Invalid db action. Use 'init', 'stats', or 'storage'.")}if(i==="app-wiki"){let g=r[1]??"init";if(g==="paths"||g==="status"){D({ok:!0,standard:"hasna-app-wiki.v1",default_scope:"project",global_writes_require:"--allow-global",...u.paths()},t.json);return}if(g==="init"||g==="open"){let E=await u.initAppWiki({allowGlobal:t.allowGlobal});D(E,t.json);return}if(g==="note"||g==="notes"){let E=r[2]??"list";if(E==="add"||E==="create"){let l=t.title??r[3],T=t.content??r.slice(4).join(" ");if(!l||!T)throw Error("Usage: knowledge app-wiki note add --title <title> --content <text> [--source-ref <uri>]");let f=await u.addAppWikiNote({title:l,content:T,tags:t.tag?[t.tag]:void 0,sourceRefs:t.sourceRef,allowGlobal:t.allowGlobal});D(f,t.json);return}if(E==="list"||E==="ls"){let l=u.listAppWikiNotes({limit:t.limit});D({ok:!0,scope:u.scope,home:u.workspace.home,notes:l,message:`${l.length} app wiki note(s)`},t.json);return}if(E==="get"||E==="show"){let l=r[3]??t.id;if(!l)throw Error("Usage: knowledge app-wiki note get <id-or-path>");let T=await u.getAppWikiNote(l,{includeContent:!0});if(!T)throw Error(`App wiki note not found: ${l}`);D(T,t.json);return}throw Error("Invalid app-wiki note action. Use 'add', 'list', or 'get'.")}if(g==="source"||g==="sources"){let E=r[2]??"add";if(E!=="add"&&E!=="ingest")throw Error("Invalid app-wiki source action. Use 'add'.");let l=r[3]??t.sourceRef?.[0];if(!l)throw Error("Usage: knowledge app-wiki source add <source-ref>");let T=await u.addAppWikiSourceRef({sourceRef:l,purpose:t.purpose,allowGlobal:t.allowGlobal});D({ok:!0,...T,message:`Added app wiki source ${T.source_ref}`},t.json);return}if(g==="search"){let E=r.slice(2).join(" ");if(!E)throw Error("Usage: knowledge app-wiki search <query>");let l=await u.searchAppWiki({query:E,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...l,message:`${l.results.length} app wiki result(s)`},t.json);return}if(g==="query"||g==="context"){let E=r.slice(2).join(" ");if(!E)throw Error("Usage: knowledge app-wiki query <query>");let l=await u.queryAppWiki({query:E,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...l,message:`${l.excerpts.length} app wiki excerpt(s)`},t.json);return}throw Error("Invalid app-wiki action. Use 'init', 'paths', 'note', 'source', 'search', or 'query'.")}if(i==="wiki"){let g=r[1]??"init";if(g==="init"){let E=await u.initWiki();D({ok:!0,...E,message:`Initialized wiki layout in ${u.workspace.home}`},t.json);return}if(g==="compile"){let E=r.slice(2),l=E.filter((v)=>/^(open-files|file|s3|https?):\/\//.test(v)),T=E.filter((v)=>!/^(open-files|file|s3|https?):\/\//.test(v)).join(" "),f=await u.compileWiki({title:t.title,query:T||t.search,sourceRefs:l.length>0?l:void 0,limit:t.limit});D({ok:!0,...f,message:`Compiled wiki page ${f.path}`},t.json);return}if(g==="file-answer"||g==="answer"){let E=r.slice(2).join(" ");if(!E)throw Error("Usage: knowledge wiki file-answer <prompt> --content <answer> --approve-write");if(!t.content)throw Error("Missing --content <answer> for wiki file-answer.");let l=await u.fileAnswer({prompt:E,answer:t.content,approveWrite:t.approveWrite,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...l},t.json);return}if(g==="lint"){let E=u.lintWiki();D({ok:E.ok,...E,message:E.ok?"Wiki lint passed":`Wiki lint found ${E.issue_count} issue(s)`},t.json);return}throw Error("Invalid wiki action. Use 'init', 'compile', 'file-answer', or 'lint'.")}if(i==="safety"){let g=r[1]??"status",E=u.ensureWorkspace(),l=u.safetyPolicy();u.initDb();let T=A(E.knowledgeDbPath);try{if(g==="status"){D({ok:!0,mode:l.mode,workspace:E.home,allow_write_roots:l.allowWriteRoots,read_only_source_access:l.readOnlySourceAccess,network:l.network,redaction:l.redaction,approvals:l.approvals,message:`Safety policy: ${l.mode}`},t.json);return}if(g==="check"){let f=r[2]??"generated_write",v=r[3]??null,N;try{if(f==="web_search")zt(l),N={action:f,target_uri:v,approval_required:!1,approved:!0,decision:"allow"};else if(f==="s3_read"){if(!v)throw Error("safety check s3_read requires an s3:// target.");Dr(v,l),N={action:f,target_uri:v,approval_required:!1,approved:!0,decision:"allow"}}else N=Jv(T,l,f,v);re(T,{event_type:"safety_check",action:f,target_uri:v,decision:N.decision==="allow"?"allow":"requires_approval",metadata:N}),D({ok:!0,...N,message:`Safety check ${N.decision}`},t.json);return}catch(k){throw re(T,{event_type:"safety_check",action:f,target_uri:v,decision:"deny",metadata:{error:k instanceof Error?k.message:String(k)}}),k}}if(g==="approve"){let f=r[2]??"generated_write",v=r[3]??null,N=Wv(T,{action:f,target_uri:v,reason:"local-cli approval",metadata:{scope:t.scope??"global"}});re(T,{event_type:"approval",action:f,target_uri:v,decision:"allow",metadata:{approval_id:N.id}}),D({ok:!0,...N,action:f,target_uri:v,message:`Approved ${f}`},t.json);return}if(g==="audit"){let f=T.query("SELECT id, event_type, action, target_uri, decision, metadata_json, created_at FROM audit_events ORDER BY created_at DESC LIMIT 50").all().map((v)=>({id:v.id,event_type:v.event_type,action:v.action,target_uri:v.target_uri,decision:v.decision,metadata:JSON.parse(v.metadata_json),created_at:v.created_at}));D({ok:!0,events:f,message:`${f.length} audit event(s)`},t.json);return}if(g==="redact"){let f=r.slice(2).join(" ");if(!f)throw Error("Usage: knowledge safety redact <text>");let v=ye(f,l);if(v.findings.length>0)D_(T,{source_uri:"safety://redact",findings:v.findings,metadata:{command:"safety redact"}});re(T,{event_type:"redaction",action:"safety_redact",target_uri:"safety://redact",decision:v.findings.length>0?"redacted":"allow",metadata:{findings:v.findings.length}}),D({ok:!0,text:v.text,findings:v.findings,message:`Redacted ${v.findings.length} finding(s)`},t.json);return}throw Error("Invalid safety action. Use 'status', 'check', 'approve', 'audit', or 'redact'.")}finally{T.close()}}if(i==="source"){if((r[1]??"")!=="resolve")throw Error("Invalid source action. Use 'resolve'.");let E=r[2];if(!E)throw Error("Usage: knowledge source resolve <source-ref>");let l=await u.resolveSource(E,{purpose:t.purpose,limit:t.limit});D({ok:!0,...l,message:l.resolved?`Resolved ${l.source_ref} (${l.content.chunks_returned}/${l.content.chunks_total} chunks)`:`Source not indexed: ${E}`},t.json);return}if(i==="ingest"){let g=r[1]??"";if(g==="rules"||g==="global-rules"||g==="agent-rules"){let E=await u.importRulesProvenance({root:t.workspace??process.cwd(),owner:t.owner,dryRun:t.dryRun===!0,maxItems:t.maxItems,limit:t.limit});D({ok:!0,...E},t.json);return}if(g==="manifest"){let E=r[2];if(!E)throw Error("Usage: knowledge ingest manifest <file|s3://bucket/key>");let l=await u.ingestManifest(E);D({ok:!0,...l,message:`Ingested ${l.items_seen} manifest item(s)`},t.json);return}if(g==="source"){let E=r[2];if(!E)throw Error("Usage: knowledge ingest source <source-ref>");let l=await u.ingestSource(E,t.purpose);D({ok:!0,...l,message:`Ingested source ${l.source_ref} (${l.chunks_inserted} chunks)`},t.json);return}throw Error("Invalid ingest action. Use 'manifest' or 'source'.")}if(i==="reindex"){let g=r[1]??"status";if(g==="status"){let E=u.reindexHealth({modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...E,message:`${E.missing_embeddings} chunk(s) missing embeddings`},t.json);return}if(g==="enqueue"){let E=u.enqueueReindex({modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...E,message:`Queued ${E.enqueued} embedding refresh item(s)`},t.json);return}if(g==="embeddings"){let E=await u.refreshEmbeddings({full:t.full,limit:t.limit,modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...E,message:`Embedded ${E.indexed.chunks_embedded} chunk(s)`},t.json);return}if(g==="outbox"){let E=r[2];if(!E)throw Error("Usage: knowledge reindex outbox <file|s3://bucket/key>");let l=await u.consumeOutbox(E);D({ok:!0,...l,message:`Consumed ${l.events_seen} outbox event(s)`},t.json);return}throw Error("Invalid reindex action. Use 'status', 'enqueue', 'embeddings', or 'outbox'.")}if(i==="embeddings"){let g=r[1]??"status";if(g==="status"){let E=u.embeddingStatus();D({ok:!0,...E,message:`${E.total_vector_entries} vector index entries`},t.json);return}if(g==="index"){let E=await u.indexEmbeddings({limit:t.limit,modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...E,message:`Embedded ${E.chunks_embedded} chunk(s)`},t.json);return}if(g==="search"){let E=r.slice(2).join(" ");if(!E)throw Error("Usage: knowledge embeddings search <query>");let l=await u.semanticSearch({query:E,limit:t.limit,modelRef:t.model,dimensions:t.dimensions,fake:t.fake});D({ok:!0,...l,message:`${l.results.length} semantic result(s)`},t.json);return}throw Error("Invalid embeddings action. Use 'status', 'index', or 'search'.")}if(i==="context"){if((r[1]??"pack")!=="pack")throw Error("Invalid context action. Use 'pack'.");let E=t.from??"search";if(!["search","loops","runs"].includes(E))throw Error("Invalid --from value. Use 'search', 'loops', or 'runs'.");let l=r.slice(2).join(" ")||t.topic||"",T=await u.contextPack({source:E,purpose:E==="loops"||E==="runs"?"proposal":"agent_context",query:l,topic:t.topic,since:t.since,dedupe:t.dedupe,maxTokens:t.maxTokens,maxItems:t.maxItems,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake,legacyStorePath:d});vL({ok:!0,...T,message:T.message});return}if(i==="proposals"){if((r[1]??"context")!=="context")throw Error("Invalid proposals action. Use 'context'.");let E=t.from??"loops";if(!["loops","runs"].includes(E))throw Error("Invalid --from value for proposals. Use 'loops' or 'runs'.");let l=t.topic??r.slice(2).join(" ");if(!l.trim())throw Error("Usage: knowledge proposals context --from loops --topic <text>");let T=await u.contextPack({source:E,purpose:"proposal",query:l,topic:l,since:t.since,dedupe:t.dedupe??!0,maxTokens:t.maxTokens,maxItems:t.maxItems,limit:t.limit});vL({ok:!0,...T,message:T.message});return}if(i==="search"){let g=r.slice(1).join(" ");if(!g)throw Error("Usage: knowledge search <query>");if(t.context){let l=await u.retrieveContext({query:g,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake,legacyStorePath:d});D({ok:!0,...l,message:`${l.excerpts.length} context excerpt(s)`},t.json);return}let E=await u.search({query:g,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake,legacyStorePath:d});D({ok:!0,...E,message:`${E.results.length} search result(s)`},t.json);return}if(i==="web"){if((r[1]??"search")!=="search")throw Error("Invalid web action. Use 'search'.");let E=r.slice(2).join(" ");if(!E)throw Error("Usage: knowledge web search <query>");let l=await u.webSearch({query:E,limit:t.limit,modelRef:t.model,provider:t.provider,domains:t.domain,fake:t.fake,fileResults:t.fileResults});D({ok:!0,...l,message:`${l.sources.length} web source(s)`},t.json);return}if(i==="ask"||i==="build"){let g=r.slice(n).join(" ");if(!g)throw Error("Usage: knowledge ask <prompt>");let E=await u.runPrompt({prompt:g,limit:t.limit,semantic:t.semantic,modelRef:t.model,dimensions:t.dimensions,fake:t.fake,generate:t.generate,approveWrite:t.approveWrite,legacyStorePath:d});D({ok:!0,...E,message:E.generated?"Generated answer with citations":"Prepared citation context draft"},t.json);return}if(i==="providers"){let g=r[1]??"status";if(g==="status"){let E=u.providerStatus(),l=E.providers.filter((T)=>T.configured).length;D({ok:!0,...E,message:`${l}/${E.providers.length} provider credential(s) configured`},t.json);return}if(g==="models"){let E=u.modelRegistry();D({ok:!0,models:E,message:`${E.length} model alias(es)`},t.json);return}if(g==="check"){let E=r[2]??"default",l=se(E,u.config()),T=le(l),f=sr(T.provider,u.config());D({ok:!0,target:E,model_ref:l,provider:T.provider,model:T.model,credential:f,message:`${T.provider} credentials configured`},t.json);return}throw Error("Invalid providers action. Use 'status', 'models', or 'check'.")}if(i==="add"){let g=r[1],E=r[2];if(!g||!E)throw Error("Usage: knowledge add <title> <content>");Je(d,()=>{let l=dr(d),T={id:oo(),title:g,content:E,url:t.url??null,tags:t.tag?[t.tag]:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString()};l.items.push(T),Ae(d,l),Pt("info","Item added",{id:T.id,title:T.title}),D({ok:!0,item:T,message:`Added ${T.id}`},t.json)},{createParent:!0});return}if(i==="list"){if(t.format!==void 0&&t.format!=="table"&&t.format!=="json")throw Error("Invalid --format value for list. Use 'table' or 'json'.");let g=br(d),E=Number.isFinite(t.page)&&t.page>0?t.page:1,l=Number.isFinite(t.limit)&&t.limit>0?t.limit:20,T=t.search?String(t.search).toLowerCase():"",f=t.tag?String(t.tag).toLowerCase():"",v=t.format==="table"||!t.json&&!t.format&&a6(t),N=t.json||t.format==="json",k=g.items;if(t.archived)k=k.filter((W)=>W.archived===!0);else if(!t.includeArchived)k=k.filter((W)=>!W.archived);if(T)k=k.filter((W)=>W.title.toLowerCase().includes(T)||W.content.toLowerCase().includes(T));if(f)k=k.filter((W)=>W.tags&&W.tags.map((te)=>te.toLowerCase()).includes(f));let{sorted:R,sort:S,direction:U}=f6(k,t),X=(E-1)*l,j=R.slice(X,X+l),K=Math.max(1,Math.ceil(R.length/l));if(N){D({ok:!0,page:E,limit:l,total:R.length,total_pages:K,sort:S,direction:U,items:j,store_exists:g.exists},!0);return}if(j.length===0){D(`No items found (search=${T||"none"}, tag=${f||"none"})`,!1);return}if(v){let W=(q)=>q,te=`${W("ID")} ${W("TITLE")} ${W("CREATED")} ${W("URL")} ${W("TAGS")}`;console.log(te);for(let q of j)console.log(`${q.id} ${W(q.title)} ${q.created_at} ${q.url?W(q.url):""} ${q.tags?.length?W(`[${q.tags.join(", ")}]`):""}`);console.log(`Page ${E}/${K} | showing ${j.length} of ${R.length} | sort=${S} ${U} | search=${T||"none"} | tag=${f||"none"}`)}else{for(let W of j)console.log(`${W.id} ${W.title} ${W.created_at}${W.url?` ${W.url}`:""}${W.tags?.length?` [${W.tags.join(", ")}]`:""}`);console.log(`Page ${E}/${K} | showing ${j.length} of ${R.length} | sort=${S} ${U} | search=${T||"none"} | tag=${f||"none"}`)}return}if(i==="get"){k_(t);let g=br(d),E=g.items.find((l)=>l.id===t.id||l.short_id===t.id);if(!E)throw Error(`Item not found: ${t.id}`);D({ok:!0,item:E,store_exists:g.exists,message:`${E.id}: ${E.title}`},t.json);return}if(i==="update"){k_(t),Je(d,()=>{let g=dr(d),E=g.items.findIndex((T)=>T.id===t.id||T.short_id===t.id);if(E===-1)throw Error(`Item not found: ${t.id}`);let l=g.items[E];if(t.title!==void 0)l.title=t.title;if(t.content!==void 0)l.content=t.content;if(t.url!==void 0)l.url=t.url;if(t.tag!==void 0){if(l.tags=l.tags||[],!l.tags.map((T)=>T.toLowerCase()).includes(t.tag.toLowerCase()))l.tags.push(t.tag)}l.updated_at=new Date().toISOString(),g.items[E]=l,Ae(d,g),D({ok:!0,item:l,message:`Updated ${l.id}`},t.json)},{createParent:!0});return}if(i==="archive"||i==="restore"){k_(t),Je(d,()=>{let g=dr(d),E=g.items.findIndex((T)=>T.id===t.id||T.short_id===t.id);if(E===-1)throw Error(`Item not found: ${t.id}`);let l=g.items[E];l.archived=i==="archive",l.updated_at=new Date().toISOString(),g.items[E]=l,Ae(d,g),D({ok:!0,item:l,message:`${i==="archive"?"Archived":"Restored"} ${l.id}`},t.json)},{createParent:!0});return}if(i==="untag"){if(k_(t),!t.tag)throw Error("Missing required --tag. Example: knowledge untag --id <id> -t <tag>");Je(d,()=>{let g=dr(d),E=g.items.findIndex((f)=>f.id===t.id||f.short_id===t.id);if(E===-1)throw Error(`Item not found: ${t.id}`);let l=g.items[E],T=l.tags?.length??0;l.tags=(l.tags??[]).filter((f)=>f.toLowerCase()!==t.tag.toLowerCase()),l.updated_at=new Date().toISOString(),g.items[E]=l,Ae(d,g),D({ok:!0,item:l,removed:T-l.tags.length,message:`Removed tag from ${l.id}`},t.json)},{createParent:!0});return}if(i==="upsert"){let g=t.title??r[1],E=t.content??r[2];Je(d,()=>{let l=dr(d),T=t.id?l.items.findIndex((N)=>N.id===t.id||N.short_id===t.id):-1,f=new Date().toISOString();if(T===-1){if(!g||!E)throw Error("New item requires title and content. Example: knowledge upsert <title> <content> [--id <id>]");let N=t.id??oo(),k={id:N,short_id:fv(N),title:g,content:E,url:t.url??null,tags:t.tag?[t.tag]:[],metadata:{},archived:!1,created_at:f,updated_at:f};l.items.push(k),Ae(d,l),D({ok:!0,created:!0,item:k,message:`Upserted ${k.id}`},t.json);return}let v=l.items[T];if(g!==void 0)v.title=g;if(E!==void 0)v.content=E;if(t.url!==void 0)v.url=t.url;if(t.tag!==void 0){if(v.tags=v.tags||[],!v.tags.map((N)=>N.toLowerCase()).includes(t.tag.toLowerCase()))v.tags.push(t.tag)}v.updated_at=f,l.items[T]=v,Ae(d,l),D({ok:!0,created:!1,item:v,message:`Upserted ${v.id}`},t.json)},{createParent:!0});return}if(i==="delete"){if(k_(t),!t.yes)throw Error("Refusing delete without --yes. Re-run with: knowledge delete --id <id> --yes");Je(d,()=>{let g=dr(d),E=g.items.length;g.items=g.items.filter((T)=>T.id!==t.id&&T.short_id!==t.id);let l=E!==g.items.length;if(Ae(d,g),!l)throw Error(`Item not found: ${t.id}`);Pt("info","Item deleted",{id:t.id}),D({ok:!0,deleted_id:t.id,message:`Deleted ${t.id}`},t.json)},{createParent:!0});return}if(i==="export"){let g=t.format??"json";if(g!=="json"&&g!=="jsonl")throw Error("Invalid --format. Use 'json' or 'jsonl'.");let E=br(d);if(g==="jsonl")for(let l of E.items)console.log(JSON.stringify(l));else D({ok:!0,items:E.items,store_exists:E.exists},t.json);return}if(i==="prune"){if(!t.yes)throw Error("Refusing prune without --yes. Re-run with: knowledge prune --yes [--older-than <days>] [--empty]");Je(d,()=>{let g=dr(d),E=g.items.length;if(t.olderThan!==void 0){let T=new Date;T.setDate(T.getDate()-t.olderThan),g.items=g.items.filter((f)=>new Date(f.created_at)>=T)}if(t.empty)g.items=g.items.filter((T)=>T.content.trim().length>0);let l=E-g.items.length;Ae(d,g),Pt("info","Prune completed",{pruned:l,remaining:g.items.length}),D({ok:!0,pruned:l,remaining:g.items.length,message:`Pruned ${l} item(s)`},t.json)},{createParent:!0});return}if(i==="dedupe"){if(!t.yes)throw Error("Refusing dedupe without --yes. Re-run with: knowledge dedupe --yes [--json]");Je(d,()=>{let g=dr(d),E=new Set,l=g.items.length;g.items=g.items.filter((f)=>{let v=`${f.title}\x00${f.content}`;if(E.has(v))return!1;return E.add(v),!0});let T=l-g.items.length;Ae(d,g),Pt("info","Dedupe completed",{removed:T,remaining:g.items.length}),D({ok:!0,removed:T,remaining:g.items.length,message:`Dedupe removed ${T} duplicate(s)`},t.json)},{createParent:!0});return}if(i==="stats"){let g=br(d),E=g.items.filter((U)=>!U.archived),l=E.length,T=g.items.length-l,f=E.filter((U)=>U.url).length,v=E.filter((U)=>U.tags&&U.tags.length>0).length,N=l>0?E.map((U)=>U.created_at).sort()[0]:null,k=l>0?E.map((U)=>U.created_at).sort()[l-1]:null,R={};for(let U of E)for(let X of U.tags||[])R[X]=(R[X]||0)+1;let S=Object.entries(R).sort((U,X)=>X[1]-U[1]).slice(0,5).map(([U,X])=>({tag:U,count:X}));D({ok:!0,total:l,archived:T,with_url:f,with_tags:v,oldest:N,newest:k,top_tags:S,store_exists:g.exists,message:`${l} items | ${f} with URL | ${v} with tags`},t.json);return}let o=d6(r[0]),a=o?` Did you mean '${o}'?`:"";throw Pt("warn","Unknown command",{input:r[0],suggestion:o}),Error(`Unknown command: ${r[0]}.${a} Run 'knowledge --help' for available commands.`)}if(import.meta.main)$6(process.argv.slice(2)).catch((e)=>{let r=e instanceof Error?e.message:String(e);Pt("error","CLI error",{message:r,stack:e instanceof Error?e.stack:void 0}),console.error(`Error: ${r}`),process.exitCode=1});export{d6 as suggestCommand,f6 as sortItems,$6 as run,_6 as parseArgs}; +Remote machine sync resolves peer paths through @hasna/machines when --peer-workspace is omitted.`);return}if(e==="db"){console.log("Usage: knowledge db init|stats|storage status|push|pull|sync [--tables sources,chunks] [--scope local|global|project] [--json]");return}if(e==="wiki"){console.log("Usage: knowledge wiki init|compile|file-answer|lint [query|prompt] [--title <title>] [--content <answer>] [--approve-write] [--limit <n>] [--scope local|global|project] [--json]");return}if(e==="app-wiki"){console.log("Usage: knowledge app-wiki init | note add|get|list | source add <source-ref> | search <query> | query <query> [--title <title>] [--content <text>] [--tag <tag>] [--source-ref <uri>] [--scope project|local|global] [--allow-global] [--json]");return}if(e==="source"){console.log("Usage: knowledge source resolve <source-ref> [--purpose knowledge_answer|knowledge_index] [--limit <n>] [--scope local|global|project] [--json]");return}if(e==="ingest"){console.log("Usage: knowledge ingest manifest <file|s3://bucket/key> | source <source-ref> | rules [--workspace <path>] [--owner <name>] [--dry-run] [--max-items <n>] [--limit <n>] [--purpose knowledge_index] [--scope local|global|project] [--json]");return}if(e==="reindex"){console.log("Usage: knowledge reindex status|enqueue|embeddings|outbox [file|s3://bucket/key] [--full] [--fake] [--scope local|global|project] [--json]");return}if(e==="search"){console.log("Usage: knowledge search <query> [--context] [--semantic] [--model openai:text-embedding-3-small] [--limit <n>] [--dimensions <n>] [--fake] [--scope local|global|project] [--json]");return}if(e==="context"){console.log("Usage: knowledge context pack <query> [--from search|runs|loops] [--max-tokens <n>] [--max-items <n>] [--limit <n>] [--semantic] [--model openai:text-embedding-3-small] [--dimensions <n>] [--fake] [--scope local|global|project] [--json]");return}if(e==="proposals"){console.log("Usage: knowledge proposals context --from loops --topic <text> [--since <duration|ISO>] [--dedupe] [--max-tokens <n>] [--max-items <n>] [--scope local|global|project] [--json]");return}if(e==="web"){console.log("Usage: knowledge web search <query> [--provider openai|anthropic] [--model provider:model] [--domain <domain>] [--file-results] [--fake] [--scope local|global|project] [--json]");return}if(e==="ask"||e==="build"){console.log("Usage: knowledge ask|build <prompt> [--generate] [--semantic] [--model default|provider:model] [--approve-write] [--scope local|global|project] [--json]");return}if(e==="embeddings"){console.log("Usage: knowledge embeddings status|index|search [query] [--model openai:text-embedding-3-small] [--limit <n>] [--dimensions <n>] [--fake] [--scope local|global|project] [--json]");return}if(e==="providers"){console.log("Usage: knowledge providers status|models|check [provider|model-alias] [--scope local|global|project] [--json]");return}if(e==="safety"){console.log("Usage: knowledge safety status|check|approve|audit|redact [args] [--scope local|global|project] [--json]");return}if(e==="events"){console.log("Usage: knowledge events emit|list|replay [args] [--json]");return}if(e==="webhooks"){console.log("Usage: knowledge webhooks add|list|remove|test [args] [--json]");return}l4()}function f4(e){if(e.noColor||process.env.NO_COLOR)return!1;if(process.env.FORCE_COLOR)return!0;return process.stdout.isTTY===!0}function h(e,r,n){if(r){console.log(JSON.stringify(e,null,2));return}if(typeof e==="string"){console.log(e);return}console.log(e.message??JSON.stringify(e,null,2))}function km(e){console.log(JSON.stringify(e))}function $4(e){let r=e.summary,n=[`Knowledge inventory (${e.scope})`,`Home: ${e.home}`,`JSON store: ${e.paths.json_store_path}${e.paths.json_store_exists?"":" (missing)"}`,`SQLite catalog: ${e.paths.knowledge_db_path}`,`Summary: ${r.legacy_items} item(s), ${r.sources} source(s), ${r.chunks} chunk(s), ${r.wiki_pages} wiki page(s), ${r.indexes} index(es), ${r.storage_objects} artifact(s), ${r.runs} run(s)`],i=(t,u,_)=>{if(u.length===0)return;n.push("",`${t}:`);for(let c of u.slice(0,e.limit))n.push(`- ${_(c)}`)};return i("Items",e.items,(t)=>`${t.id}: ${t.title}`),i("Sources",e.sources,(t)=>`${t.kind??"source"} ${t.uri} (${t.chunks??0} chunk(s))`),i("Chunks",e.chunks,(t)=>`${t.kind??"chunk"} ${t.id}: ${t.text_preview??""}`),i("Wiki pages",e.wiki_pages,(t)=>`${t.path}: ${t.title}`),i("Indexes",e.indexes,(t)=>`${t.kind??"index"} ${t.name}${t.shard_key?` (${t.shard_key})`:""}`),i("Artifacts",e.storage_objects,(t)=>`${t.kind??"artifact"} ${t.artifact_uri}`),i("Runs",e.runs,(t)=>`${t.type??"run"} ${t.id}: ${t.status??"unknown"}`),i("Machines",e.machines,(t)=>`${t.machine_id}${t.workspace_home?` ${t.workspace_home}`:""}`),i("Sync conflicts",e.sync_conflicts,(t)=>`${t.id}: ${t.entity_kind}/${t.entity_id} ${t.status}`),n.join(` +`)}function Tm(e){return!e||e==="local"||e==="localhost"}function sd(e){return e.every((r)=>r.errors.length===0)}function pd(e,r){let n=e.reduce((t,u)=>t+u.rowsWritten,0),i=e.flatMap((t)=>t.errors.map((u)=>`${t.table}: ${u}`));if(i.length>0)return`Storage ${r} completed with errors: ${i.join("; ")}`;return`Storage ${r} completed: ${n} rows across ${e.length} tables`}function Su(e){if(!e.id)throw Error("Missing required --id. Example: knowledge get --id <id>")}function v4(e,r){let n=r.sort??"created";if(n!=="created"&&n!=="title")throw Error("Invalid --sort value. Use 'created' or 'title'.");let i=[...e].sort((t,u)=>{if(n==="title")return t.title.localeCompare(u.title);return t.created_at.localeCompare(u.created_at)});if(r.desc)i.reverse();return{sorted:i,sort:n,direction:r.desc?"desc":"asc"}}async function E4(e){if(await o4(e))return;let{positional:r,flags:n}=u4(e);if(Kn("debug","CLI invoked",{command:r[0],flags:{json:n.json,store:n.store}}),n.version){console.log(n.json?JSON.stringify({name:Ve.name,version:Ve.version},null,2):`${Ve.name} ${Ve.version}`);return}if(n.completions){let o=n.completions;if(o==="bash")console.log('_knowledge() { local cur; cur="${COMP_WORDS[COMP_CWORD]}"; COMPREPLY=($(compgen -W "add list get update archive restore upsert untag delete export prune dedupe stats inventory project-panel paths setup auth remote storage machines sync db wiki app-wiki source ingest reindex search context proposals web ask build embeddings providers safety events webhooks help ls rm edit unarchive --json --yes --help --version --desc --page --limit --search --sort --id --store --title --content --url --tag --format --completions --purpose --model --dimensions --semantic --context --max-tokens --max-items --from --since --topic --dedupe --generate --approve-write --provider --mode --machine --workspace --peer-workspace --api-url --canonical-example --api-key --email --org --org-id --user-id --owner --domain --file-results --full --dry-run --fake --no-tailscale --no-artifact-content --no-color --scope --tables --archived --include-archived --project --contract --source-ref --allow-global" -- "$cur")); }; complete -F _knowledge knowledge');else if(o==="zsh")console.log(`#compdef knowledge +_knowledge() { _arguments -C "1: :(add list get update archive restore upsert untag delete export prune dedupe stats inventory project-panel paths setup auth remote storage machines sync db wiki app-wiki source ingest reindex search context proposals web ask build embeddings providers safety events webhooks help ls rm edit unarchive)" "(--json)--json" "(--yes)-y" "(--help)--help" "(--version)--version" "(--desc)--desc" "(--archived)--archived" "(--include-archived)--include-archived" "(--semantic)--semantic" "(--context)--context" "(--dedupe)--dedupe" "(--generate)--generate" "(--approve-write)--approve-write" "(--canonical-example)--canonical-example" "(--file-results)--file-results" "(--full)--full" "(--dry-run)--dry-run" "(--fake)--fake" "(--no-tailscale)--no-tailscale" "(--no-artifact-content)--no-artifact-content" "(--contract)--contract" "(--allow-global)--allow-global" "(-p --page)"{-p,--page}"[page number]:number:" "(-l --limit)"{-l,--limit}"[items per page]:number:" "(-s --search)"{-s,--search}"[search text]:text:" "(--sort)--sort"{created,title}:" "(--id)--id[item id]:id:" "(--store)--store[store path]:path:" "(--title)--title[new title]:" "(--content)--content[new content]:" "(--url)--url[source url]:" "(-t --tag)"{-t,--tag}"[tag]:tag:" "(--format)--format[json|jsonl]:" "(--completions)--completions[output completions]:shell:(bash zsh fish):" "(--purpose)--purpose[purpose]:" "(--model)--model[model ref]:" "(--dimensions)--dimensions[embedding dimensions]:number:" "(--max-tokens)--max-tokens[token budget]:number:" "(--max-items)--max-items[item budget]:number:" "(--from)--from"{search,loops,runs}:" "(--since)--since[duration or ISO time]:" "(--topic)--topic[topic text]:" "(--provider)--provider[provider]:" "(--mode)--mode"{local,hosted}:" "(--machine)--machine[machine id or SSH alias]:" "(--workspace)--workspace[repo workspace path]:path:" "(--peer-workspace)--peer-workspace[peer repo or knowledge home path]:path:" "(--api-url)--api-url[hosted API URL]:" "(--api-key)--api-key[hosted API key]:" "(--email)--email[email]:" "(--org)--org[org slug]:" "(--org-id)--org-id[org id]:" "(--user-id)--user-id[user id]:" "(--owner)--owner[provenance owner]:" "(--domain)--domain[domain]:" "(--project)--project[project id/name/slug]:" "(--source-ref)--source-ref[source ref]:" "(--no-color)--no-color[disable color]" "(--scope)--scope"{local,global,project}:" "(--tables)--tables[comma-separated DB sync tables]:" }; _knowledge`);else if(o==="fish")console.log('complete -c knowledge -f; complete -c knowledge -a "add list get update archive restore upsert untag delete export prune dedupe stats inventory project-panel paths setup auth remote storage machines sync db wiki app-wiki source ingest reindex search context proposals web ask build embeddings providers safety events webhooks help ls rm edit unarchive"; complete -c knowledge -l json; complete -c knowledge -l yes -s y; complete -c knowledge -l help -s h; complete -c knowledge -l version -s v; complete -c knowledge -l desc; complete -c knowledge -l archived; complete -c knowledge -l include-archived; complete -c knowledge -l semantic; complete -c knowledge -l context; complete -c knowledge -l max-tokens; complete -c knowledge -l max-items; complete -c knowledge -l from -a "search loops runs"; complete -c knowledge -l since; complete -c knowledge -l topic; complete -c knowledge -l dedupe; complete -c knowledge -l generate; complete -c knowledge -l approve-write; complete -c knowledge -l allow-global; complete -c knowledge -l canonical-example; complete -c knowledge -l provider; complete -c knowledge -l mode; complete -c knowledge -l machine; complete -c knowledge -l workspace; complete -c knowledge -l peer-workspace; complete -c knowledge -l api-url; complete -c knowledge -l api-key; complete -c knowledge -l email; complete -c knowledge -l org; complete -c knowledge -l org-id; complete -c knowledge -l user-id; complete -c knowledge -l owner; complete -c knowledge -l domain; complete -c knowledge -l project; complete -c knowledge -l contract; complete -c knowledge -l source-ref; complete -c knowledge -l file-results; complete -c knowledge -l full; complete -c knowledge -l dry-run; complete -c knowledge -l fake; complete -c knowledge -l no-tailscale; complete -c knowledge -l no-artifact-content; complete -c knowledge -s p -l page; complete -c knowledge -s l -l limit; complete -c knowledge -s s -l search; complete -c knowledge -l sort; complete -c knowledge -l id; complete -c knowledge -l store; complete -c knowledge -l title; complete -c knowledge -l content; complete -c knowledge -l url; complete -c knowledge -s t -l tag; complete -c knowledge -l format; complete -c knowledge -l completions; complete -c knowledge -l purpose; complete -c knowledge -l model; complete -c knowledge -l dimensions; complete -c knowledge -l no-color; complete -c knowledge -l scope -a "local global project"; complete -c knowledge -l tables');else throw Error("Invalid --completions value. Use 'bash', 'zsh', or 'fish'.");return}let i=_4(r[0]),t=1;if(g4()&&i&&!Nm.includes(i))i="ask",t=0;if(!i||n.help||i==="help"){a4(r[1]);return}let u=i==="project-panel"||i==="app-wiki"?n.scope??"project":n.scope,_=zd({scope:u});if(i==="storage"){let o=r[1]??"status";if(o==="migrate-legacy-path"||o==="migrate-legacy"||o==="migrate-path"){let a=_.migrateLegacyPath({approveWrite:n.approveWrite,approvedBy:n.approvedBy});if(h(a,n.json),!a.ok&&!n.json)process.exitCode=1;return}}let c=Boolean(n.store),d=n.store;if(!d)if(u==="project"||u==="local")d=_.workspace.jsonStorePath;else d=cg();if(!c&&(i==="ask"||i==="build"))Kt(d);if(i==="inventory"){let o=_.inventory({limit:n.limit,includeArchived:n.includeArchived||n.archived,storePath:d});h(n.json?o:$4(o),n.json);return}if(i==="project-panel"){let o=n.project??r[1];if(!o)throw Error("Usage: knowledge project-panel --project <id|name|slug> [--json|--contract]");let a=AI(o,{service:_,limit:n.limit,storePath:d,includeArchived:n.includeArchived||n.archived});h(n.json||n.contract?a:yI(a),n.json||n.contract);return}if(i==="paths"){h(_.paths(),n.json);return}if(i==="setup"){let o=_.setup({mode:n.mode,apiUrl:n.apiUrl,canonicalExample:n.canonicalExample});h(o,n.json);return}if(i==="auth"){let o=r[1]??"whoami";if(o==="whoami"||o==="status"){let a=_.authStatus(process.env);h({ok:!0,...a,message:a.authenticated?`Authenticated via ${a.source}`:"Not authenticated"},n.json);return}if(o==="login"){let a=n.apiKey??process.env.KNOWLEDGE_API_KEY??process.env.HASNA_KNOWLEDGE_API_KEY;if(!a)throw Error("Usage: knowledge auth login --api-key <key> [--email <email>]");let l=_.saveAuth({apiKey:a,email:n.email,orgSlug:n.org,orgId:n.orgId,userId:n.userId,apiUrl:n.apiUrl},process.env);h({ok:!0,authenticated:!0,email:l.email??null,org_slug:l.org_slug??null,api_url:l.api_url??_.authStatus(process.env).api_url,auth_path:_.authStatus(process.env).auth_path,message:`Saved hosted credentials for ${l.email??"API key"}`},n.json);return}if(o==="logout"){let a=_.clearAuth(process.env);h({ok:!0,removed:a,message:a?"Removed hosted credentials":"No hosted credentials found"},n.json);return}throw Error("Invalid auth action. Use 'login', 'whoami', or 'logout'.")}if(i==="remote"){let o=r[1]??"status";if(o==="contracts"||o==="contract"){let a=_.authStatus(process.env);h({ok:!0,authenticated:a.authenticated,api_url:a.api_url,contract:_.remoteContract(),message:`Remote contract v${_.remoteContract().contract_version}`},n.json);return}if(o==="status"){let a=_.authStatus(process.env),l=_.remoteContract();h({ok:!0,mode:_.config().mode,authenticated:a.authenticated,auth_source:a.source,api_url:a.api_url,client_ready:Boolean(_.remoteClient(process.env)),contract_version:l.contract_version,capabilities:l.capabilities,message:a.authenticated?`Remote client ready for ${a.api_url}`:"Remote client not authenticated"},n.json);return}throw Error("Invalid remote action. Use 'contracts' or 'status'.")}if(i==="storage"){let o=r[1]??"status";if(o==="status"){let a=_.storageContract(),l=_.validateStorage();h({ok:l.ok,...a,validation:l,message:`${a.storage_type} artifact storage at ${a.artifact_store.uri_prefix}`},n.json);return}if(o==="validate"){let a=_.validateStorage();h({ok:a.ok,validation:a,message:a.ok?"Storage contract valid":`Storage contract invalid: ${a.errors.join("; ")}`},n.json);return}if(o==="repair-artifact-keys"||o==="repair-keys"){let a=_.repairArtifactManifestKeys({approveWrite:n.approveWrite,approvedBy:n.approvedBy,dryRun:n.dryRun});h(a,n.json);return}if(o==="migrate-legacy-path"||o==="migrate-legacy"||o==="migrate-path"){let a=_.migrateLegacyPath({approveWrite:n.approveWrite,approvedBy:n.approvedBy});if(h(a,n.json),!a.ok&&!n.json)process.exitCode=1;return}throw Error("Invalid storage action. Use 'status', 'validate', 'repair-artifact-keys', or 'migrate-legacy-path'.")}if(i==="machines"){let o=r[1]??"topology";if(o==="topology"||o==="status"){let a=await _.machineTopology({includeTailscale:n.tailscale!==!1});h(a,n.json);return}if(o==="preflight"||o==="check"){let a=r[2]??n.machine??"local",l=n.workspace??process.cwd(),$=await _.machinePreflight({machineId:a,commands:[{command:"bun",required:!0},{command:"knowledge",required:!0}],packages:[{name:Ve.name,command:"knowledge",expectedVersion:Ve.version,required:!0},{name:"@hasna/machines",command:"machines",required:!1}],workspaces:[{label:"open-knowledge",path:l,expectedPackageName:Ve.name,expectedVersion:Ve.version,required:!0}]});if(h($,n.json),!$.ok&&!n.json)process.exitCode=1;return}throw Error("Invalid machines action. Use 'topology' or 'preflight'.")}if(i==="sync"){let o=r[1]??"status",a=n.tables?n.tables.split(",").map((l)=>l.trim()).filter(Boolean):void 0;if(o==="status"){let l=_.syncStatus();h(l,n.json);return}if(o==="doctor"||o==="readiness"||o==="preflight"){let l=await _.syncDoctor({machine:n.machine??null,peerWorkspace:n.peerWorkspace??null,includeTailscale:n.tailscale!==!1,tables:a});if(h({package:{name:Ve.name,version:Ve.version},...l},n.json),!l.ok&&!n.json)process.exitCode=1;return}if(o==="snapshot"||o==="record"){let l=await _.createSyncSnapshot({includeTailscale:n.tailscale!==!1,machineId:n.machine});h(l,n.json);return}if(o==="conflicts"||o==="conflict"){let l=r[2];if(l==="show"||l==="get"){let v=r[3]??n.id;if(!v)throw Error("Usage: knowledge sync conflicts show <id>");let k=_.syncConflict(v);h({ok:!0,conflict:k,message:`Sync conflict ${v}`},n.json);return}if(l==="propose"||l==="proposal"){let v=r[3]??n.id;if(!v)throw Error("Usage: knowledge sync conflicts propose <id>");h(n.mode==="ai"?await _.proposeSyncConflictResolutionWithAi({id:v,modelRef:n.model,fake:n.fake}):_.proposeSyncConflictResolution(v),n.json);return}if(l==="resolve"){let v=r[3]??n.id;if(!v)throw Error("Usage: knowledge sync conflicts resolve <id> --approve-write --approved-by <name> [--strategy <name>]");let k=_.resolveSyncConflict({id:v,strategy:n.strategy,approvedBy:n.approvedBy,approveWrite:n.approveWrite,proposedPatchUri:n.patchUri});if(h(k,n.json),!k.ok&&!n.json)process.exitCode=1;return}let $=_.syncConflicts({status:l,limit:n.limit});h({ok:!0,conflicts:$,message:`${$.length} sync conflict(s)`},n.json);return}if(o==="machines"||o==="registry"){let l=_.syncMachines();h({ok:!0,machines:l,message:`${l.length} registered sync machine(s)`},n.json);return}if(o==="export"){let l=_.exportSyncBundle({machineId:n.machine??null,tables:a,includeArtifactContent:n.artifactContent!==!1});h(l,!0);return}if(o==="import"){let l=await Bun.stdin.text();if(!l.trim())throw Error("Usage: knowledge sync import < bundle.json");let $=await _.importSyncBundle({bundle:JSON.parse(l),dryRun:n.dryRun,direction:"import",machineId:n.machine??null});h($,n.json);return}if(o==="dry-run"||o==="pull"||o==="push"||o==="sync"){if(!n.peerWorkspace&&Tm(n.machine))throw Error(`Usage: knowledge sync ${o} --peer-workspace <repo-or-knowledge-home> [--scope project] +Remote machine sync can omit --peer-workspace when machines path mapping is configured.`);let l=o==="dry-run"?"both":o==="sync"?"both":o,$=!Tm(n.machine)?await _.syncRemotePeer({direction:l,machine:n.machine,peerWorkspace:n.peerWorkspace,tables:a,dryRun:n.dryRun===!0||o==="dry-run",includeArtifactContent:n.artifactContent!==!1,includeTailscale:n.tailscale!==!1}):await _.syncPeer({peerWorkspace:n.peerWorkspace,direction:l,dryRun:n.dryRun===!0||o==="dry-run",tables:a,includeArtifactContent:n.artifactContent!==!1,machineId:n.machine??null});if(h($,n.json),!$.ok&&!n.json)process.exitCode=1;return}throw Error("Invalid sync action. Use 'status', 'doctor', 'snapshot', 'conflicts', 'machines', 'dry-run', 'pull', 'push', 'sync', 'export', or 'import'.")}if(i==="db"){let o=r[1]??"init";if(o==="init"){let a=_.initDb();h({ok:!0,...a,message:`Initialized ${a.path}`},n.json);return}if(o==="stats"){let a=_.dbStats();h({ok:!0,path:_.workspace.knowledgeDbPath,...a,message:`knowledge.db schema v${a.schema_version}`},n.json);return}if(o==="storage"){let a=r[2]??"status",l=GE(n.tables);if(a==="status"){let $=qE({scope:n.scope});h({ok:!0,...$,message:`knowledge.db storage mode ${$.mode}${$.activeEnv?` via ${$.activeEnv}`:""}`},n.json);return}if(a==="push"){let $=await Hd({scope:n.scope,tables:l});h({ok:sd($),results:$,message:pd($,"push")},n.json);return}if(a==="pull"){let $=await Bd({scope:n.scope,tables:l});h({ok:sd($),results:$,message:pd($,"pull")},n.json);return}if(a==="sync"){let $=await ME({scope:n.scope,tables:l});h({ok:sd($.pull)&&sd($.push),...$,message:`${pd($.pull,"pull")}; ${pd($.push,"push")}`},n.json);return}throw Error("Invalid db storage action. Use 'status', 'push', 'pull', or 'sync'.")}throw Error("Invalid db action. Use 'init', 'stats', or 'storage'.")}if(i==="app-wiki"){let o=r[1]??"init";if(o==="paths"||o==="status"){h({ok:!0,standard:"hasna-app-wiki.v1",default_scope:"project",global_writes_require:"--allow-global",..._.paths()},n.json);return}if(o==="init"||o==="open"){let a=await _.initAppWiki({allowGlobal:n.allowGlobal});h(a,n.json);return}if(o==="note"||o==="notes"){let a=r[2]??"list";if(a==="add"||a==="create"){let l=n.title??r[3],$=n.content??r.slice(4).join(" ");if(!l||!$)throw Error("Usage: knowledge app-wiki note add --title <title> --content <text> [--source-ref <uri>]");let v=await _.addAppWikiNote({title:l,content:$,tags:n.tag?[n.tag]:void 0,sourceRefs:n.sourceRef,allowGlobal:n.allowGlobal});h(v,n.json);return}if(a==="list"||a==="ls"){let l=_.listAppWikiNotes({limit:n.limit});h({ok:!0,scope:_.scope,home:_.workspace.home,notes:l,message:`${l.length} app wiki note(s)`},n.json);return}if(a==="get"||a==="show"){let l=r[3]??n.id;if(!l)throw Error("Usage: knowledge app-wiki note get <id-or-path>");let $=await _.getAppWikiNote(l,{includeContent:!0});if(!$)throw Error(`App wiki note not found: ${l}`);h($,n.json);return}throw Error("Invalid app-wiki note action. Use 'add', 'list', or 'get'.")}if(o==="source"||o==="sources"){let a=r[2]??"add";if(a!=="add"&&a!=="ingest")throw Error("Invalid app-wiki source action. Use 'add'.");let l=r[3]??n.sourceRef?.[0];if(!l)throw Error("Usage: knowledge app-wiki source add <source-ref>");let $=await _.addAppWikiSourceRef({sourceRef:l,purpose:n.purpose,allowGlobal:n.allowGlobal});h({ok:!0,...$,message:`Added app wiki source ${$.source_ref}`},n.json);return}if(o==="search"){let a=r.slice(2).join(" ");if(!a)throw Error("Usage: knowledge app-wiki search <query>");let l=await _.searchAppWiki({query:a,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...l,message:`${l.results.length} app wiki result(s)`},n.json);return}if(o==="query"||o==="context"){let a=r.slice(2).join(" ");if(!a)throw Error("Usage: knowledge app-wiki query <query>");let l=await _.queryAppWiki({query:a,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...l,message:`${l.excerpts.length} app wiki excerpt(s)`},n.json);return}throw Error("Invalid app-wiki action. Use 'init', 'paths', 'note', 'source', 'search', or 'query'.")}if(i==="wiki"){let o=r[1]??"init";if(o==="init"){let a=await _.initWiki();h({ok:!0,...a,message:`Initialized wiki layout in ${_.workspace.home}`},n.json);return}if(o==="compile"){let a=r.slice(2),l=a.filter((k)=>/^(open-files|file|s3|https?):\/\//.test(k)),$=a.filter((k)=>!/^(open-files|file|s3|https?):\/\//.test(k)).join(" "),v=await _.compileWiki({title:n.title,query:$||n.search,sourceRefs:l.length>0?l:void 0,limit:n.limit});h({ok:!0,...v,message:`Compiled wiki page ${v.path}`},n.json);return}if(o==="file-answer"||o==="answer"){let a=r.slice(2).join(" ");if(!a)throw Error("Usage: knowledge wiki file-answer <prompt> --content <answer> --approve-write");if(!n.content)throw Error("Missing --content <answer> for wiki file-answer.");let l=await _.fileAnswer({prompt:a,answer:n.content,approveWrite:n.approveWrite,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...l},n.json);return}if(o==="lint"){let a=_.lintWiki();h({ok:a.ok,...a,message:a.ok?"Wiki lint passed":`Wiki lint found ${a.issue_count} issue(s)`},n.json);return}throw Error("Invalid wiki action. Use 'init', 'compile', 'file-answer', or 'lint'.")}if(i==="safety"){let o=r[1]??"status",a=_.ensureWorkspace(),l=_.safetyPolicy();_.initDb();let $=A(a.knowledgeDbPath);try{if(o==="status"){h({ok:!0,mode:l.mode,workspace:a.home,allow_write_roots:l.allowWriteRoots,read_only_source_access:l.readOnlySourceAccess,network:l.network,redaction:l.redaction,approvals:l.approvals,message:`Safety policy: ${l.mode}`},n.json);return}if(o==="check"){let v=r[2]??"generated_write",k=r[3]??null,T;try{if(v==="web_search")Mn(l),T={action:v,target_uri:k,approval_required:!1,approved:!0,decision:"allow"};else if(v==="s3_read"){if(!k)throw Error("safety check s3_read requires an s3:// target.");hr(k,l),T={action:v,target_uri:k,approval_required:!1,approved:!0,decision:"allow"}}else T=zk($,l,v,k);re($,{event_type:"safety_check",action:v,target_uri:k,decision:T.decision==="allow"?"allow":"requires_approval",metadata:T}),h({ok:!0,...T,message:`Safety check ${T.decision}`},n.json);return}catch(S){throw re($,{event_type:"safety_check",action:v,target_uri:k,decision:"deny",metadata:{error:S instanceof Error?S.message:String(S)}}),S}}if(o==="approve"){let v=r[2]??"generated_write",k=r[3]??null,T=Jk($,{action:v,target_uri:k,reason:"local-cli approval",metadata:{scope:n.scope??"global"}});re($,{event_type:"approval",action:v,target_uri:k,decision:"allow",metadata:{approval_id:T.id}}),h({ok:!0,...T,action:v,target_uri:k,message:`Approved ${v}`},n.json);return}if(o==="audit"){let v=$.query("SELECT id, event_type, action, target_uri, decision, metadata_json, created_at FROM audit_events ORDER BY created_at DESC LIMIT 50").all().map((k)=>({id:k.id,event_type:k.event_type,action:k.action,target_uri:k.target_uri,decision:k.decision,metadata:JSON.parse(k.metadata_json),created_at:k.created_at}));h({ok:!0,events:v,message:`${v.length} audit event(s)`},n.json);return}if(o==="redact"){let v=r.slice(2).join(" ");if(!v)throw Error("Usage: knowledge safety redact <text>");let k=je(v,l);if(k.findings.length>0)hu($,{source_uri:"safety://redact",findings:k.findings,metadata:{command:"safety redact"}});re($,{event_type:"redaction",action:"safety_redact",target_uri:"safety://redact",decision:k.findings.length>0?"redacted":"allow",metadata:{findings:k.findings.length}}),h({ok:!0,text:k.text,findings:k.findings,message:`Redacted ${k.findings.length} finding(s)`},n.json);return}throw Error("Invalid safety action. Use 'status', 'check', 'approve', 'audit', or 'redact'.")}finally{$.close()}}if(i==="source"){if((r[1]??"")!=="resolve")throw Error("Invalid source action. Use 'resolve'.");let a=r[2];if(!a)throw Error("Usage: knowledge source resolve <source-ref>");let l=await _.resolveSource(a,{purpose:n.purpose,limit:n.limit});h({ok:!0,...l,message:l.resolved?`Resolved ${l.source_ref} (${l.content.chunks_returned}/${l.content.chunks_total} chunks)`:`Source not indexed: ${a}`},n.json);return}if(i==="ingest"){let o=r[1]??"";if(o==="rules"||o==="global-rules"||o==="agent-rules"){let a=await _.importRulesProvenance({root:n.workspace??process.cwd(),owner:n.owner,dryRun:n.dryRun===!0,maxItems:n.maxItems,limit:n.limit});h({ok:!0,...a},n.json);return}if(o==="manifest"){let a=r[2];if(!a)throw Error("Usage: knowledge ingest manifest <file|s3://bucket/key>");let l=await _.ingestManifest(a);h({ok:!0,...l,message:`Ingested ${l.items_seen} manifest item(s)`},n.json);return}if(o==="source"){let a=r[2];if(!a)throw Error("Usage: knowledge ingest source <source-ref>");let l=await _.ingestSource(a,n.purpose);h({ok:!0,...l,message:`Ingested source ${l.source_ref} (${l.chunks_inserted} chunks)`},n.json);return}throw Error("Invalid ingest action. Use 'manifest' or 'source'.")}if(i==="reindex"){let o=r[1]??"status";if(o==="status"){let a=_.reindexHealth({modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...a,message:`${a.missing_embeddings} chunk(s) missing embeddings`},n.json);return}if(o==="enqueue"){let a=_.enqueueReindex({modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...a,message:`Queued ${a.enqueued} embedding refresh item(s)`},n.json);return}if(o==="embeddings"){let a=await _.refreshEmbeddings({full:n.full,limit:n.limit,modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...a,message:`Embedded ${a.indexed.chunks_embedded} chunk(s)`},n.json);return}if(o==="outbox"){let a=r[2];if(!a)throw Error("Usage: knowledge reindex outbox <file|s3://bucket/key>");let l=await _.consumeOutbox(a);h({ok:!0,...l,message:`Consumed ${l.events_seen} outbox event(s)`},n.json);return}throw Error("Invalid reindex action. Use 'status', 'enqueue', 'embeddings', or 'outbox'.")}if(i==="embeddings"){let o=r[1]??"status";if(o==="status"){let a=_.embeddingStatus();h({ok:!0,...a,message:`${a.total_vector_entries} vector index entries`},n.json);return}if(o==="index"){let a=await _.indexEmbeddings({limit:n.limit,modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...a,message:`Embedded ${a.chunks_embedded} chunk(s)`},n.json);return}if(o==="search"){let a=r.slice(2).join(" ");if(!a)throw Error("Usage: knowledge embeddings search <query>");let l=await _.semanticSearch({query:a,limit:n.limit,modelRef:n.model,dimensions:n.dimensions,fake:n.fake});h({ok:!0,...l,message:`${l.results.length} semantic result(s)`},n.json);return}throw Error("Invalid embeddings action. Use 'status', 'index', or 'search'.")}if(i==="context"){if((r[1]??"pack")!=="pack")throw Error("Invalid context action. Use 'pack'.");let a=n.from??"search";if(!["search","loops","runs"].includes(a))throw Error("Invalid --from value. Use 'search', 'loops', or 'runs'.");let l=r.slice(2).join(" ")||n.topic||"",$=await _.contextPack({source:a,purpose:a==="loops"||a==="runs"?"proposal":"agent_context",query:l,topic:n.topic,since:n.since,dedupe:n.dedupe,maxTokens:n.maxTokens,maxItems:n.maxItems,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake,legacyStorePath:d});km({ok:!0,...$,message:$.message});return}if(i==="proposals"){if((r[1]??"context")!=="context")throw Error("Invalid proposals action. Use 'context'.");let a=n.from??"loops";if(!["loops","runs"].includes(a))throw Error("Invalid --from value for proposals. Use 'loops' or 'runs'.");let l=n.topic??r.slice(2).join(" ");if(!l.trim())throw Error("Usage: knowledge proposals context --from loops --topic <text>");let $=await _.contextPack({source:a,purpose:"proposal",query:l,topic:l,since:n.since,dedupe:n.dedupe??!0,maxTokens:n.maxTokens,maxItems:n.maxItems,limit:n.limit});km({ok:!0,...$,message:$.message});return}if(i==="search"){let o=r.slice(1).join(" ");if(!o)throw Error("Usage: knowledge search <query>");if(n.context){let l=await _.retrieveContext({query:o,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake,legacyStorePath:d});h({ok:!0,...l,message:`${l.excerpts.length} context excerpt(s)`},n.json);return}let a=await _.search({query:o,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake,legacyStorePath:d});h({ok:!0,...a,message:`${a.results.length} search result(s)`},n.json);return}if(i==="web"){if((r[1]??"search")!=="search")throw Error("Invalid web action. Use 'search'.");let a=r.slice(2).join(" ");if(!a)throw Error("Usage: knowledge web search <query>");let l=await _.webSearch({query:a,limit:n.limit,modelRef:n.model,provider:n.provider,domains:n.domain,fake:n.fake,fileResults:n.fileResults});h({ok:!0,...l,message:`${l.sources.length} web source(s)`},n.json);return}if(i==="ask"||i==="build"){let o=r.slice(t).join(" ");if(!o)throw Error("Usage: knowledge ask <prompt>");let a=await _.runPrompt({prompt:o,limit:n.limit,semantic:n.semantic,modelRef:n.model,dimensions:n.dimensions,fake:n.fake,generate:n.generate,approveWrite:n.approveWrite,legacyStorePath:d});h({ok:!0,...a,message:a.generated?"Generated answer with citations":"Prepared citation context draft"},n.json);return}if(i==="providers"){let o=r[1]??"status";if(o==="status"){let a=_.providerStatus(),l=a.providers.filter(($)=>$.configured).length;h({ok:!0,...a,message:`${l}/${a.providers.length} provider credential(s) configured`},n.json);return}if(o==="models"){let a=_.modelRegistry();h({ok:!0,models:a,message:`${a.length} model alias(es)`},n.json);return}if(o==="check"){let a=r[2]??"default",l=se(a,_.config()),$=le(l),v=sr($.provider,_.config());h({ok:!0,target:a,model_ref:l,provider:$.provider,model:$.model,credential:v,message:`${$.provider} credentials configured`},n.json);return}throw Error("Invalid providers action. Use 'status', 'models', or 'check'.")}if(i==="add"){let o=r[1],a=r[2];if(!o||!a)throw Error("Usage: knowledge add <title> <content>");ze(d,()=>{let l=dr(d),$={id:dg(),title:o,content:a,url:n.url??null,tags:n.tag?[n.tag]:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString()};l.items.push($),Ae(d,l),Kn("info","Item added",{id:$.id,title:$.title}),h({ok:!0,item:$,message:`Added ${$.id}`},n.json)},{createParent:!0});return}if(i==="list"){if(n.format!==void 0&&n.format!=="table"&&n.format!=="json")throw Error("Invalid --format value for list. Use 'table' or 'json'.");let o=wr(d),a=Number.isFinite(n.page)&&n.page>0?n.page:1,l=Number.isFinite(n.limit)&&n.limit>0?n.limit:20,$=n.search?String(n.search).toLowerCase():"",v=n.tag?String(n.tag).toLowerCase():"",k=n.format==="table"||!n.json&&!n.format&&f4(n),T=n.json||n.format==="json",S=o.items;if(n.archived)S=S.filter((J)=>J.archived===!0);else if(!n.includeArchived)S=S.filter((J)=>!J.archived);if($)S=S.filter((J)=>J.title.toLowerCase().includes($)||J.content.toLowerCase().includes($));if(v)S=S.filter((J)=>J.tags&&J.tags.map((ne)=>ne.toLowerCase()).includes(v));let{sorted:O,sort:b,direction:D}=v4(S,n),y=(a-1)*l,x=O.slice(y,y+l),F=Math.max(1,Math.ceil(O.length/l));if(T){h({ok:!0,page:a,limit:l,total:O.length,total_pages:F,sort:b,direction:D,items:x,store_exists:o.exists},!0);return}if(x.length===0){h(`No items found (search=${$||"none"}, tag=${v||"none"})`,!1);return}if(k){let J=(G)=>G,ne=`${J("ID")} ${J("TITLE")} ${J("CREATED")} ${J("URL")} ${J("TAGS")}`;console.log(ne);for(let G of x)console.log(`${G.id} ${J(G.title)} ${G.created_at} ${G.url?J(G.url):""} ${G.tags?.length?J(`[${G.tags.join(", ")}]`):""}`);console.log(`Page ${a}/${F} | showing ${x.length} of ${O.length} | sort=${b} ${D} | search=${$||"none"} | tag=${v||"none"}`)}else{for(let J of x)console.log(`${J.id} ${J.title} ${J.created_at}${J.url?` ${J.url}`:""}${J.tags?.length?` [${J.tags.join(", ")}]`:""}`);console.log(`Page ${a}/${F} | showing ${x.length} of ${O.length} | sort=${b} ${D} | search=${$||"none"} | tag=${v||"none"}`)}return}if(i==="get"){Su(n);let o=wr(d),a=o.items.find((l)=>l.id===n.id||l.short_id===n.id);if(!a)throw Error(`Item not found: ${n.id}`);h({ok:!0,item:a,store_exists:o.exists,message:`${a.id}: ${a.title}`},n.json);return}if(i==="update"){Su(n),ze(d,()=>{let o=dr(d),a=o.items.findIndex(($)=>$.id===n.id||$.short_id===n.id);if(a===-1)throw Error(`Item not found: ${n.id}`);let l=o.items[a];if(n.title!==void 0)l.title=n.title;if(n.content!==void 0)l.content=n.content;if(n.url!==void 0)l.url=n.url;if(n.tag!==void 0){if(l.tags=l.tags||[],!l.tags.map(($)=>$.toLowerCase()).includes(n.tag.toLowerCase()))l.tags.push(n.tag)}l.updated_at=new Date().toISOString(),o.items[a]=l,Ae(d,o),h({ok:!0,item:l,message:`Updated ${l.id}`},n.json)},{createParent:!0});return}if(i==="archive"||i==="restore"){Su(n),ze(d,()=>{let o=dr(d),a=o.items.findIndex(($)=>$.id===n.id||$.short_id===n.id);if(a===-1)throw Error(`Item not found: ${n.id}`);let l=o.items[a];l.archived=i==="archive",l.updated_at=new Date().toISOString(),o.items[a]=l,Ae(d,o),h({ok:!0,item:l,message:`${i==="archive"?"Archived":"Restored"} ${l.id}`},n.json)},{createParent:!0});return}if(i==="untag"){if(Su(n),!n.tag)throw Error("Missing required --tag. Example: knowledge untag --id <id> -t <tag>");ze(d,()=>{let o=dr(d),a=o.items.findIndex((v)=>v.id===n.id||v.short_id===n.id);if(a===-1)throw Error(`Item not found: ${n.id}`);let l=o.items[a],$=l.tags?.length??0;l.tags=(l.tags??[]).filter((v)=>v.toLowerCase()!==n.tag.toLowerCase()),l.updated_at=new Date().toISOString(),o.items[a]=l,Ae(d,o),h({ok:!0,item:l,removed:$-l.tags.length,message:`Removed tag from ${l.id}`},n.json)},{createParent:!0});return}if(i==="upsert"){let o=n.title??r[1],a=n.content??r[2];ze(d,()=>{let l=dr(d),$=n.id?l.items.findIndex((T)=>T.id===n.id||T.short_id===n.id):-1,v=new Date().toISOString();if($===-1){if(!o||!a)throw Error("New item requires title and content. Example: knowledge upsert <title> <content> [--id <id>]");let T=n.id??dg(),S={id:T,short_id:vk(T),title:o,content:a,url:n.url??null,tags:n.tag?[n.tag]:[],metadata:{},archived:!1,created_at:v,updated_at:v};l.items.push(S),Ae(d,l),h({ok:!0,created:!0,item:S,message:`Upserted ${S.id}`},n.json);return}let k=l.items[$];if(o!==void 0)k.title=o;if(a!==void 0)k.content=a;if(n.url!==void 0)k.url=n.url;if(n.tag!==void 0){if(k.tags=k.tags||[],!k.tags.map((T)=>T.toLowerCase()).includes(n.tag.toLowerCase()))k.tags.push(n.tag)}k.updated_at=v,l.items[$]=k,Ae(d,l),h({ok:!0,created:!1,item:k,message:`Upserted ${k.id}`},n.json)},{createParent:!0});return}if(i==="delete"){if(Su(n),!n.yes)throw Error("Refusing delete without --yes. Re-run with: knowledge delete --id <id> --yes");ze(d,()=>{let o=dr(d),a=o.items.length;o.items=o.items.filter(($)=>$.id!==n.id&&$.short_id!==n.id);let l=a!==o.items.length;if(Ae(d,o),!l)throw Error(`Item not found: ${n.id}`);Kn("info","Item deleted",{id:n.id}),h({ok:!0,deleted_id:n.id,message:`Deleted ${n.id}`},n.json)},{createParent:!0});return}if(i==="export"){let o=n.format??"json";if(o!=="json"&&o!=="jsonl")throw Error("Invalid --format. Use 'json' or 'jsonl'.");let a=wr(d);if(o==="jsonl")for(let l of a.items)console.log(JSON.stringify(l));else h({ok:!0,items:a.items,store_exists:a.exists},n.json);return}if(i==="prune"){if(!n.yes)throw Error("Refusing prune without --yes. Re-run with: knowledge prune --yes [--older-than <days>] [--empty]");ze(d,()=>{let o=dr(d),a=o.items.length;if(n.olderThan!==void 0){let $=new Date;$.setDate($.getDate()-n.olderThan),o.items=o.items.filter((v)=>new Date(v.created_at)>=$)}if(n.empty)o.items=o.items.filter(($)=>$.content.trim().length>0);let l=a-o.items.length;Ae(d,o),Kn("info","Prune completed",{pruned:l,remaining:o.items.length}),h({ok:!0,pruned:l,remaining:o.items.length,message:`Pruned ${l} item(s)`},n.json)},{createParent:!0});return}if(i==="dedupe"){if(!n.yes)throw Error("Refusing dedupe without --yes. Re-run with: knowledge dedupe --yes [--json]");ze(d,()=>{let o=dr(d),a=new Set,l=o.items.length;o.items=o.items.filter((v)=>{let k=`${v.title}\x00${v.content}`;if(a.has(k))return!1;return a.add(k),!0});let $=l-o.items.length;Ae(d,o),Kn("info","Dedupe completed",{removed:$,remaining:o.items.length}),h({ok:!0,removed:$,remaining:o.items.length,message:`Dedupe removed ${$} duplicate(s)`},n.json)},{createParent:!0});return}if(i==="stats"){let o=wr(d),a=o.items.filter((D)=>!D.archived),l=a.length,$=o.items.length-l,v=a.filter((D)=>D.url).length,k=a.filter((D)=>D.tags&&D.tags.length>0).length,T=l>0?a.map((D)=>D.created_at).sort()[0]:null,S=l>0?a.map((D)=>D.created_at).sort()[l-1]:null,O={};for(let D of a)for(let y of D.tags||[])O[y]=(O[y]||0)+1;let b=Object.entries(O).sort((D,y)=>y[1]-D[1]).slice(0,5).map(([D,y])=>({tag:D,count:y}));h({ok:!0,total:l,archived:$,with_url:v,with_tags:k,oldest:T,newest:S,top_tags:b,store_exists:o.exists,message:`${l} items | ${v} with URL | ${k} with tags`},n.json);return}let g=d4(r[0]),f=g?` Did you mean '${g}'?`:"";throw Kn("warn","Unknown command",{input:r[0],suggestion:g}),Error(`Unknown command: ${r[0]}.${f} Run 'knowledge --help' for available commands.`)}if(import.meta.main)E4(process.argv.slice(2)).catch((e)=>{let r=e instanceof Error?e.message:String(e);Kn("error","CLI error",{message:r,stack:e instanceof Error?e.stack:void 0}),console.error(`Error: ${r}`),process.exitCode=1});export{d4 as suggestCommand,v4 as sortItems,E4 as run,u4 as parseArgs}; diff --git a/dist/generated/knowledge-api-client.d.ts b/dist/generated/knowledge-api-client.d.ts new file mode 100644 index 0000000..8d2ff7a --- /dev/null +++ b/dist/generated/knowledge-api-client.d.ts @@ -0,0 +1,70 @@ +export interface Note { + "id": string; + "short_id"?: string | null; + "title": string; + "content": string; + "url"?: string | null; + "tags": Array<string>; + "metadata"?: Record<string, unknown>; + "archived": boolean; + "created_at": string; + "updated_at": string; +} +export interface NoteInput { + "title": string; + "content"?: string; + "url"?: string | null; + "tags"?: Array<string>; + "metadata"?: Record<string, unknown>; +} +export interface NotePatch { + "title"?: string; + "content"?: string; + "url"?: string | null; + "tags"?: Array<string>; + "metadata"?: Record<string, unknown>; + "archived"?: boolean; +} +export interface NoteList { + "items": Array<Note>; + "total": number; +} +export interface KnowledgeApiClientOptions { + /** Base URL, e.g. process.env.APP_API_URL. */ + baseUrl: string; + /** API key, e.g. process.env.APP_API_KEY. Sent as the 'x-api-key' header. */ + apiKey?: string; + /** Custom fetch (defaults to global fetch). */ + fetch?: typeof fetch; + /** Extra headers merged into every request. */ + headers?: Record<string, string>; +} +export declare class ApiError extends Error { + readonly status: number; + readonly body: unknown; + constructor(status: number, message: string, body: unknown); +} +export declare class KnowledgeApiClient { + private readonly baseUrl; + private readonly apiKey; + private readonly fetchImpl; + private readonly baseHeaders; + constructor(options: KnowledgeApiClientOptions); + private request; + /** List knowledge items */ + listNotes(query?: { + "limit"?: number; + "offset"?: number; + "search"?: string; + }, init?: RequestInit): Promise<NoteList>; + /** Create a knowledge item */ + createNote(body: NoteInput, init?: RequestInit): Promise<Note>; + /** Fetch a knowledge item */ + getNote(id: string, init?: RequestInit): Promise<Note>; + /** Delete a knowledge item */ + deleteNote(id: string, init?: RequestInit): Promise<void>; + /** Update a knowledge item */ + updateNote(id: string, body: NotePatch, init?: RequestInit): Promise<Note>; + /** Knowledge registry contract */ + getRegistry(init?: RequestInit): Promise<Record<string, unknown>>; +} diff --git a/dist/index.d.ts b/dist/index.d.ts index d620689..aeb4794 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -26,4 +26,6 @@ export { resolveOpenFilesSource, type ResolvedSourceChunk, type ResolvedSourceCi export { consumeOpenFilesOutbox, type OutboxConsumeOptions, type OutboxConsumeResult, } from './outbox-consume.js'; export { enqueueMissingEmbeddings, refreshEmbeddingIndex, reindexHealth, type ReindexEmbeddingsResult, type ReindexEnqueueResult, type ReindexHealthResult, type ReindexRuntimeOptions, } from './reindex.js'; export { DEFAULT_KNOWLEDGE_API_URL, clearKnowledgeAuth, getKnowledgeApiKey, getKnowledgeAuth, knowledgeAuthPath, knowledgeAuthStatus, normalizeKnowledgeApiOrigin, resolveKnowledgeApiUrl, saveKnowledgeAuth, type KnowledgeAuthConfig, type KnowledgeAuthStatus, } from './auth.js'; +export { KnowledgeApiClient, ApiError as KnowledgeApiError, type KnowledgeApiClientOptions, type Note as KnowledgeNote, type NoteInput as KnowledgeNoteInput, type NotePatch as KnowledgeNotePatch, type NoteList as KnowledgeNoteList, } from './generated/knowledge-api-client.js'; +export { KNOWLEDGE_SERVE_APP, createServeHandler, startKnowledgeServe, knowledgeOpenApi, NoteRepo, type NoteInput as KnowledgeServeNoteInput, type NoteListOptions as KnowledgeServeNoteListOptions, type ServeDeps as KnowledgeServeDeps, type StartServeOptions as KnowledgeStartServeOptions, type RunningServe as KnowledgeRunningServe, } from './serve.js'; export { REMOTE_KNOWLEDGE_CONTRACT_VERSION, RemoteKnowledgeClient, knowledgeRegistryContract, normalizeRemoteKnowledgeRunContract, type RemoteKnowledgeArtifact, type RemoteKnowledgeArtifactContract, type RemoteKnowledgeLogEntry, type RemoteKnowledgePromptRequest, type RemoteKnowledgeRegistryContract, type RemoteKnowledgeRunContract, type RemoteKnowledgeRunStatus, type RemoteKnowledgeSearchRequest, type RemoteKnowledgeSourceContract, type RemoteKnowledgeSyncRequest, } from './remote-client.js'; diff --git a/dist/index.js b/dist/index.js index be22bad..eb1db34 100644 --- a/dist/index.js +++ b/dist/index.js @@ -11401,29 +11401,29 @@ function toJSONSchema(input, params) { return finalize(ctx, input); } var formatMap, stringProcessor = (schema, ctx, _json, _params) => { - const json = _json; - json.type = "string"; + const json2 = _json; + json2.type = "string"; const { minimum, maximum, format, patterns, contentEncoding } = schema._zod.bag; if (typeof minimum === "number") - json.minLength = minimum; + json2.minLength = minimum; if (typeof maximum === "number") - json.maxLength = maximum; + json2.maxLength = maximum; if (format) { - json.format = formatMap[format] ?? format; - if (json.format === "") - delete json.format; + json2.format = formatMap[format] ?? format; + if (json2.format === "") + delete json2.format; if (format === "time") { - delete json.format; + delete json2.format; } } if (contentEncoding) - json.contentEncoding = contentEncoding; + json2.contentEncoding = contentEncoding; if (patterns && patterns.size > 0) { const regexes = [...patterns]; if (regexes.length === 1) - json.pattern = regexes[0].source; + json2.pattern = regexes[0].source; else if (regexes.length > 1) { - json.allOf = [ + json2.allOf = [ ...regexes.map((regex) => ({ ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, pattern: regex.source @@ -11432,39 +11432,39 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { } } }, numberProcessor = (schema, ctx, _json, _params) => { - const json = _json; + const json2 = _json; const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; if (typeof format === "string" && format.includes("int")) - json.type = "integer"; + json2.type = "integer"; else - json.type = "number"; + json2.type = "number"; const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; if (exMin) { if (legacy) { - json.minimum = exclusiveMinimum; - json.exclusiveMinimum = true; + json2.minimum = exclusiveMinimum; + json2.exclusiveMinimum = true; } else { - json.exclusiveMinimum = exclusiveMinimum; + json2.exclusiveMinimum = exclusiveMinimum; } } else if (typeof minimum === "number") { - json.minimum = minimum; + json2.minimum = minimum; } if (exMax) { if (legacy) { - json.maximum = exclusiveMaximum; - json.exclusiveMaximum = true; + json2.maximum = exclusiveMaximum; + json2.exclusiveMaximum = true; } else { - json.exclusiveMaximum = exclusiveMaximum; + json2.exclusiveMaximum = exclusiveMaximum; } } else if (typeof maximum === "number") { - json.maximum = maximum; + json2.maximum = maximum; } if (typeof multipleOf === "number") - json.multipleOf = multipleOf; -}, booleanProcessor = (_schema, _ctx, json, _params) => { - json.type = "boolean"; + json2.multipleOf = multipleOf; +}, booleanProcessor = (_schema, _ctx, json2, _params) => { + json2.type = "boolean"; }, bigintProcessor = (_schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { throw new Error("BigInt cannot be represented in JSON Schema"); @@ -11473,13 +11473,13 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { throw new Error("Symbols cannot be represented in JSON Schema"); } -}, nullProcessor = (_schema, ctx, json, _params) => { +}, nullProcessor = (_schema, ctx, json2, _params) => { if (ctx.target === "openapi-3.0") { - json.type = "string"; - json.nullable = true; - json.enum = [null]; + json2.type = "string"; + json2.nullable = true; + json2.enum = [null]; } else { - json.type = "null"; + json2.type = "null"; } }, undefinedProcessor = (_schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { @@ -11489,21 +11489,21 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { throw new Error("Void cannot be represented in JSON Schema"); } -}, neverProcessor = (_schema, _ctx, json, _params) => { - json.not = {}; +}, neverProcessor = (_schema, _ctx, json2, _params) => { + json2.not = {}; }, anyProcessor = (_schema, _ctx, _json, _params) => {}, unknownProcessor = (_schema, _ctx, _json, _params) => {}, dateProcessor = (_schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { throw new Error("Date cannot be represented in JSON Schema"); } -}, enumProcessor = (schema, _ctx, json, _params) => { +}, enumProcessor = (schema, _ctx, json2, _params) => { const def = schema._zod.def; const values = getEnumValues(def.entries); if (values.every((v) => typeof v === "number")) - json.type = "number"; + json2.type = "number"; if (values.every((v) => typeof v === "string")) - json.type = "string"; - json.enum = values; -}, literalProcessor = (schema, ctx, json, _params) => { + json2.type = "string"; + json2.enum = values; +}, literalProcessor = (schema, ctx, json2, _params) => { const def = schema._zod.def; const vals = []; for (const val of def.values) { @@ -11523,36 +11523,36 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { } if (vals.length === 0) {} else if (vals.length === 1) { const val = vals[0]; - json.type = val === null ? "null" : typeof val; + json2.type = val === null ? "null" : typeof val; if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { - json.enum = [val]; + json2.enum = [val]; } else { - json.const = val; + json2.const = val; } } else { if (vals.every((v) => typeof v === "number")) - json.type = "number"; + json2.type = "number"; if (vals.every((v) => typeof v === "string")) - json.type = "string"; + json2.type = "string"; if (vals.every((v) => typeof v === "boolean")) - json.type = "boolean"; + json2.type = "boolean"; if (vals.every((v) => v === null)) - json.type = "null"; - json.enum = vals; + json2.type = "null"; + json2.enum = vals; } }, nanProcessor = (_schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { throw new Error("NaN cannot be represented in JSON Schema"); } -}, templateLiteralProcessor = (schema, _ctx, json, _params) => { - const _json = json; +}, templateLiteralProcessor = (schema, _ctx, json2, _params) => { + const _json = json2; const pattern = schema._zod.pattern; if (!pattern) throw new Error("Pattern not found in template literal"); _json.type = "string"; _json.pattern = pattern.source; -}, fileProcessor = (schema, _ctx, json, _params) => { - const _json = json; +}, fileProcessor = (schema, _ctx, json2, _params) => { + const _json = json2; const file = { type: "string", format: "binary", @@ -11574,8 +11574,8 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { } else { Object.assign(_json, file); } -}, successProcessor = (_schema, _ctx, json, _params) => { - json.type = "boolean"; +}, successProcessor = (_schema, _ctx, json2, _params) => { + json2.type = "boolean"; }, customProcessor = (_schema, ctx, _json, _params) => { if (ctx.unrepresentable === "throw") { throw new Error("Custom types cannot be represented in JSON Schema"); @@ -11597,26 +11597,26 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { throw new Error("Set cannot be represented in JSON Schema"); } }, arrayProcessor = (schema, ctx, _json, params) => { - const json = _json; + const json2 = _json; const def = schema._zod.def; const { minimum, maximum } = schema._zod.bag; if (typeof minimum === "number") - json.minItems = minimum; + json2.minItems = minimum; if (typeof maximum === "number") - json.maxItems = maximum; - json.type = "array"; - json.items = process2(def.element, ctx, { + json2.maxItems = maximum; + json2.type = "array"; + json2.items = process2(def.element, ctx, { ...params, path: [...params.path, "items"] }); }, objectProcessor = (schema, ctx, _json, params) => { - const json = _json; + const json2 = _json; const def = schema._zod.def; - json.type = "object"; - json.properties = {}; + json2.type = "object"; + json2.properties = {}; const shape = def.shape; for (const key in shape) { - json.properties[key] = process2(shape[key], ctx, { + json2.properties[key] = process2(shape[key], ctx, { ...params, path: [...params.path, "properties", key] }); @@ -11631,20 +11631,20 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { } })); if (requiredKeys.size > 0) { - json.required = Array.from(requiredKeys); + json2.required = Array.from(requiredKeys); } if (def.catchall?._zod.def.type === "never") { - json.additionalProperties = false; + json2.additionalProperties = false; } else if (!def.catchall) { if (ctx.io === "output") - json.additionalProperties = false; + json2.additionalProperties = false; } else if (def.catchall) { - json.additionalProperties = process2(def.catchall, ctx, { + json2.additionalProperties = process2(def.catchall, ctx, { ...params, path: [...params.path, "additionalProperties"] }); } -}, unionProcessor = (schema, ctx, json, params) => { +}, unionProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; const isExclusive = def.inclusive === false; const options = def.options.map((x, i) => process2(x, ctx, { @@ -11652,11 +11652,11 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { path: [...params.path, isExclusive ? "oneOf" : "anyOf", i] })); if (isExclusive) { - json.oneOf = options; + json2.oneOf = options; } else { - json.anyOf = options; + json2.anyOf = options; } -}, intersectionProcessor = (schema, ctx, json, params) => { +}, intersectionProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; const a = process2(def.left, ctx, { ...params, @@ -11671,11 +11671,11 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { ...isSimpleIntersection(a) ? a.allOf : [a], ...isSimpleIntersection(b) ? b.allOf : [b] ]; - json.allOf = allOf; + json2.allOf = allOf; }, tupleProcessor = (schema, ctx, _json, params) => { - const json = _json; + const json2 = _json; const def = schema._zod.def; - json.type = "array"; + json2.type = "array"; const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items"; const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems"; const prefixItems = def.items.map((x, i) => process2(x, ctx, { @@ -11687,36 +11687,36 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []] }) : null; if (ctx.target === "draft-2020-12") { - json.prefixItems = prefixItems; + json2.prefixItems = prefixItems; if (rest) { - json.items = rest; + json2.items = rest; } } else if (ctx.target === "openapi-3.0") { - json.items = { + json2.items = { anyOf: prefixItems }; if (rest) { - json.items.anyOf.push(rest); + json2.items.anyOf.push(rest); } - json.minItems = prefixItems.length; + json2.minItems = prefixItems.length; if (!rest) { - json.maxItems = prefixItems.length; + json2.maxItems = prefixItems.length; } } else { - json.items = prefixItems; + json2.items = prefixItems; if (rest) { - json.additionalItems = rest; + json2.additionalItems = rest; } } const { minimum, maximum } = schema._zod.bag; if (typeof minimum === "number") - json.minItems = minimum; + json2.minItems = minimum; if (typeof maximum === "number") - json.maxItems = maximum; + json2.maxItems = maximum; }, recordProcessor = (schema, ctx, _json, params) => { - const json = _json; + const json2 = _json; const def = schema._zod.def; - json.type = "object"; + json2.type = "object"; const keyType = def.keyType; const keyBag = keyType._zod.bag; const patterns = keyBag?.patterns; @@ -11725,18 +11725,18 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { ...params, path: [...params.path, "patternProperties", "*"] }); - json.patternProperties = {}; + json2.patternProperties = {}; for (const pattern of patterns) { - json.patternProperties[pattern.source] = valueSchema; + json2.patternProperties[pattern.source] = valueSchema; } } else { if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") { - json.propertyNames = process2(def.keyType, ctx, { + json2.propertyNames = process2(def.keyType, ctx, { ...params, path: [...params.path, "propertyNames"] }); } - json.additionalProperties = process2(def.valueType, ctx, { + json2.additionalProperties = process2(def.valueType, ctx, { ...params, path: [...params.path, "additionalProperties"] }); @@ -11745,38 +11745,38 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { if (keyValues) { const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); if (validKeyValues.length > 0) { - json.required = validKeyValues; + json2.required = validKeyValues; } } -}, nullableProcessor = (schema, ctx, json, params) => { +}, nullableProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; const inner = process2(def.innerType, ctx, params); const seen = ctx.seen.get(schema); if (ctx.target === "openapi-3.0") { seen.ref = def.innerType; - json.nullable = true; + json2.nullable = true; } else { - json.anyOf = [inner, { type: "null" }]; + json2.anyOf = [inner, { type: "null" }]; } }, nonoptionalProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; process2(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; -}, defaultProcessor = (schema, ctx, json, params) => { +}, defaultProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; process2(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; - json.default = JSON.parse(JSON.stringify(def.defaultValue)); -}, prefaultProcessor = (schema, ctx, json, params) => { + json2.default = JSON.parse(JSON.stringify(def.defaultValue)); +}, prefaultProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; process2(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; if (ctx.io === "input") - json._prefault = JSON.parse(JSON.stringify(def.defaultValue)); -}, catchProcessor = (schema, ctx, json, params) => { + json2._prefault = JSON.parse(JSON.stringify(def.defaultValue)); +}, catchProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; process2(def.innerType, ctx, params); const seen = ctx.seen.get(schema); @@ -11787,7 +11787,7 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { } catch { throw new Error("Dynamic catch values are not supported in JSON Schema"); } - json.default = catchValue; + json2.default = catchValue; }, pipeProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; const inIsTransform = def.in._zod.traits.has("$ZodTransform"); @@ -11795,12 +11795,12 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => { process2(innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = innerType; -}, readonlyProcessor = (schema, ctx, json, params) => { +}, readonlyProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; process2(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; - json.readOnly = true; + json2.readOnly = true; }, promiseProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; process2(def.innerType, ctx, params); @@ -12433,7 +12433,7 @@ __export(exports_schemas2, { ksuid: () => ksuid2, keyof: () => keyof, jwt: () => jwt, - json: () => json, + json: () => json2, ipv6: () => ipv62, ipv4: () => ipv42, invertCodec: () => invertCodec, @@ -13043,7 +13043,7 @@ function _instanceof(cls, params = {}) { }; return inst; } -function json(params) { +function json2(params) { const jsonSchema = lazy(() => { return union([string2(params), number2(), boolean2(), _null3(), array(jsonSchema), record(string2(), jsonSchema)]); }); @@ -13202,7 +13202,7 @@ var init_schemas2 = __esm(() => { _ZodString = /* @__PURE__ */ $constructor("_ZodString", (inst, def) => { $ZodString.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => stringProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => stringProcessor(inst, ctx, json2, params); const bag = inst._zod.bag; inst.format = bag.format ?? null; inst.minLength = bag.minimum ?? null; @@ -13377,7 +13377,7 @@ var init_schemas2 = __esm(() => { ZodNumber = /* @__PURE__ */ $constructor("ZodNumber", (inst, def) => { $ZodNumber.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => numberProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => numberProcessor(inst, ctx, json2, params); _installLazyMethods(inst, "ZodNumber", { gt(value, params) { return this.check(_gt(value, params)); @@ -13439,12 +13439,12 @@ var init_schemas2 = __esm(() => { ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => { $ZodBoolean.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => booleanProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => booleanProcessor(inst, ctx, json2, params); }); ZodBigInt = /* @__PURE__ */ $constructor("ZodBigInt", (inst, def) => { $ZodBigInt.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => bigintProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => bigintProcessor(inst, ctx, json2, params); inst.gte = (value, params) => inst.check(_gte(value, params)); inst.min = (value, params) => inst.check(_gte(value, params)); inst.gt = (value, params) => inst.check(_gt(value, params)); @@ -13470,42 +13470,42 @@ var init_schemas2 = __esm(() => { ZodSymbol = /* @__PURE__ */ $constructor("ZodSymbol", (inst, def) => { $ZodSymbol.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => symbolProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => symbolProcessor(inst, ctx, json2, params); }); ZodUndefined = /* @__PURE__ */ $constructor("ZodUndefined", (inst, def) => { $ZodUndefined.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => undefinedProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => undefinedProcessor(inst, ctx, json2, params); }); ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => { $ZodNull.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nullProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => nullProcessor(inst, ctx, json2, params); }); ZodAny = /* @__PURE__ */ $constructor("ZodAny", (inst, def) => { $ZodAny.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => anyProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => anyProcessor(inst, ctx, json2, params); }); ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => { $ZodUnknown.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => unknownProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => unknownProcessor(inst, ctx, json2, params); }); ZodNever = /* @__PURE__ */ $constructor("ZodNever", (inst, def) => { $ZodNever.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => neverProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => neverProcessor(inst, ctx, json2, params); }); ZodVoid = /* @__PURE__ */ $constructor("ZodVoid", (inst, def) => { $ZodVoid.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => voidProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => voidProcessor(inst, ctx, json2, params); }); ZodDate = /* @__PURE__ */ $constructor("ZodDate", (inst, def) => { $ZodDate.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => dateProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => dateProcessor(inst, ctx, json2, params); inst.min = (value, params) => inst.check(_gte(value, params)); inst.max = (value, params) => inst.check(_lte(value, params)); const c = inst._zod.bag; @@ -13515,7 +13515,7 @@ var init_schemas2 = __esm(() => { ZodArray = /* @__PURE__ */ $constructor("ZodArray", (inst, def) => { $ZodArray.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => arrayProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => arrayProcessor(inst, ctx, json2, params); inst.element = def.element; _installLazyMethods(inst, "ZodArray", { min(n, params) { @@ -13538,7 +13538,7 @@ var init_schemas2 = __esm(() => { ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => { $ZodObjectJIT.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => objectProcessor(inst, ctx, json2, params); exports_util.defineLazy(inst, "shape", () => { return def.shape; }); @@ -13587,13 +13587,13 @@ var init_schemas2 = __esm(() => { ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => { $ZodUnion.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); inst.options = def.options; }); ZodXor = /* @__PURE__ */ $constructor("ZodXor", (inst, def) => { ZodUnion.init(inst, def); $ZodXor.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); inst.options = def.options; }); ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("ZodDiscriminatedUnion", (inst, def) => { @@ -13603,12 +13603,12 @@ var init_schemas2 = __esm(() => { ZodIntersection = /* @__PURE__ */ $constructor("ZodIntersection", (inst, def) => { $ZodIntersection.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => intersectionProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => intersectionProcessor(inst, ctx, json2, params); }); ZodTuple = /* @__PURE__ */ $constructor("ZodTuple", (inst, def) => { $ZodTuple.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => tupleProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => tupleProcessor(inst, ctx, json2, params); inst.rest = (rest) => inst.clone({ ...inst._zod.def, rest @@ -13617,14 +13617,14 @@ var init_schemas2 = __esm(() => { ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => { $ZodRecord.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => recordProcessor(inst, ctx, json2, params); inst.keyType = def.keyType; inst.valueType = def.valueType; }); ZodMap = /* @__PURE__ */ $constructor("ZodMap", (inst, def) => { $ZodMap.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => mapProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => mapProcessor(inst, ctx, json2, params); inst.keyType = def.keyType; inst.valueType = def.valueType; inst.min = (...args) => inst.check(_minSize(...args)); @@ -13635,7 +13635,7 @@ var init_schemas2 = __esm(() => { ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => { $ZodSet.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => setProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => setProcessor(inst, ctx, json2, params); inst.min = (...args) => inst.check(_minSize(...args)); inst.nonempty = (params) => inst.check(_minSize(1, params)); inst.max = (...args) => inst.check(_maxSize(...args)); @@ -13644,7 +13644,7 @@ var init_schemas2 = __esm(() => { ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => { $ZodEnum.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => enumProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => enumProcessor(inst, ctx, json2, params); inst.enum = def.entries; inst.options = Object.values(def.entries); const keys = new Set(Object.keys(def.entries)); @@ -13682,7 +13682,7 @@ var init_schemas2 = __esm(() => { ZodLiteral = /* @__PURE__ */ $constructor("ZodLiteral", (inst, def) => { $ZodLiteral.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => literalProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => literalProcessor(inst, ctx, json2, params); inst.values = new Set(def.values); Object.defineProperty(inst, "value", { get() { @@ -13696,7 +13696,7 @@ var init_schemas2 = __esm(() => { ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => { $ZodFile.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => fileProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => fileProcessor(inst, ctx, json2, params); inst.min = (size, params) => inst.check(_minSize(size, params)); inst.max = (size, params) => inst.check(_maxSize(size, params)); inst.mime = (types, params) => inst.check(_mime(Array.isArray(types) ? types : [types], params)); @@ -13704,7 +13704,7 @@ var init_schemas2 = __esm(() => { ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => { $ZodTransform.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => transformProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => transformProcessor(inst, ctx, json2, params); inst._zod.parse = (payload, _ctx) => { if (_ctx.direction === "backward") { throw new $ZodEncodeError(inst.constructor.name); @@ -13738,62 +13738,62 @@ var init_schemas2 = __esm(() => { ZodOptional = /* @__PURE__ */ $constructor("ZodOptional", (inst, def) => { $ZodOptional.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodExactOptional = /* @__PURE__ */ $constructor("ZodExactOptional", (inst, def) => { $ZodExactOptional.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodNullable = /* @__PURE__ */ $constructor("ZodNullable", (inst, def) => { $ZodNullable.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nullableProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => nullableProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodDefault = /* @__PURE__ */ $constructor("ZodDefault", (inst, def) => { $ZodDefault.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => defaultProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => defaultProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; inst.removeDefault = inst.unwrap; }); ZodPrefault = /* @__PURE__ */ $constructor("ZodPrefault", (inst, def) => { $ZodPrefault.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => prefaultProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => prefaultProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodNonOptional = /* @__PURE__ */ $constructor("ZodNonOptional", (inst, def) => { $ZodNonOptional.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nonoptionalProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => nonoptionalProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodSuccess = /* @__PURE__ */ $constructor("ZodSuccess", (inst, def) => { $ZodSuccess.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => successProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => successProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodCatch = /* @__PURE__ */ $constructor("ZodCatch", (inst, def) => { $ZodCatch.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => catchProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => catchProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; inst.removeCatch = inst.unwrap; }); ZodNaN = /* @__PURE__ */ $constructor("ZodNaN", (inst, def) => { $ZodNaN.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => nanProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => nanProcessor(inst, ctx, json2, params); }); ZodPipe = /* @__PURE__ */ $constructor("ZodPipe", (inst, def) => { $ZodPipe.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => pipeProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => pipeProcessor(inst, ctx, json2, params); inst.in = def.in; inst.out = def.out; }); @@ -13808,35 +13808,35 @@ var init_schemas2 = __esm(() => { ZodReadonly = /* @__PURE__ */ $constructor("ZodReadonly", (inst, def) => { $ZodReadonly.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => readonlyProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => readonlyProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodTemplateLiteral = /* @__PURE__ */ $constructor("ZodTemplateLiteral", (inst, def) => { $ZodTemplateLiteral.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => templateLiteralProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => templateLiteralProcessor(inst, ctx, json2, params); }); ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => { $ZodLazy.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => lazyProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => lazyProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.getter(); }); ZodPromise = /* @__PURE__ */ $constructor("ZodPromise", (inst, def) => { $ZodPromise.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => promiseProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => promiseProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); ZodFunction = /* @__PURE__ */ $constructor("ZodFunction", (inst, def) => { $ZodFunction.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => functionProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => functionProcessor(inst, ctx, json2, params); }); ZodCustom = /* @__PURE__ */ $constructor("ZodCustom", (inst, def) => { $ZodCustom.init(inst, def); ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params); + inst._zod.processJSONSchema = (ctx, json2, params) => customProcessor(inst, ctx, json2, params); }); describe2 = describe; meta2 = meta; @@ -14472,7 +14472,7 @@ __export(exports_external, { ksuid: () => ksuid2, keyof: () => keyof, jwt: () => jwt, - json: () => json, + json: () => json2, iso: () => exports_iso, ipv6: () => ipv62, ipv4: () => ipv42, @@ -14734,7 +14734,7 @@ __export(exports_zod, { ksuid: () => ksuid2, keyof: () => keyof, jwt: () => jwt, - json: () => json, + json: () => json2, iso: () => exports_iso, ipv6: () => ipv62, ipv4: () => ipv42, @@ -15896,7 +15896,22 @@ var PG_MIGRATIONS = [ `CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_updated ON knowledge_sync_table_clocks(updated_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_source ON knowledge_sync_imports(source_machine_id, applied_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_target ON knowledge_sync_imports(target_machine_id, applied_at)`, - `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)` + `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)`, + `CREATE TABLE IF NOT EXISTS knowledge_items ( + id TEXT PRIMARY KEY, + short_id TEXT, + title TEXT NOT NULL, + content TEXT NOT NULL DEFAULT '', + url TEXT, + tags JSONB NOT NULL DEFAULT '[]'::jsonb, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + archived BOOLEAN NOT NULL DEFAULT FALSE, + created_at TEXT NOT NULL DEFAULT NOW()::text, + updated_at TEXT NOT NULL DEFAULT NOW()::text + )`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_short_id ON knowledge_items(short_id)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_archived ON knowledge_items(archived)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_created ON knowledge_items(created_at)` ]; // src/generated/storage-kit/mode.ts @@ -16650,187 +16665,14 @@ function coerceForSqlite(value) { return JSON.stringify(value); return String(value); } -// src/artifact-store.ts -import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as readFileSync3, statSync, writeFileSync as writeFileSync2 } from "fs"; -import { dirname as dirname2, join as join2, relative, sep } from "path"; -import { pathToFileURL } from "url"; -function normalizeArtifactKey(key) { - const raw = key.replace(/\\/g, "/").trim(); - if (!raw || raw.startsWith("/")) { - throw new Error(`Invalid artifact key: ${key}`); - } - const segments = raw.split("/").filter(Boolean); - if (segments.length === 0 || segments.some((segment) => segment === "." || segment === "..")) { - throw new Error(`Invalid artifact key: ${key}`); - } - return segments.join("/"); -} -function assertInside(root, target) { - const rel = relative(root, target); - if (rel.startsWith("..") || rel === ".." || rel.startsWith(`..${sep}`)) { - throw new Error(`Artifact path escapes root: ${target}`); - } -} -function s3UserMetadata(metadata) { - if (!metadata) - return; - const output = {}; - for (const [key, value] of Object.entries(metadata)) { - if (typeof value === "string") - output[key] = value; - else if (typeof value === "number" || typeof value === "boolean") - output[key] = String(value); - } - return Object.keys(output).length > 0 ? output : undefined; -} - -class LocalArtifactStore { - root; - type = "local"; - canRead = true; - canWrite = true; - constructor(root) { - this.root = root; - mkdirSync2(root, { recursive: true }); - } - async put(entry) { - const key = normalizeArtifactKey(entry.key); - const path = join2(this.root, key); - assertInside(this.root, path); - mkdirSync2(dirname2(path), { recursive: true }); - writeFileSync2(path, entry.body); - return { key, uri: pathToFileURL(path).href, modified_at: statSync(path).mtime.toISOString() }; - } - async getText(key) { - const normalizedKey = normalizeArtifactKey(key); - const path = join2(this.root, normalizedKey); - assertInside(this.root, path); - return readFileSync3(path, "utf8"); - } - async exists(key) { - const normalizedKey = normalizeArtifactKey(key); - const path = join2(this.root, normalizedKey); - assertInside(this.root, path); - return existsSync2(path); - } -} - -class S3ArtifactStore { - options; - type = "s3"; - canRead = true; - canWrite = true; - client; - constructor(options) { - this.options = options; - this.client = options.client; - } - async getClient() { - if (this.client) - return this.client; - const [{ S3Client }, { fromIni }] = await Promise.all([ - import("@aws-sdk/client-s3"), - import("@aws-sdk/credential-providers") - ]); - this.client = new S3Client({ - region: this.options.region, - credentials: this.options.profile ? fromIni({ profile: this.options.profile }) : undefined, - maxAttempts: this.options.max_attempts - }); - return this.client; - } - objectKey(key) { - const normalizedKey = normalizeArtifactKey(key); - const prefix = this.options.prefix ? normalizeArtifactKey(this.options.prefix) : ""; - return prefix ? `${prefix}/${normalizedKey}` : normalizedKey; - } - async put(entry) { - const [{ PutObjectCommand }, client] = await Promise.all([ - import("@aws-sdk/client-s3"), - this.getClient() - ]); - const logicalKey = normalizeArtifactKey(entry.key); - const key = this.objectKey(logicalKey); - await client.send(new PutObjectCommand({ - Bucket: this.options.bucket, - Key: key, - Body: entry.body, - ContentType: entry.content_type, - Metadata: s3UserMetadata(entry.metadata), - ServerSideEncryption: this.options.server_side_encryption, - SSEKMSKeyId: this.options.kms_key_id - })); - return { key: logicalKey, uri: `s3://${this.options.bucket}/${key}`, modified_at: new Date().toISOString() }; - } - async getText(key) { - const [{ GetObjectCommand }, client] = await Promise.all([ - import("@aws-sdk/client-s3"), - this.getClient() - ]); - const objectKey = this.objectKey(key); - const response = await client.send(new GetObjectCommand({ - Bucket: this.options.bucket, - Key: objectKey - })); - if (!response.Body) - return ""; - return await response.Body.transformToString(); - } - async exists(key) { - const [{ HeadObjectCommand }, client] = await Promise.all([ - import("@aws-sdk/client-s3"), - this.getClient() - ]); - const objectKey = this.objectKey(key); - try { - await client.send(new HeadObjectCommand({ - Bucket: this.options.bucket, - Key: objectKey - })); - return true; - } catch (error) { - const name = error instanceof Error ? error.name : ""; - if (name === "NotFound" || name === "NoSuchKey" || name === "NotFoundError") - return false; - throw error; - } - } -} -function createArtifactStore(config, workspace) { - if (config.storage.type === "s3") { - if (!config.storage.s3?.bucket) - throw new Error("S3 artifact storage requires storage.s3.bucket"); - return new S3ArtifactStore({ - bucket: config.storage.s3.bucket, - prefix: config.storage.s3.prefix, - region: config.storage.s3.region, - profile: config.storage.s3.profile, - max_attempts: config.storage.s3.max_attempts, - server_side_encryption: config.storage.s3.server_side_encryption, - kms_key_id: config.storage.s3.kms_key_id - }); - } - return new LocalArtifactStore(workspace.artifactsDir); -} - -// src/service.ts -import { createHash as createHash18 } from "crypto"; -import { spawnSync as spawnSync2 } from "child_process"; -import { existsSync as existsSync12, readFileSync as readFileSync13 } from "fs"; -import { hostname as hostname5 } from "os"; -import { join as join6, resolve as resolve5 } from "path"; - -// src/app-wiki.ts -import { createHash as createHash6, randomUUID as randomUUID3 } from "crypto"; - -// src/storage-contract.ts -import { createHash as createHash2, randomUUID } from "crypto"; -import { pathToFileURL as pathToFileURL2 } from "url"; +// src/serve.ts +import { readFileSync as readFileSync5 } from "fs"; +import { verifyApiKey, ApiKeyStore } from "@hasna/contracts/auth"; // src/auth.ts -import { existsSync as existsSync3, mkdirSync as mkdirSync3, readFileSync as readFileSync4, unlinkSync, writeFileSync as writeFileSync3 } from "fs"; +import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as readFileSync3, unlinkSync, writeFileSync as writeFileSync2 } from "fs"; import { homedir as homedir2 } from "os"; -import { dirname as dirname3, join as join3 } from "path"; +import { dirname as dirname2, join as join2 } from "path"; var DEFAULT_KNOWLEDGE_API_URL = "https://knowledge.hasna.xyz"; function normalizeKnowledgeApiOrigin(apiUrl) { const url = new URL(apiUrl); @@ -16850,8 +16692,8 @@ function normalizeKnowledgeApiOrigin(apiUrl) { function knowledgeAuthPath(env = process.env) { if (env.HASNA_KNOWLEDGE_AUTH_PATH) return env.HASNA_KNOWLEDGE_AUTH_PATH; - const root = env.HASNA_KNOWLEDGE_AUTH_DIR ?? join3(homedir2(), ".hasna", "knowledge"); - return join3(root, "auth.json"); + const root = env.HASNA_KNOWLEDGE_AUTH_DIR ?? join2(homedir2(), ".hasna", "knowledge"); + return join2(root, "auth.json"); } function resolveKnowledgeApiUrl(config, env = process.env) { return normalizeKnowledgeApiOrigin(env.KNOWLEDGE_API_URL ?? config?.hosted?.api_url ?? DEFAULT_KNOWLEDGE_API_URL); @@ -16859,9 +16701,9 @@ function resolveKnowledgeApiUrl(config, env = process.env) { function getKnowledgeAuth(env = process.env) { try { const path = knowledgeAuthPath(env); - if (!existsSync3(path)) + if (!existsSync2(path)) return null; - const parsed = JSON.parse(readFileSync4(path, "utf8")); + const parsed = JSON.parse(readFileSync3(path, "utf8")); return typeof parsed.api_key === "string" && parsed.api_key.length > 0 ? parsed : null; } catch { return null; @@ -16874,8 +16716,8 @@ function saveKnowledgeAuth(auth, env = process.env) { api_url: auth.api_url ? normalizeKnowledgeApiOrigin(auth.api_url) : undefined, created_at: auth.created_at ?? new Date().toISOString() }; - mkdirSync3(dirname3(path), { recursive: true, mode: 448 }); - writeFileSync3(path, `${JSON.stringify(stored, null, 2)} + mkdirSync2(dirname2(path), { recursive: true, mode: 448 }); + writeFileSync2(path, `${JSON.stringify(stored, null, 2)} `, { mode: 384 }); return stored; } @@ -17006,71 +16848,742 @@ class RemoteKnowledgeClient { return null; return new RemoteKnowledgeClient(key.apiKey, resolveKnowledgeApiUrl(config, env)); } - async request(path, options = {}) { - return fetch(`${this.apiUrl}${path}`, { - ...options, - headers: { - Authorization: `Bearer ${this.apiKey}`, - "Content-Type": "application/json", - ...options.headers - } - }); + async request(path, options = {}) { + return fetch(`${this.apiUrl}${path}`, { + ...options, + headers: { + Authorization: `Bearer ${this.apiKey}`, + "Content-Type": "application/json", + ...options.headers + } + }); + } + async registry() { + const response = await this.request("/api/v1/knowledge/registry"); + return response.json(); + } + async search(request) { + const response = await this.request("/api/v1/knowledge/search", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "search", query: request.query }); + } + async ask(request) { + const response = await this.request("/api/v1/knowledge/ask", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "ask", prompt: request.prompt }); + } + async build(request) { + const response = await this.request("/api/v1/knowledge/build", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "build", prompt: request.prompt }); + } + async sync(request = {}) { + const response = await this.request("/api/v1/knowledge/sync", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "sync" }); + } + async runStatus(runId) { + const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}`); + if (!response.ok) + return null; + return normalizeRemoteKnowledgeRunContract(await response.json(), { id: runId, type: "status" }); + } + async runLogs(runId) { + const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}/logs`); + if (!response.ok) + return []; + const payload = await response.json(); + return Array.isArray(payload) ? payload : []; + } + async runArtifacts(runId) { + const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}/artifacts`); + if (!response.ok) + return []; + const payload = await response.json(); + return Array.isArray(payload) ? payload : []; + } +} + +// src/store.ts +import { readFileSync as readFileSync4, writeFileSync as writeFileSync3, existsSync as existsSync3, renameSync, unlinkSync as unlinkSync2 } from "fs"; +import { randomUUID } from "crypto"; +function defaultStorePath() { + return workspaceForHome(globalKnowledgeHome()).jsonStorePath; +} +function ensureStore(path) { + if (!existsSync3(path)) { + ensureParentDir(path); + if (path === defaultStorePath() && existsSync3(legacyGlobalStorePath())) { + writeFileSync3(path, readFileSync4(legacyGlobalStorePath(), "utf8")); + } else { + writeFileSync3(path, JSON.stringify({ items: [] }, null, 2)); + } + } +} +function loadStoreIfExists(path) { + if (!existsSync3(path)) + return { exists: false, items: [] }; + const raw = readFileSync4(path, "utf8"); + const parsed = JSON.parse(raw); + if (!parsed || !Array.isArray(parsed.items)) { + return { exists: true, items: [] }; + } + return { exists: true, items: parsed.items }; +} +function lockPath(path) { + return `${path}.lock`; +} +function acquireLock(lockPath2, ownerId) { + const maxWait = 5000; + const interval = 50; + const start = Date.now(); + while (Date.now() - start < maxWait) { + try { + if (!existsSync3(lockPath2)) { + writeFileSync3(lockPath2, JSON.stringify({ owner: ownerId, ts: Date.now() })); + return; + } + const lock = JSON.parse(readFileSync4(lockPath2, "utf8")); + if (Date.now() - lock.ts > 1e4) { + unlinkSync2(lockPath2); + } + } catch {} + const start2 = Date.now(); + while (Date.now() - start2 < interval) {} + } + throw new Error(`Could not acquire lock on ${lockPath2} after ${maxWait}ms`); +} +function releaseLock(lockPath2, ownerId) { + try { + if (existsSync3(lockPath2)) { + const lock = JSON.parse(readFileSync4(lockPath2, "utf8")); + if (lock.owner === ownerId) { + unlinkSync2(lockPath2); + } + } + } catch {} +} +function saveStore(path, store) { + const tmp = `${path}.tmp.${randomUUID()}`; + writeFileSync3(tmp, JSON.stringify(store, null, 2)); + renameSync(tmp, path); +} +function withLock(path, fn, options = {}) { + const owner = randomUUID(); + const lpath = lockPath(path); + if (options.createParent) + ensureParentDir(lpath); + acquireLock(lpath, owner); + try { + return fn(); + } finally { + releaseLock(lpath, owner); + } +} +function makeId() { + return `k_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`; +} +function makeShortId(id) { + return id.replace(/^k_/, "").slice(0, 12); +} + +// src/serve.ts +var KNOWLEDGE_SERVE_APP = "knowledge"; +function normalizeCloudDatabaseUrl(env = process.env) { + const key = "HASNA_KNOWLEDGE_DATABASE_URL"; + const url = env[key] ?? env.KNOWLEDGE_DATABASE_URL; + if (!url) + return url; + const lower = url.toLowerCase(); + const needsCompat = (lower.includes("sslmode=require") || lower.includes("sslmode=prefer")) && !lower.includes("uselibpqcompat"); + if (!needsCompat) + return url; + const updated = url.includes("?") ? `${url}&uselibpqcompat=true` : `${url}?uselibpqcompat=true`; + env[key] = updated; + return updated; +} +function resolveVersion() { + if (process.env.HASNA_KNOWLEDGE_VERSION) + return process.env.HASNA_KNOWLEDGE_VERSION; + try { + const url = new URL("../package.json", import.meta.url); + const pkg = JSON.parse(readFileSync5(url, "utf8")); + return pkg.version ?? "0.0.0"; + } catch { + return process.env.npm_package_version ?? "0.0.0"; + } +} +function resolveSigningSecret(env = process.env) { + const secret = env.HASNA_KNOWLEDGE_API_SIGNING_KEY ?? env.API_KEY_SIGNING_SECRET ?? env.HASNA_API_SIGNING_KEY; + if (!secret) { + throw new Error("knowledge-serve requires an API signing secret: set HASNA_KNOWLEDGE_API_SIGNING_KEY " + "(or API_KEY_SIGNING_SECRET / HASNA_API_SIGNING_KEY)."); + } + return secret; +} +function rowToItem(row) { + const parseJson = (value, fallback) => { + if (value == null) + return fallback; + if (typeof value === "string") { + try { + return JSON.parse(value); + } catch { + return fallback; + } + } + return value; + }; + return { + id: String(row.id), + short_id: row.short_id ?? null, + title: String(row.title ?? ""), + content: String(row.content ?? ""), + url: row.url ?? null, + tags: parseJson(row.tags, []), + metadata: parseJson(row.metadata, {}), + archived: Boolean(row.archived), + created_at: String(row.created_at), + updated_at: String(row.updated_at) + }; +} + +class NoteRepo { + client; + constructor(client) { + this.client = client; + } + async create(input) { + if (!input.title || typeof input.title !== "string") { + throw new HttpError(400, "title is required"); + } + const id = makeId(); + const now = new Date().toISOString(); + const row = await this.client.get(`INSERT INTO knowledge_items (id, short_id, title, content, url, tags, metadata, archived, created_at, updated_at) + VALUES ($1,$2,$3,$4,$5,$6::jsonb,$7::jsonb,FALSE,$8,$9) + RETURNING *`, [ + id, + makeShortId(id), + input.title, + input.content ?? "", + input.url ?? null, + JSON.stringify(input.tags ?? []), + JSON.stringify(input.metadata ?? {}), + now, + now + ]); + return rowToItem(row); + } + async list(options = {}) { + const limit = Math.min(Math.max(options.limit ?? 50, 1), 200); + const offset = Math.max(options.offset ?? 0, 0); + const where = []; + const params = []; + if (!options.includeArchived) + where.push("archived = FALSE"); + if (options.search) { + params.push(`%${options.search}%`); + where.push(`(title ILIKE $${params.length} OR content ILIKE $${params.length})`); + } + const whereSql = where.length ? `WHERE ${where.join(" AND ")}` : ""; + const totalRow = await this.client.get(`SELECT count(*)::text AS count FROM knowledge_items ${whereSql}`, params); + const rows = await this.client.many(`SELECT * FROM knowledge_items ${whereSql} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${offset}`, params); + return { items: rows.map(rowToItem), total: Number(totalRow?.count ?? 0) }; + } + async get(idOrShort) { + const row = await this.client.get(`SELECT * FROM knowledge_items WHERE id = $1 OR short_id = $1 LIMIT 1`, [idOrShort]); + return row ? rowToItem(row) : null; + } + async update(idOrShort, patch) { + const existing = await this.get(idOrShort); + if (!existing) + return null; + const sets = []; + const params = []; + const push = (col, val, cast = "") => { + params.push(val); + sets.push(`${col} = $${params.length}${cast}`); + }; + if (patch.title !== undefined) + push("title", patch.title); + if (patch.content !== undefined) + push("content", patch.content); + if (patch.url !== undefined) + push("url", patch.url); + if (patch.tags !== undefined) + push("tags", JSON.stringify(patch.tags), "::jsonb"); + if (patch.metadata !== undefined) + push("metadata", JSON.stringify(patch.metadata), "::jsonb"); + if (patch.archived !== undefined) + push("archived", patch.archived); + push("updated_at", new Date().toISOString()); + params.push(existing.id); + const row = await this.client.get(`UPDATE knowledge_items SET ${sets.join(", ")} WHERE id = $${params.length} RETURNING *`, params); + return row ? rowToItem(row) : null; + } + async delete(idOrShort) { + const existing = await this.get(idOrShort); + if (!existing) + return false; + await this.client.execute(`DELETE FROM knowledge_items WHERE id = $1`, [existing.id]); + return true; + } +} +function knowledgeOpenApi(version) { + const noteSchema = { + type: "object", + properties: { + id: { type: "string" }, + short_id: { type: "string", nullable: true }, + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true }, + archived: { type: "boolean" }, + created_at: { type: "string" }, + updated_at: { type: "string" } + }, + required: ["id", "title", "content", "tags", "archived", "created_at", "updated_at"] + }; + const noteInput = { + type: "object", + properties: { + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true } + }, + required: ["title"] + }; + const notePatch = { + type: "object", + properties: { + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true }, + archived: { type: "boolean" } + } + }; + return { + openapi: "3.0.3", + info: { title: "Knowledge", version, description: "@hasna/knowledge self-hosted HTTP API" }, + components: { + securitySchemes: { apiKey: { type: "apiKey", in: "header", name: "x-api-key" } }, + schemas: { + Note: noteSchema, + NoteInput: noteInput, + NotePatch: notePatch, + NoteList: { + type: "object", + properties: { + items: { type: "array", items: { $ref: "#/components/schemas/Note" } }, + total: { type: "integer" } + }, + required: ["items", "total"] + } + } + }, + security: [{ apiKey: [] }], + paths: { + "/v1/notes": { + get: { + operationId: "listNotes", + summary: "List knowledge items", + parameters: [ + { name: "limit", in: "query", schema: { type: "integer" } }, + { name: "offset", in: "query", schema: { type: "integer" } }, + { name: "search", in: "query", schema: { type: "string" } } + ], + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/NoteList" } } } } + } + }, + post: { + operationId: "createNote", + summary: "Create a knowledge item", + requestBody: { + required: true, + content: { "application/json": { schema: { $ref: "#/components/schemas/NoteInput" } } } + }, + responses: { + "201": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + } + }, + "/v1/notes/{id}": { + get: { + operationId: "getNote", + summary: "Fetch a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + }, + patch: { + operationId: "updateNote", + summary: "Update a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + requestBody: { + required: true, + content: { "application/json": { schema: { $ref: "#/components/schemas/NotePatch" } } } + }, + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + }, + delete: { + operationId: "deleteNote", + summary: "Delete a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + responses: { "204": {} } + } + }, + "/v1/registry": { + get: { + operationId: "getRegistry", + summary: "Knowledge registry contract", + responses: { + "200": { content: { "application/json": { schema: { type: "object", additionalProperties: true } } } } + } + } + } + } + }; +} + +class HttpError extends Error { + status; + constructor(status, message) { + super(message); + this.status = status; + } +} +function json(body, status = 200) { + return new Response(JSON.stringify(body), { + status, + headers: { "content-type": "application/json" } + }); +} +function createServeHandler(deps) { + const repo = new NoteRepo(deps.client); + const mode2 = "cloud"; + const authOrThrow = async (req, requiredScopes) => { + const url = new URL(req.url); + const decision = await deps.verifier.authenticate(req.headers, { + method: req.method, + path: url.pathname, + requiredScopes + }); + if (decision.ok === false) { + throw new HttpError(decision.status, decision.message); + } + deps.store.touchLastUsed(decision.principal.kid).catch(() => {}); + return decision.principal; + }; + return async (req) => { + const url = new URL(req.url); + const path = url.pathname.replace(/\/+$/, "") || "/"; + const method = req.method.toUpperCase(); + try { + if (path === "/health" && method === "GET") { + return json({ status: "ok", version: deps.version, mode: mode2 }); + } + if (path === "/version" && method === "GET") { + return json({ status: "ok", version: deps.version, mode: mode2 }); + } + if (path === "/ready" && method === "GET") { + try { + await deps.client.query("SELECT 1"); + return json({ status: "ready", version: deps.version, mode: mode2 }); + } catch { + return json({ status: "unavailable", version: deps.version, mode: mode2 }, 503); + } + } + if (path === "/openapi.json" && method === "GET") { + return json(knowledgeOpenApi(deps.version)); + } + if (path === "/v1/registry" && method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + return json(knowledgeRegistryContract({ + mode: "hosted", + sourceSchemes: ["open-files", "s3", "web", "file"], + storageType: "s3", + artifactUriPrefix: process.env.HASNA_KNOWLEDGE_S3_PREFIX ?? null + })); + } + if (path === "/v1/notes") { + if (method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + const result = await repo.list({ + limit: url.searchParams.has("limit") ? Number(url.searchParams.get("limit")) : undefined, + offset: url.searchParams.has("offset") ? Number(url.searchParams.get("offset")) : undefined, + search: url.searchParams.get("search") ?? undefined, + includeArchived: url.searchParams.get("includeArchived") === "true" + }); + return json(result); + } + if (method === "POST") { + await authOrThrow(req, ["knowledge:write"]); + const body = await req.json().catch(() => ({})); + const item = await repo.create(body); + return json(item, 201); + } + return json({ error: "method_not_allowed" }, 405); + } + const noteMatch = path.match(/^\/v1\/notes\/([^/]+)$/); + if (noteMatch) { + const id = decodeURIComponent(noteMatch[1]); + if (method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + const item = await repo.get(id); + return item ? json(item) : json({ error: "not_found" }, 404); + } + if (method === "PATCH") { + await authOrThrow(req, ["knowledge:write"]); + const body = await req.json().catch(() => ({})); + const item = await repo.update(id, body); + return item ? json(item) : json({ error: "not_found" }, 404); + } + if (method === "DELETE") { + await authOrThrow(req, ["knowledge:write"]); + const ok = await repo.delete(id); + return ok ? new Response(null, { status: 204 }) : json({ error: "not_found" }, 404); + } + return json({ error: "method_not_allowed" }, 405); + } + return json({ error: "not_found", path }, 404); + } catch (error) { + if (error instanceof HttpError) { + const reason = error.status === 401 || error.status === 403 ? "unauthorized" : "error"; + return json({ error: reason, message: error.message }, error.status); + } + const message = error instanceof Error ? error.message : "internal error"; + return json({ error: "internal", message }, 500); + } + }; +} +async function startKnowledgeServe(options = {}) { + const env = options.env ?? process.env; + const port = options.port ?? Number(env.PORT ?? env.HASNA_KNOWLEDGE_SERVE_PORT ?? 8080); + const hostname = options.hostname ?? env.HOST ?? "0.0.0.0"; + const version = resolveVersion(); + normalizeCloudDatabaseUrl(env); + const client = createKnowledgeCloudClient(); + const store = new ApiKeyStore(client); + const verifier = verifyApiKey({ + app: KNOWLEDGE_SERVE_APP, + signingSecret: resolveSigningSecret(env), + isRevoked: store.isRevoked, + audit: (e) => { + if (e.outcome === "deny") { + console.warn(`[knowledge-serve] auth deny kid=${e.kid ?? "-"} reason=${e.reason} ${e.method} ${e.path}`); + } + } + }); + const handler = createServeHandler({ client, verifier, store, version }); + const BunGlobal = globalThis.Bun; + if (!BunGlobal?.serve) { + throw new Error("knowledge-serve requires the Bun runtime (Bun.serve unavailable)."); + } + const server = BunGlobal.serve({ port, hostname, fetch: handler }); + console.log(`[knowledge-serve] listening on http://${hostname}:${server.port} (mode=cloud, version=${version})`); + return { + port: server.port, + hostname, + stop: async () => { + server.stop(); + await client.close(); + } + }; +} + +// src/artifact-store.ts +import { existsSync as existsSync4, mkdirSync as mkdirSync3, readFileSync as readFileSync6, statSync, writeFileSync as writeFileSync4 } from "fs"; +import { dirname as dirname3, join as join3, relative, sep } from "path"; +import { pathToFileURL } from "url"; +function normalizeArtifactKey(key) { + const raw = key.replace(/\\/g, "/").trim(); + if (!raw || raw.startsWith("/")) { + throw new Error(`Invalid artifact key: ${key}`); + } + const segments = raw.split("/").filter(Boolean); + if (segments.length === 0 || segments.some((segment) => segment === "." || segment === "..")) { + throw new Error(`Invalid artifact key: ${key}`); + } + return segments.join("/"); +} +function assertInside(root, target) { + const rel = relative(root, target); + if (rel.startsWith("..") || rel === ".." || rel.startsWith(`..${sep}`)) { + throw new Error(`Artifact path escapes root: ${target}`); + } +} +function s3UserMetadata(metadata) { + if (!metadata) + return; + const output = {}; + for (const [key, value] of Object.entries(metadata)) { + if (typeof value === "string") + output[key] = value; + else if (typeof value === "number" || typeof value === "boolean") + output[key] = String(value); + } + return Object.keys(output).length > 0 ? output : undefined; +} + +class LocalArtifactStore { + root; + type = "local"; + canRead = true; + canWrite = true; + constructor(root) { + this.root = root; + mkdirSync3(root, { recursive: true }); + } + async put(entry) { + const key = normalizeArtifactKey(entry.key); + const path = join3(this.root, key); + assertInside(this.root, path); + mkdirSync3(dirname3(path), { recursive: true }); + writeFileSync4(path, entry.body); + return { key, uri: pathToFileURL(path).href, modified_at: statSync(path).mtime.toISOString() }; } - async registry() { - const response = await this.request("/api/v1/knowledge/registry"); - return response.json(); + async getText(key) { + const normalizedKey = normalizeArtifactKey(key); + const path = join3(this.root, normalizedKey); + assertInside(this.root, path); + return readFileSync6(path, "utf8"); } - async search(request) { - const response = await this.request("/api/v1/knowledge/search", { - method: "POST", - body: JSON.stringify(request) - }); - return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "search", query: request.query }); + async exists(key) { + const normalizedKey = normalizeArtifactKey(key); + const path = join3(this.root, normalizedKey); + assertInside(this.root, path); + return existsSync4(path); } - async ask(request) { - const response = await this.request("/api/v1/knowledge/ask", { - method: "POST", - body: JSON.stringify(request) - }); - return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "ask", prompt: request.prompt }); +} + +class S3ArtifactStore { + options; + type = "s3"; + canRead = true; + canWrite = true; + client; + constructor(options) { + this.options = options; + this.client = options.client; } - async build(request) { - const response = await this.request("/api/v1/knowledge/build", { - method: "POST", - body: JSON.stringify(request) + async getClient() { + if (this.client) + return this.client; + const [{ S3Client }, { fromIni }] = await Promise.all([ + import("@aws-sdk/client-s3"), + import("@aws-sdk/credential-providers") + ]); + this.client = new S3Client({ + region: this.options.region, + credentials: this.options.profile ? fromIni({ profile: this.options.profile }) : undefined, + maxAttempts: this.options.max_attempts }); - return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "build", prompt: request.prompt }); + return this.client; } - async sync(request = {}) { - const response = await this.request("/api/v1/knowledge/sync", { - method: "POST", - body: JSON.stringify(request) - }); - return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "sync" }); + objectKey(key) { + const normalizedKey = normalizeArtifactKey(key); + const prefix = this.options.prefix ? normalizeArtifactKey(this.options.prefix) : ""; + return prefix ? `${prefix}/${normalizedKey}` : normalizedKey; } - async runStatus(runId) { - const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}`); - if (!response.ok) - return null; - return normalizeRemoteKnowledgeRunContract(await response.json(), { id: runId, type: "status" }); + async put(entry) { + const [{ PutObjectCommand }, client] = await Promise.all([ + import("@aws-sdk/client-s3"), + this.getClient() + ]); + const logicalKey = normalizeArtifactKey(entry.key); + const key = this.objectKey(logicalKey); + await client.send(new PutObjectCommand({ + Bucket: this.options.bucket, + Key: key, + Body: entry.body, + ContentType: entry.content_type, + Metadata: s3UserMetadata(entry.metadata), + ServerSideEncryption: this.options.server_side_encryption, + SSEKMSKeyId: this.options.kms_key_id + })); + return { key: logicalKey, uri: `s3://${this.options.bucket}/${key}`, modified_at: new Date().toISOString() }; } - async runLogs(runId) { - const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}/logs`); - if (!response.ok) - return []; - const payload = await response.json(); - return Array.isArray(payload) ? payload : []; + async getText(key) { + const [{ GetObjectCommand }, client] = await Promise.all([ + import("@aws-sdk/client-s3"), + this.getClient() + ]); + const objectKey = this.objectKey(key); + const response = await client.send(new GetObjectCommand({ + Bucket: this.options.bucket, + Key: objectKey + })); + if (!response.Body) + return ""; + return await response.Body.transformToString(); } - async runArtifacts(runId) { - const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}/artifacts`); - if (!response.ok) - return []; - const payload = await response.json(); - return Array.isArray(payload) ? payload : []; + async exists(key) { + const [{ HeadObjectCommand }, client] = await Promise.all([ + import("@aws-sdk/client-s3"), + this.getClient() + ]); + const objectKey = this.objectKey(key); + try { + await client.send(new HeadObjectCommand({ + Bucket: this.options.bucket, + Key: objectKey + })); + return true; + } catch (error) { + const name = error instanceof Error ? error.name : ""; + if (name === "NotFound" || name === "NoSuchKey" || name === "NotFoundError") + return false; + throw error; + } + } +} +function createArtifactStore(config, workspace) { + if (config.storage.type === "s3") { + if (!config.storage.s3?.bucket) + throw new Error("S3 artifact storage requires storage.s3.bucket"); + return new S3ArtifactStore({ + bucket: config.storage.s3.bucket, + prefix: config.storage.s3.prefix, + region: config.storage.s3.region, + profile: config.storage.s3.profile, + max_attempts: config.storage.s3.max_attempts, + server_side_encryption: config.storage.s3.server_side_encryption, + kms_key_id: config.storage.s3.kms_key_id + }); } + return new LocalArtifactStore(workspace.artifactsDir); } +// src/service.ts +import { createHash as createHash18 } from "crypto"; +import { spawnSync as spawnSync2 } from "child_process"; +import { existsSync as existsSync12, readFileSync as readFileSync14 } from "fs"; +import { hostname as hostname5 } from "os"; +import { join as join6, resolve as resolve5 } from "path"; + +// src/app-wiki.ts +import { createHash as createHash6, randomUUID as randomUUID4 } from "crypto"; + // src/storage-contract.ts +import { createHash as createHash2, randomUUID as randomUUID2 } from "crypto"; +import { pathToFileURL as pathToFileURL2 } from "url"; var GENERATED_ARTIFACTS = [ { kind: "schema", @@ -17304,7 +17817,7 @@ function recordStorageObjects(db, objects, now = new Date) { ...entry.modified_at ? { artifact_modified_at: entry.modified_at } : {}, ...entry.metadata ?? {} }; - statement.run(randomUUID(), entry.uri, entry.kind, entry.content_type ?? null, entry.hash ?? null, entry.size_bytes ?? null, JSON.stringify(metadata), timestamp, timestamp); + statement.run(randomUUID2(), entry.uri, entry.kind, entry.content_type ?? null, entry.hash ?? null, entry.size_bytes ?? null, JSON.stringify(metadata), timestamp, timestamp); } }); insert(objects); @@ -17354,12 +17867,12 @@ function withProvenance(metadata, provenance) { // src/source-ingest.ts import { createHash as createHash5 } from "crypto"; -import { existsSync as existsSync5, readFileSync as readFileSync6 } from "fs"; +import { existsSync as existsSync6, readFileSync as readFileSync8 } from "fs"; import { basename as basename2 } from "path"; // src/manifest-ingest.ts import { createHash as createHash4 } from "crypto"; -import { existsSync as existsSync4, readFileSync as readFileSync5 } from "fs"; +import { existsSync as existsSync5, readFileSync as readFileSync7 } from "fs"; import { basename } from "path"; // src/source-ref.ts @@ -17435,7 +17948,7 @@ function isSupportedSourceRef(uri) { } // src/safety.ts -import { createHash as createHash3, randomUUID as randomUUID2 } from "crypto"; +import { createHash as createHash3, randomUUID as randomUUID3 } from "crypto"; import { relative as relative2, resolve as resolve2, sep as sep2 } from "path"; function envEnabled(name) { const value = process.env[name]; @@ -17530,7 +18043,7 @@ function redactSecrets(text, policy) { return { text: output, findings }; } function auditId(input) { - return `audit_${createHash3("sha256").update(`${input.event_type}\x00${input.action}\x00${input.target_uri ?? ""}\x00${input.created_at ?? ""}\x00${JSON.stringify(input.metadata ?? {})}\x00${randomUUID2()}`).digest("hex").slice(0, 24)}`; + return `audit_${createHash3("sha256").update(`${input.event_type}\x00${input.action}\x00${input.target_uri ?? ""}\x00${input.created_at ?? ""}\x00${JSON.stringify(input.metadata ?? {})}\x00${randomUUID3()}`).digest("hex").slice(0, 24)}`; } function truncateAuditMetadata(value, depth = 0) { if (depth > 6) @@ -17579,7 +18092,7 @@ function recordRedactionFindings(db, input) { for (const finding of input.findings) { db.run(`INSERT INTO redaction_findings (id, source_uri, run_id, severity, finding_type, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)`, [ - `redact_${randomUUID2()}`, + `redact_${randomUUID3()}`, input.source_uri ?? null, input.run_id ?? null, finding.severity, @@ -17823,9 +18336,9 @@ async function readS3Text(uri, config, safetyPolicy) { } async function readManifestInput(input, config, safetyPolicy, maxInputBytes = DEFAULT_MAX_MANIFEST_INPUT_BYTES) { const text = input.startsWith("s3://") ? await readS3Text(input, config, safetyPolicy) : (() => { - if (!existsSync4(input)) + if (!existsSync5(input)) throw new Error(`Manifest not found: ${input}`); - return readFileSync5(input, "utf8"); + return readFileSync7(input, "utf8"); })(); const bytes = Buffer.byteLength(text); if (bytes > maxInputBytes) { @@ -18439,9 +18952,9 @@ function titleForRef(parsed) { } async function readDirectSourceText(parsed, config, safetyPolicy) { if (parsed.kind === "file") { - if (!existsSync5(parsed.path)) + if (!existsSync6(parsed.path)) throw new Error(`Source file not found: ${parsed.path}`); - const text = readFileSync6(parsed.path, "utf8"); + const text = readFileSync8(parsed.path, "utf8"); return { text, contentSource: "file", @@ -18761,7 +19274,7 @@ function replaceNoteCitations(db, pageId, sourceRefs, now) { for (const citation of citations) { db.run(`INSERT INTO citations (id, wiki_page_id, chunk_id, source_uri, quote, start_offset, end_offset, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [ - stableId2("cit", `${pageId}\x00${citation.source_uri}\x00${citation.chunk_id ?? randomUUID3()}`), + stableId2("cit", `${pageId}\x00${citation.source_uri}\x00${citation.chunk_id ?? randomUUID4()}`), pageId, citation.chunk_id, citation.source_uri, @@ -19058,10 +19571,10 @@ async function ingestAppWikiSourceRef(options) { } // src/agent.ts -import { randomUUID as randomUUID5 } from "crypto"; +import { randomUUID as randomUUID6 } from "crypto"; // src/providers.ts -import { randomUUID as randomUUID4 } from "crypto"; +import { randomUUID as randomUUID5 } from "crypto"; var DEFAULT_PROVIDER_SETTINGS = { openai: { api_key_env: "OPENAI_API_KEY", @@ -19247,7 +19760,7 @@ function normalizeAiSdkUsage(input) { }; } function recordProviderUsage(db, input) { - const id = `usage_${randomUUID4()}`; + const id = `usage_${randomUUID5()}`; db.run(`INSERT INTO provider_usage (id, run_id, provider, model, input_tokens, output_tokens, cost_usd, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [ id, @@ -19267,7 +19780,7 @@ function recordProviderUsage(db, input) { import { createHash as createHash8 } from "crypto"; // src/search.ts -import { existsSync as existsSync6, readFileSync as readFileSync7 } from "fs"; +import { existsSync as existsSync7, readFileSync as readFileSync9 } from "fs"; // src/embeddings.ts import { createHash as createHash7 } from "crypto"; @@ -19758,10 +20271,10 @@ function selectKnowledgeIndexes(db, terms, limit) { LIMIT ?`).all(...likeParams(terms, fields.length), limit); } function readLegacyItems(path) { - if (!path || !existsSync6(path)) + if (!path || !existsSync7(path)) return []; try { - const parsed = JSON.parse(readFileSync7(path, "utf8")); + const parsed = JSON.parse(readFileSync9(path, "utf8")); if (!parsed || !Array.isArray(parsed.items)) return []; return parsed.items.filter((item) => { @@ -20381,7 +20894,7 @@ function addRunEvent(dbPath, input) { try { db.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?)`, [ - `evt_${randomUUID5()}`, + `evt_${randomUUID6()}`, input.runId, input.level, input.event, @@ -20431,7 +20944,7 @@ async function runKnowledgePrompt(options) { if (!prompt) throw new Error("Knowledge prompt is required."); const now = (options.now ?? new Date).toISOString(); - const runId = `run_${randomUUID5()}`; + const runId = `run_${randomUUID6()}`; const modelRef = resolveModelRef(options.modelRef ?? "default", options.config); const parsed = parseModelRef(modelRef); migrateKnowledgeDb(options.dbPath); @@ -21158,11 +21671,11 @@ async function buildKnowledgeAgentContextPack(options) { } // src/conflict-agent.ts -import { randomUUID as randomUUID7 } from "crypto"; +import { randomUUID as randomUUID8 } from "crypto"; // src/sync.ts -import { createHash as createHash10, randomUUID as randomUUID6 } from "crypto"; -import { existsSync as existsSync7, readFileSync as readFileSync8 } from "fs"; +import { createHash as createHash10, randomUUID as randomUUID7 } from "crypto"; +import { existsSync as existsSync8, readFileSync as readFileSync10 } from "fs"; import { hostname } from "os"; import { fileURLToPath as fileURLToPath2 } from "url"; import { relative as relative3, resolve as resolve3, sep as sep3 } from "path"; @@ -21228,7 +21741,7 @@ function nowIso(now = new Date) { return now.toISOString(); } function makeSyncId(prefix) { - return `${prefix}_${Date.now().toString(36)}_${randomUUID6().slice(0, 8)}`; + return `${prefix}_${Date.now().toString(36)}_${randomUUID7().slice(0, 8)}`; } function defaultSyncMachineId(input) { const explicit = input?.trim(); @@ -21954,8 +22467,8 @@ function createKnowledgeSyncBundle(options) { if (options.includeArtifactContent !== false && key && row.artifact_uri.startsWith("file://")) { try { const path = fileURLToPath2(row.artifact_uri); - if (existsSync7(path)) - artifact.content_base64 = readFileSync8(path).toString("base64"); + if (existsSync8(path)) + artifact.content_base64 = readFileSync10(path).toString("base64"); else warnings.push(`artifact_missing:${row.artifact_uri}`); } catch (error) { @@ -23030,7 +23543,7 @@ function addConflictRunEvent(options) { try { db.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?)`, [ - `event_${randomUUID7()}`, + `event_${randomUUID8()}`, options.runId, options.level, options.event, @@ -23116,7 +23629,7 @@ async function proposeKnowledgeSyncConflictResolutionWithAi(options) { const evidence = getKnowledgeSyncConflictEvidence(options.dbPath, options.id); const resolvedModelRef = resolveModelRef(options.modelRef ?? "default", options.config); const parsed = parseModelRef(resolvedModelRef); - const runId = `run_${randomUUID7()}`; + const runId = `run_${randomUUID8()}`; const prompt = promptForConflict({ deterministic, evidence }); insertConflictRun({ dbPath: options.dbPath, @@ -23278,8 +23791,8 @@ async function proposeKnowledgeSyncConflictResolutionWithAi(options) { } // src/outbox-consume.ts -import { createHash as createHash11, randomUUID as randomUUID8 } from "crypto"; -import { existsSync as existsSync8, readFileSync as readFileSync9 } from "fs"; +import { createHash as createHash11, randomUUID as randomUUID9 } from "crypto"; +import { existsSync as existsSync9, readFileSync as readFileSync11 } from "fs"; import { basename as basename3 } from "path"; function stableId6(prefix, value) { return `${prefix}_${createHash11("sha256").update(value).digest("hex").slice(0, 20)}`; @@ -23424,9 +23937,9 @@ async function readS3Text3(uri, config2, safetyPolicy) { async function readOutboxInput(input, config2, safetyPolicy) { if (input.startsWith("s3://")) return readS3Text3(input, config2, safetyPolicy); - if (!existsSync8(input)) + if (!existsSync9(input)) throw new Error(`Outbox not found: ${input}`); - return readFileSync9(input, "utf8"); + return readFileSync11(input, "utf8"); } function mergeJson(existing, patch) { let base = {}; @@ -23546,7 +24059,7 @@ async function consumeOpenFilesOutbox(options) { const text = await readOutboxInput(options.input, options.config, options.safetyPolicy); const events = parseOutboxText(text); const db = openKnowledgeDb(options.dbPath); - const runId = `run_${randomUUID8()}`; + const runId = `run_${randomUUID9()}`; try { return db.transaction(() => { db.run(`INSERT INTO runs (id, type, prompt, status, provider, model, metadata_json, created_at, updated_at) @@ -24878,7 +25391,7 @@ function createKnowledgeMachinesAdapter(defaults = {}) { } // src/reindex.ts -import { createHash as createHash12, randomUUID as randomUUID9 } from "crypto"; +import { createHash as createHash12, randomUUID as randomUUID10 } from "crypto"; function stableId7(prefix, value) { return `${prefix}_${createHash12("sha256").update(value).digest("hex").slice(0, 20)}`; } @@ -25002,7 +25515,7 @@ function completeIndexedQueueItems(dbPath, options, now) { async function refreshEmbeddingIndex(options) { migrateKnowledgeDb(options.dbPath); const now = (options.now ?? new Date).toISOString(); - const runId = `run_${randomUUID9()}`; + const runId = `run_${randomUUID10()}`; const deleted = options.full ? clearEmbeddingIndex(options.dbPath) : { embeddings: 0, vectorEntries: 0 }; const queued = enqueueMissingEmbeddings({ ...options, reason: options.full ? "full_embedding_rebuild" : "missing_embedding" }); const db = openKnowledgeDb(options.dbPath); @@ -25043,7 +25556,7 @@ async function refreshEmbeddingIndex(options) { ]); doneDb.run(`INSERT INTO run_events (id, run_id, level, event, metadata_json, created_at) VALUES (?, ?, ?, ?, ?, ?)`, [ - `evt_${randomUUID9()}`, + `evt_${randomUUID10()}`, runId, "info", "embedding_refresh_completed", @@ -25066,88 +25579,9 @@ async function refreshEmbeddingIndex(options) { // src/rules-provenance.ts import { createHash as createHash13 } from "crypto"; -import { existsSync as existsSync10, lstatSync, readdirSync, readFileSync as readFileSync11, statSync as statSync2 } from "fs"; +import { existsSync as existsSync10, lstatSync, readdirSync, readFileSync as readFileSync12, statSync as statSync2 } from "fs"; import { basename as basename4, extname, join as join4, relative as relative4, resolve as resolve4, sep as sep4 } from "path"; import { pathToFileURL as pathToFileURL3 } from "url"; - -// src/store.ts -import { readFileSync as readFileSync10, writeFileSync as writeFileSync4, existsSync as existsSync9, renameSync, unlinkSync as unlinkSync2 } from "fs"; -import { randomUUID as randomUUID10 } from "crypto"; -function defaultStorePath() { - return workspaceForHome(globalKnowledgeHome()).jsonStorePath; -} -function ensureStore(path) { - if (!existsSync9(path)) { - ensureParentDir(path); - if (path === defaultStorePath() && existsSync9(legacyGlobalStorePath())) { - writeFileSync4(path, readFileSync10(legacyGlobalStorePath(), "utf8")); - } else { - writeFileSync4(path, JSON.stringify({ items: [] }, null, 2)); - } - } -} -function loadStoreIfExists(path) { - if (!existsSync9(path)) - return { exists: false, items: [] }; - const raw = readFileSync10(path, "utf8"); - const parsed = JSON.parse(raw); - if (!parsed || !Array.isArray(parsed.items)) { - return { exists: true, items: [] }; - } - return { exists: true, items: parsed.items }; -} -function lockPath(path) { - return `${path}.lock`; -} -function acquireLock(lockPath2, ownerId) { - const maxWait = 5000; - const interval = 50; - const start = Date.now(); - while (Date.now() - start < maxWait) { - try { - if (!existsSync9(lockPath2)) { - writeFileSync4(lockPath2, JSON.stringify({ owner: ownerId, ts: Date.now() })); - return; - } - const lock = JSON.parse(readFileSync10(lockPath2, "utf8")); - if (Date.now() - lock.ts > 1e4) { - unlinkSync2(lockPath2); - } - } catch {} - const start2 = Date.now(); - while (Date.now() - start2 < interval) {} - } - throw new Error(`Could not acquire lock on ${lockPath2} after ${maxWait}ms`); -} -function releaseLock(lockPath2, ownerId) { - try { - if (existsSync9(lockPath2)) { - const lock = JSON.parse(readFileSync10(lockPath2, "utf8")); - if (lock.owner === ownerId) { - unlinkSync2(lockPath2); - } - } - } catch {} -} -function saveStore(path, store) { - const tmp = `${path}.tmp.${randomUUID10()}`; - writeFileSync4(tmp, JSON.stringify(store, null, 2)); - renameSync(tmp, path); -} -function withLock(path, fn, options = {}) { - const owner = randomUUID10(); - const lpath = lockPath(path); - if (options.createParent) - ensureParentDir(lpath); - acquireLock(lpath, owner); - try { - return fn(); - } finally { - releaseLock(lpath, owner); - } -} - -// src/rules-provenance.ts var DEFAULT_MAX_ITEMS2 = 100; var DEFAULT_EVIDENCE_LIMIT = 25; var DEFAULT_MAX_BYTES_PER_FILE = 256 * 1024; @@ -25491,7 +25925,7 @@ function prepareFileRecord(input) { }; return { evidence: evidence2, text: "", manifest: null }; } - const bytes = readFileSync11(sourcePath); + const bytes = readFileSync12(sourcePath); const rawText = bytes.toString("utf8"); const redacted = redactSecrets(rawText, input.safetyPolicy); const highSeverity = redacted.findings.some((finding) => finding.severity === "high"); @@ -26706,7 +27140,7 @@ import { lstatSync as lstatSync2, mkdirSync as mkdirSync4, readdirSync as readdirSync2, - readFileSync as readFileSync12, + readFileSync as readFileSync13, renameSync as renameSync2, rmSync, writeFileSync as writeFileSync5 @@ -26729,7 +27163,7 @@ function hashFiles(root, files) { let bytes = 0; for (const file2 of files) { const path = join5(root, file2); - const body = readFileSync12(path); + const body = readFileSync13(path); const fileHash = createHash17("sha256").update(body).digest("hex"); bytes += body.byteLength; tree.update(file2); @@ -26742,7 +27176,7 @@ function hashFiles(root, files) { function jsonItemCount(path) { if (!existsSync11(path)) return null; - const parsed = JSON.parse(readFileSync12(path, "utf8")); + const parsed = JSON.parse(readFileSync13(path, "utf8")); return Array.isArray(parsed.items) ? parsed.items.length : null; } function sqliteSummary(path) { @@ -26796,7 +27230,7 @@ function isDefaultScaffold(workspace, summary) { if (!summary.files.includes("config.json")) return true; try { - return JSON.stringify(JSON.parse(readFileSync12(workspace.configPath, "utf8"))) === JSON.stringify(defaultKnowledgeConfig()); + return JSON.stringify(JSON.parse(readFileSync13(workspace.configPath, "utf8"))) === JSON.stringify(defaultKnowledgeConfig()); } catch { return false; } @@ -26876,7 +27310,7 @@ function isMigrationTombstone(workspace, summary, currentHome) { if (summary.files.some((file2) => !isRetainedTombstoneFile(file2))) return false; try { - const metadata = JSON.parse(readFileSync12(join5(workspace.home, "migration.json"), "utf8")); + const metadata = JSON.parse(readFileSync13(join5(workspace.home, "migration.json"), "utf8")); return metadata.new_path === currentHome && typeof metadata.backup_path === "string"; } catch { return false; @@ -27337,7 +27771,7 @@ function readLegacyInventoryStore(path) { if (!existsSync12(path)) return { exists: false, read_error: null, items: [] }; try { - const parsed = JSON.parse(readFileSync13(path, "utf8")); + const parsed = JSON.parse(readFileSync14(path, "utf8")); if (!parsed || !Array.isArray(parsed.items)) { return { exists: true, read_error: "invalid_store_shape", items: [] }; } @@ -29702,6 +30136,104 @@ function formatKnowledgeProjectPanel(panel) { return lines.join(` `); } +// src/generated/knowledge-api-client.ts +class ApiError extends Error { + status; + body; + constructor(status, message, body) { + super(message); + this.status = status; + this.body = body; + this.name = "ApiError"; + } +} + +class KnowledgeApiClient { + baseUrl; + apiKey; + fetchImpl; + baseHeaders; + constructor(options) { + if (!options.baseUrl) + throw new Error("KnowledgeApiClient requires a baseUrl."); + this.baseUrl = options.baseUrl.replace(/\/$/, ""); + this.apiKey = options.apiKey; + this.fetchImpl = options.fetch ?? globalThis.fetch; + this.baseHeaders = options.headers ?? {}; + } + async request(method, path, opts) { + const url2 = new URL(this.baseUrl + path); + if (opts.query) { + for (const [key, value] of Object.entries(opts.query)) { + if (value !== undefined && value !== null) + url2.searchParams.set(key, String(value)); + } + } + const headers = { Accept: "application/json", ...this.baseHeaders, ...opts.init?.headers }; + if (this.apiKey) + headers["x-api-key"] = this.apiKey; + let payload; + if (opts.body !== undefined) { + headers["Content-Type"] = "application/json"; + payload = JSON.stringify(opts.body); + } + const response = await this.fetchImpl(url2.toString(), { ...opts.init, method, headers, body: payload }); + const text = await response.text(); + const data = text ? (() => { + try { + return JSON.parse(text); + } catch { + return text; + } + })() : undefined; + if (!response.ok) { + throw new ApiError(response.status, `${method} ${path} failed: ${response.status}`, data); + } + return data; + } + async listNotes(query2, init) { + return this.request("GET", `/v1/notes`, { + body: undefined, + query: query2, + init + }); + } + async createNote(body, init) { + return this.request("POST", `/v1/notes`, { + body, + query: undefined, + init + }); + } + async getNote(id, init) { + return this.request("GET", `/v1/notes/${encodeURIComponent(String(id))}`, { + body: undefined, + query: undefined, + init + }); + } + async deleteNote(id, init) { + return this.request("DELETE", `/v1/notes/${encodeURIComponent(String(id))}`, { + body: undefined, + query: undefined, + init + }); + } + async updateNote(id, body, init) { + return this.request("PATCH", `/v1/notes/${encodeURIComponent(String(id))}`, { + body, + query: undefined, + init + }); + } + async getRegistry(init) { + return this.request("GET", `/v1/registry`, { + body: undefined, + query: undefined, + init + }); + } +} export { writeKnowledgeConfig, writeAppWikiNote, @@ -29713,6 +30245,7 @@ export { storageSync, storagePush, storagePull, + startKnowledgeServe, searchVectorIndex, saveKnowledgeAuth, runStorageMigrations, @@ -29759,6 +30292,7 @@ export { legacyGlobalKnowledgeHome, languageModelFor, knowledgeRegistryContract, + knowledgeOpenApi, knowledgeAuthStatus, knowledgeAuthPath, isSupportedSourceRef, @@ -29791,6 +30325,7 @@ export { embedTexts, discoverKnowledgeMachineTopology, defaultKnowledgeConfig, + createServeHandler, createKnowledgeSyncSnapshot, createKnowledgeSyncBundle, createKnowledgeService, @@ -29816,9 +30351,12 @@ export { S3ArtifactStore, RemoteKnowledgeClient, REMOTE_KNOWLEDGE_CONTRACT_VERSION, + NoteRepo, LocalArtifactStore, LEGACY_HASNA_KNOWLEDGE_APP_PATH, KnowledgeService, + ApiError as KnowledgeApiError, + KnowledgeApiClient, KNOWLEDGE_SYNC_TABLES, CURRENT_SCHEMA_VERSION as KNOWLEDGE_SYNC_SCHEMA_VERSION, KNOWLEDGE_SYNC_PROTOCOL_VERSION, @@ -29828,6 +30366,7 @@ export { KNOWLEDGE_STORAGE_MODE_ENV, KNOWLEDGE_STORAGE_FALLBACK_ENV, KNOWLEDGE_STORAGE_ENV, + KNOWLEDGE_SERVE_APP, KNOWLEDGE_MACHINES_ADAPTER_PACKAGE, KNOWLEDGE_MACHINES_ADAPTER_ENTRYPOINT, KNOWLEDGE_MACHINES_ADAPTER_CONTRACT_VERSION, diff --git a/dist/serve.d.ts b/dist/serve.d.ts new file mode 100644 index 0000000..7e41165 --- /dev/null +++ b/dist/serve.d.ts @@ -0,0 +1,62 @@ +import { ApiKeyStore, type ApiKeyVerifier } from '@hasna/contracts/auth'; +import { type KnowledgeItem } from './store.js'; +import type { PoolQueryClient } from './generated/storage-kit/index.js'; +export declare const KNOWLEDGE_SERVE_APP = "knowledge"; +/** + * Restore the vendored storage kit's intended `sslmode=require` semantics + * (encrypt, do NOT verify — the fleet standard for in-VPC RDS) under + * node-postgres >= 8.22, which otherwise reinterprets a bare `sslmode=require` + * as `verify-full`. Appends libpq-compat so `require`/`prefer` mean exactly what + * the kit documents. Never logs the URL. Returns the (possibly) updated value. + */ +export declare function normalizeCloudDatabaseUrl(env?: NodeJS.ProcessEnv): string | undefined; +export interface NoteInput { + title: string; + content?: string; + url?: string | null; + tags?: string[]; + metadata?: Record<string, unknown>; +} +export interface NoteListOptions { + limit?: number; + offset?: number; + search?: string; + includeArchived?: boolean; +} +export declare class NoteRepo { + private readonly client; + constructor(client: PoolQueryClient); + create(input: NoteInput): Promise<KnowledgeItem>; + list(options?: NoteListOptions): Promise<{ + items: KnowledgeItem[]; + total: number; + }>; + get(idOrShort: string): Promise<KnowledgeItem | null>; + update(idOrShort: string, patch: Partial<NoteInput> & { + archived?: boolean; + }): Promise<KnowledgeItem | null>; + delete(idOrShort: string): Promise<boolean>; +} +export declare function knowledgeOpenApi(version: string): Record<string, unknown>; +export interface ServeDeps { + client: PoolQueryClient; + verifier: ApiKeyVerifier; + store: ApiKeyStore; + version: string; +} +export declare function createServeHandler(deps: ServeDeps): (req: Request) => Promise<Response>; +export interface StartServeOptions { + port?: number; + hostname?: string; + env?: NodeJS.ProcessEnv; +} +export interface RunningServe { + port: number; + hostname: string; + stop: () => Promise<void>; +} +/** + * Start the knowledge HTTP service on Bun. Opens a PURE-REMOTE cloud pool and a + * contracts API-key verifier backed by the api_keys table (revocation). + */ +export declare function startKnowledgeServe(options?: StartServeOptions): Promise<RunningServe>; diff --git a/dist/serve.js b/dist/serve.js new file mode 100644 index 0000000..95e1239 --- /dev/null +++ b/dist/serve.js @@ -0,0 +1,1352 @@ +// @bun +var __defProp = Object.defineProperty; +var __returnValue = (v) => v; +function __exportSetter(name, newValue) { + this[name] = __returnValue.bind(null, newValue); +} +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { + get: all[name], + enumerable: true, + configurable: true, + set: __exportSetter.bind(all, name) + }); +}; +var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res); +var __require = import.meta.require; + +// src/serve.ts +import { readFileSync as readFileSync5 } from "fs"; +import { verifyApiKey, ApiKeyStore } from "@hasna/contracts/auth"; + +// src/generated/storage-kit/mode.ts +var DEPRECATED_STORAGE_MODE_ALIASES = [ + "remote", + "hybrid", + "self_hosted" +]; +function normalizeStorageMode(value) { + const normalized = value.trim().toLowerCase().replace(/-/g, "_"); + if (normalized === "local") + return { mode: "local", deprecatedAlias: null }; + if (normalized === "cloud") + return { mode: "cloud", deprecatedAlias: null }; + if (DEPRECATED_STORAGE_MODE_ALIASES.includes(normalized)) { + return { mode: "cloud", deprecatedAlias: normalized }; + } + throw new Error(`Unknown storage mode: ${value}. Use local or cloud.`); +} +function envToken(name) { + return name.toUpperCase().replace(/-/g, "_"); +} +function storageEnvKeys(name) { + const token = envToken(name); + return { + modeKeys: [`HASNA_${token}_STORAGE_MODE`, `${token}_STORAGE_MODE`], + databaseUrlKeys: [`HASNA_${token}_DATABASE_URL`, `${token}_DATABASE_URL`] + }; +} +function firstEnv(env, keys) { + for (const key of keys) { + const value = env[key]?.trim(); + if (value) + return { key, value }; + } + return null; +} +function resolveStorageMode(name, env = process.env) { + const { modeKeys, databaseUrlKeys } = storageEnvKeys(name); + const dbHit = firstEnv(env, databaseUrlKeys); + const databaseUrlPresent = Boolean(dbHit); + const databaseUrlSource = dbHit ? dbHit.key : null; + const modeHit = firstEnv(env, modeKeys); + if (!modeHit) { + return { + mode: "local", + source: "default", + deprecatedAlias: null, + databaseUrlPresent, + databaseUrlSource, + warning: null + }; + } + const { mode, deprecatedAlias } = normalizeStorageMode(modeHit.value); + const warnings = []; + if (deprecatedAlias) { + warnings.push(`Deprecated storage mode '${deprecatedAlias}' from ${modeHit.key} is treated as 'cloud'. Set ${modeKeys[0]}=cloud instead.`); + } + if (mode === "cloud" && !databaseUrlPresent) { + warnings.push(`cloud mode needs ${databaseUrlKeys[0]} (PURE REMOTE: reads and writes go to cloud Postgres).`); + } + if (modeHit.key !== modeKeys[0]) { + warnings.push(`Using alias env ${modeHit.key}; the canonical key is ${modeKeys[0]}.`); + } + return { + mode, + source: modeHit.key, + deprecatedAlias, + databaseUrlPresent, + databaseUrlSource, + warning: warnings.length > 0 ? warnings.join(" ") : null + }; +} +function resolveDatabaseUrl(name, env = process.env) { + const { databaseUrlKeys } = storageEnvKeys(name); + const hit = firstEnv(env, databaseUrlKeys); + return hit ? hit.value : null; +} +// src/generated/storage-kit/tls.ts +import { readFileSync } from "fs"; +function sslModeFromConnectionString(connectionString) { + const queryStart = connectionString.indexOf("?"); + const params = new URLSearchParams(queryStart === -1 ? "" : connectionString.slice(queryStart + 1)); + const sslmode = params.get("sslmode")?.trim().toLowerCase(); + if (sslmode) { + switch (sslmode) { + case "disable": + case "prefer": + case "require": + case "verify-ca": + case "verify-full": + return sslmode; + case "allow": + return "prefer"; + default: + throw new Error(`Unknown sslmode '${sslmode}' in connection string.`); + } + } + const ssl = params.get("ssl")?.trim().toLowerCase(); + if (ssl && ["1", "true", "yes", "on", "require"].includes(ssl)) + return "require"; + return "disable"; +} +function loadCaBundle(options) { + const env = options.env ?? process.env; + if (options.ca && options.ca.trim()) + return options.ca; + const path = options.caCertPath ?? env.PGSSLROOTCERT ?? env.NODE_EXTRA_CA_CERTS; + if (path && path.trim()) + return readFileSync(path.trim(), "utf8"); + return null; +} +function resolveTlsConfig(connectionString, options = {}) { + const mode = sslModeFromConnectionString(connectionString); + if (mode === "disable") { + return; + } + const ca = loadCaBundle(options); + if (mode === "prefer" || mode === "require") { + return ca ? { rejectUnauthorized: false, ca } : { rejectUnauthorized: false }; + } + if (!ca) { + throw new Error(`sslmode=${mode} requires a CA bundle. Set PGSSLROOTCERT (or pass caCertPath/ca) to the ` + `Amazon RDS global bundle: https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem`); + } + return { rejectUnauthorized: true, ca }; +} +// src/generated/storage-kit/query.ts +function wrapExecutor(executor) { + return { + async query(sql, params) { + const result = await executor.query(sql, params); + return { rows: result.rows, rowCount: result.rowCount ?? result.rows.length }; + }, + async many(sql, params) { + const result = await executor.query(sql, params); + return result.rows; + }, + async get(sql, params) { + const result = await executor.query(sql, params); + return result.rows[0] ?? null; + }, + async one(sql, params) { + const result = await executor.query(sql, params); + if (result.rows.length !== 1) { + throw new Error(`Expected exactly one row, got ${result.rows.length}.`); + } + return result.rows[0]; + }, + async execute(sql, params) { + await executor.query(sql, params); + } + }; +} +function createQueryClient(pool) { + const base = wrapExecutor(pool); + return { + ...base, + pool, + async transaction(fn) { + const client = await pool.connect(); + try { + await client.query("BEGIN"); + const result = await fn(wrapExecutor(client)); + await client.query("COMMIT"); + return result; + } catch (error) { + try { + await client.query("ROLLBACK"); + } catch {} + throw error; + } finally { + client.release(); + } + }, + async close() { + await pool.end(); + } + }; +} +// src/generated/storage-kit/pool.ts +import pg from "pg"; +function createPgPool(options) { + const ssl = resolveTlsConfig(options.connectionString, { + ...options.ca !== undefined ? { ca: options.ca } : {}, + ...options.caCertPath !== undefined ? { caCertPath: options.caCertPath } : {}, + ...options.env !== undefined ? { env: options.env } : {} + }); + const config = { connectionString: options.connectionString }; + if (ssl !== undefined) + config.ssl = ssl; + if (options.max !== undefined) + config.max = options.max; + if (options.idleTimeoutMillis !== undefined) + config.idleTimeoutMillis = options.idleTimeoutMillis; + if (options.connectionTimeoutMillis !== undefined) + config.connectionTimeoutMillis = options.connectionTimeoutMillis; + if (options.applicationName !== undefined) + config.application_name = options.applicationName; + return new pg.Pool(config); +} +function createCloudPoolFromEnv(appName, options = {}) { + const env = options.env ?? process.env; + const resolution = resolveStorageMode(appName, env); + if (resolution.mode !== "cloud") { + throw new Error(`createCloudPoolFromEnv requires ${appName} storage mode 'cloud', got '${resolution.mode}'. ` + `Set HASNA_${appName.toUpperCase().replace(/-/g, "_")}_STORAGE_MODE=cloud.`); + } + const connectionString = resolveDatabaseUrl(appName, env); + if (!connectionString) { + throw new Error(`cloud mode for ${appName} needs a database URL. Set ` + `HASNA_${appName.toUpperCase().replace(/-/g, "_")}_DATABASE_URL.`); + } + const pool = createPgPool({ + connectionString, + ...options.ca !== undefined ? { ca: options.ca } : {}, + ...options.caCertPath !== undefined ? { caCertPath: options.caCertPath } : {}, + env, + ...options.max !== undefined ? { max: options.max } : {}, + ...options.idleTimeoutMillis !== undefined ? { idleTimeoutMillis: options.idleTimeoutMillis } : {}, + ...options.connectionTimeoutMillis !== undefined ? { connectionTimeoutMillis: options.connectionTimeoutMillis } : {}, + ...options.applicationName !== undefined ? { applicationName: options.applicationName } : {} + }); + return { + client: createQueryClient(pool), + connectionSource: resolution.databaseUrlSource ?? "unknown" + }; +} +// src/generated/storage-kit/migrations.ts +import { createHash } from "crypto"; +var DEFAULT_MIGRATION_LEDGER_TABLE = "schema_migrations"; +function checksumSql(sql) { + const normalized = sql.trim().replace(/\r\n/g, ` +`); + return `sha256:${createHash("sha256").update(normalized).digest("hex")}`; +} +function defineMigration(id, sql) { + return Object.freeze({ id, sql: sql.trim(), checksum: checksumSql(sql) }); +} +function hasTransaction(client) { + return typeof client.transaction === "function"; +} + +class MigrationLedger { + client; + migrations; + ledgerTable; + constructor(client, migrations, options = {}) { + this.client = client; + this.migrations = migrations; + this.ledgerTable = options.ledgerTable ?? DEFAULT_MIGRATION_LEDGER_TABLE; + const seen = new Set; + for (const migration of migrations) { + if (seen.has(migration.id)) + throw new Error(`Duplicate migration id: ${migration.id}`); + seen.add(migration.id); + } + } + async ensureLedger() { + await this.client.execute(`CREATE TABLE IF NOT EXISTS ${this.ledgerTable} ( + id TEXT PRIMARY KEY, + checksum TEXT NOT NULL, + applied_at TIMESTAMPTZ NOT NULL DEFAULT now() + )`); + } + async listApplied() { + await this.ensureLedger(); + return this.readApplied(); + } + async readApplied() { + const rows = await this.client.many(`SELECT id, checksum, applied_at FROM ${this.ledgerTable} ORDER BY id ASC`); + return rows.map((row) => ({ + id: row.id, + checksum: row.checksum, + appliedAt: row.applied_at instanceof Date ? row.applied_at.toISOString() : String(row.applied_at) + })); + } + buildPlan(applied) { + const known = new Set(this.migrations.map((m) => m.id)); + for (const row of applied) { + if (!known.has(row.id)) { + throw new Error(`Applied migration '${row.id}' is not recognized by this build (downgrade?).`); + } + } + const appliedById = new Map(applied.map((row) => [row.id, row])); + for (const migration of this.migrations) { + const existing = appliedById.get(migration.id); + if (existing && existing.checksum !== migration.checksum) { + throw new Error(`Migration checksum mismatch for '${migration.id}': the SQL changed after it was applied.`); + } + } + return this.migrations.map((migration) => ({ + migration, + state: appliedById.has(migration.id) ? "already_applied" : "pending" + })); + } + async migrate(opts = {}) { + const dryRun = opts.dryRun === true; + await this.ensureLedger(); + const applied = await this.readApplied(); + const plan = this.buildPlan(applied); + if (dryRun) + return { dryRun, applied, plan }; + for (const item of plan) { + if (item.state === "already_applied") + continue; + await this.applyPendingMigration(item.migration); + } + return { dryRun, applied: await this.readApplied(), plan }; + } + async applyPendingMigration(migration) { + const apply = async (client) => { + await client.execute(migration.sql); + await client.execute(`INSERT INTO ${this.ledgerTable} (id, checksum, applied_at) VALUES ($1, $2, now())`, [migration.id, migration.checksum]); + }; + if (hasTransaction(this.client)) { + await this.client.transaction(apply); + return; + } + await this.client.execute("BEGIN"); + try { + await apply(this.client); + await this.client.execute("COMMIT"); + } catch (error) { + try { + await this.client.execute("ROLLBACK"); + } catch {} + throw error; + } + } +} +function createMigrationLedger(client, migrations, options = {}) { + return new MigrationLedger(client, migrations, options); +} +// src/generated/storage-kit/health.ts +async function checkHealth(client) { + const start = Date.now(); + try { + await client.get("SELECT 1 AS ok"); + return { ok: true, latencyMs: Date.now() - start }; + } catch (error) { + return { + ok: false, + latencyMs: Date.now() - start, + error: error instanceof Error ? error.message : String(error) + }; + } +} +async function checkReady(client, migrations, options = {}) { + const start = Date.now(); + try { + const ledger = new MigrationLedger(client, migrations, options); + const result = await ledger.migrate({ dryRun: true }); + const pending = result.plan.filter((item) => item.state === "pending").map((item) => item.migration.id); + return { ok: pending.length === 0, latencyMs: Date.now() - start, pendingMigrations: pending }; + } catch (error) { + return { + ok: false, + latencyMs: Date.now() - start, + pendingMigrations: [], + error: error instanceof Error ? error.message : String(error) + }; + } +} + +// src/generated/storage-kit/index.ts +var KIT_VERSION = "0.4.0"; + +// src/db/remote-storage.ts +var KNOWLEDGE_APP_NAME = "knowledge"; +function translatePlaceholders(sql) { + let index = 0; + return sql.replace(/\?/g, () => `$${++index}`); +} +function normalizeParams(params) { + const flat = params.length === 1 && Array.isArray(params[0]) ? params[0] : params; + return flat.map((value) => value === undefined ? null : value); +} + +class PgAdapterAsync { + client; + constructor(connectionString) { + const pool2 = createPgPool({ + connectionString, + applicationName: "@hasna/knowledge" + }); + this.client = createQueryClient(pool2); + } + get pool() { + return this.client.pool; + } + async run(sql, ...params) { + const result = await this.client.query(translatePlaceholders(sql), normalizeParams(params)); + return { changes: result.rowCount }; + } + async all(sql, ...params) { + const result = await this.client.query(translatePlaceholders(sql), normalizeParams(params)); + return result.rows; + } + async get(sql, ...params) { + return this.client.get(translatePlaceholders(sql), normalizeParams(params)); + } + async close() { + await this.client.close(); + } +} +function createKnowledgeCloudClient() { + return createCloudPoolFromEnv(KNOWLEDGE_APP_NAME, { applicationName: "@hasna/knowledge" }).client; +} + +// src/auth.ts +import { existsSync, mkdirSync, readFileSync as readFileSync2, unlinkSync, writeFileSync } from "fs"; +import { homedir } from "os"; +import { dirname, join } from "path"; +var DEFAULT_KNOWLEDGE_API_URL = "https://knowledge.hasna.xyz"; +function normalizeKnowledgeApiOrigin(apiUrl) { + const url = new URL(apiUrl); + if (url.protocol !== "http:" && url.protocol !== "https:") { + throw new Error("Knowledge API URL must use http or https."); + } + const pathname = url.pathname.replace(/\/+$/, ""); + if (pathname === "/api" || pathname === "/api/v1") { + url.pathname = "/"; + } else if (pathname.endsWith("/api/v1")) { + url.pathname = pathname.slice(0, -"/api/v1".length) || "/"; + } else if (pathname.endsWith("/api")) { + url.pathname = pathname.slice(0, -"/api".length) || "/"; + } + return url.toString().replace(/\/+$/, ""); +} +function knowledgeAuthPath(env = process.env) { + if (env.HASNA_KNOWLEDGE_AUTH_PATH) + return env.HASNA_KNOWLEDGE_AUTH_PATH; + const root = env.HASNA_KNOWLEDGE_AUTH_DIR ?? join(homedir(), ".hasna", "knowledge"); + return join(root, "auth.json"); +} +function resolveKnowledgeApiUrl(config, env = process.env) { + return normalizeKnowledgeApiOrigin(env.KNOWLEDGE_API_URL ?? config?.hosted?.api_url ?? DEFAULT_KNOWLEDGE_API_URL); +} +function getKnowledgeAuth(env = process.env) { + try { + const path = knowledgeAuthPath(env); + if (!existsSync(path)) + return null; + const parsed = JSON.parse(readFileSync2(path, "utf8")); + return typeof parsed.api_key === "string" && parsed.api_key.length > 0 ? parsed : null; + } catch { + return null; + } +} +function saveKnowledgeAuth(auth, env = process.env) { + const path = knowledgeAuthPath(env); + const stored = { + ...auth, + api_url: auth.api_url ? normalizeKnowledgeApiOrigin(auth.api_url) : undefined, + created_at: auth.created_at ?? new Date().toISOString() + }; + mkdirSync(dirname(path), { recursive: true, mode: 448 }); + writeFileSync(path, `${JSON.stringify(stored, null, 2)} +`, { mode: 384 }); + return stored; +} +function clearKnowledgeAuth(env = process.env) { + try { + unlinkSync(knowledgeAuthPath(env)); + return true; + } catch { + return false; + } +} +function getKnowledgeApiKey(env = process.env) { + if (env.KNOWLEDGE_API_KEY) + return { apiKey: env.KNOWLEDGE_API_KEY, source: "env" }; + if (env.HASNA_KNOWLEDGE_API_KEY) + return { apiKey: env.HASNA_KNOWLEDGE_API_KEY, source: "env" }; + const auth = getKnowledgeAuth(env); + return auth?.api_key ? { apiKey: auth.api_key, source: "file" } : { apiKey: null, source: "none" }; +} +function knowledgeAuthStatus(config, env = process.env) { + const auth = getKnowledgeAuth(env); + const key = getKnowledgeApiKey(env); + const apiUrl = env.KNOWLEDGE_API_URL ? resolveKnowledgeApiUrl(config, env) : auth?.api_url ? normalizeKnowledgeApiOrigin(auth.api_url) : resolveKnowledgeApiUrl(config, env); + return { + authenticated: Boolean(key.apiKey), + source: key.source, + api_url: apiUrl, + auth_path: knowledgeAuthPath(env), + email: key.source === "file" ? auth?.email ?? null : null, + org_id: key.source === "file" ? auth?.org_id ?? null : null, + org_slug: key.source === "file" ? auth?.org_slug ?? null : null, + user_id: key.source === "file" ? auth?.user_id ?? null : null, + api_key_present: Boolean(key.apiKey) + }; +} + +// src/remote-client.ts +var REMOTE_KNOWLEDGE_CONTRACT_VERSION = 1; +function isRecord(value) { + return Boolean(value && typeof value === "object" && !Array.isArray(value)); +} +function stringValue(record, key) { + const value = record[key]; + return typeof value === "string" ? value : undefined; +} +function numberValue(record, key) { + const value = record[key]; + return typeof value === "number" && Number.isFinite(value) ? value : undefined; +} +function arrayValue(record, key) { + const value = record[key]; + return Array.isArray(value) ? value : undefined; +} +function normalizeRemoteKnowledgeRunContract(payload, fallback) { + const record = isRecord(payload) ? payload : {}; + return { + contract_version: REMOTE_KNOWLEDGE_CONTRACT_VERSION, + id: stringValue(record, "id") ?? fallback?.id, + type: stringValue(record, "type") ?? fallback?.type, + status: stringValue(record, "status") ?? fallback?.status, + query: stringValue(record, "query") ?? fallback?.query, + prompt: stringValue(record, "prompt") ?? fallback?.prompt, + output_preview: Object.prototype.hasOwnProperty.call(record, "output_preview") ? record.output_preview : fallback?.output_preview, + citations: arrayValue(record, "citations") ?? fallback?.citations, + artifacts: arrayValue(record, "artifacts") ?? fallback?.artifacts, + usage: isRecord(record.usage) ? record.usage : fallback?.usage, + created_at: stringValue(record, "created_at") ?? fallback?.created_at, + started_at: stringValue(record, "started_at") ?? fallback?.started_at, + completed_at: stringValue(record, "completed_at") ?? fallback?.completed_at, + duration_ms: numberValue(record, "duration_ms") ?? fallback?.duration_ms, + error_code: stringValue(record, "error_code") ?? fallback?.error_code, + error_message: stringValue(record, "error_message") ?? fallback?.error_message, + error: stringValue(record, "error") ?? fallback?.error, + details: Object.prototype.hasOwnProperty.call(record, "details") ? record.details : fallback?.details + }; +} +function knowledgeRegistryContract(input) { + return { + contract_version: REMOTE_KNOWLEDGE_CONTRACT_VERSION, + service: "open-knowledge", + mode: input.mode, + capabilities: [ + "registry", + "search", + "ask", + "build", + "sync", + "status", + "logs", + "artifacts", + "open-files-source-refs", + "s3-generated-artifacts" + ], + endpoints: { + registry: "/api/v1/knowledge/registry", + search: "/api/v1/knowledge/search", + ask: "/api/v1/knowledge/ask", + build: "/api/v1/knowledge/build", + sync: "/api/v1/knowledge/sync", + run_status: "/api/v1/knowledge/runs/{run_id}", + run_logs: "/api/v1/knowledge/runs/{run_id}/logs", + run_artifacts: "/api/v1/knowledge/runs/{run_id}/artifacts" + }, + source_contract: { + owner: "open-files", + preferred_ref: "open-files", + allowed_schemes: input.sourceSchemes, + raw_source_bytes_stored_in_open_knowledge: false + }, + artifact_contract: { + storage_type: input.storageType, + uri_prefix: input.artifactUriPrefix, + generated_only: true + } + }; +} + +class RemoteKnowledgeClient { + apiKey; + apiUrl; + constructor(apiKey, apiUrl) { + this.apiKey = apiKey; + this.apiUrl = apiUrl; + } + static fromConfig(config, env = process.env) { + const key = getKnowledgeApiKey(env); + if (!key.apiKey) + return null; + return new RemoteKnowledgeClient(key.apiKey, resolveKnowledgeApiUrl(config, env)); + } + async request(path, options = {}) { + return fetch(`${this.apiUrl}${path}`, { + ...options, + headers: { + Authorization: `Bearer ${this.apiKey}`, + "Content-Type": "application/json", + ...options.headers + } + }); + } + async registry() { + const response = await this.request("/api/v1/knowledge/registry"); + return response.json(); + } + async search(request) { + const response = await this.request("/api/v1/knowledge/search", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "search", query: request.query }); + } + async ask(request) { + const response = await this.request("/api/v1/knowledge/ask", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "ask", prompt: request.prompt }); + } + async build(request) { + const response = await this.request("/api/v1/knowledge/build", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "build", prompt: request.prompt }); + } + async sync(request = {}) { + const response = await this.request("/api/v1/knowledge/sync", { + method: "POST", + body: JSON.stringify(request) + }); + return normalizeRemoteKnowledgeRunContract(await response.json(), { type: "sync" }); + } + async runStatus(runId) { + const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}`); + if (!response.ok) + return null; + return normalizeRemoteKnowledgeRunContract(await response.json(), { id: runId, type: "status" }); + } + async runLogs(runId) { + const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}/logs`); + if (!response.ok) + return []; + const payload = await response.json(); + return Array.isArray(payload) ? payload : []; + } + async runArtifacts(runId) { + const response = await this.request(`/api/v1/knowledge/runs/${encodeURIComponent(runId)}/artifacts`); + if (!response.ok) + return []; + const payload = await response.json(); + return Array.isArray(payload) ? payload : []; + } +} + +// src/store.ts +import { readFileSync as readFileSync4, writeFileSync as writeFileSync3, existsSync as existsSync3, renameSync, unlinkSync as unlinkSync2 } from "fs"; +import { randomUUID } from "crypto"; + +// src/workspace.ts +import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from "fs"; +import { homedir as homedir2 } from "os"; +import { dirname as dirname2, join as join2, resolve } from "path"; +var HASNA_KNOWLEDGE_APP_PATH = join2(".hasna", "knowledge"); +var LEGACY_HASNA_KNOWLEDGE_APP_PATH = join2(".hasna", "apps", "knowledge"); +var EXAMPLE_KNOWLEDGE_CANONICAL = { + division: "xyz", + app_type: "opensource", + app: "knowledge", + env: "prod", + local_path: HASNA_KNOWLEDGE_APP_PATH, + s3: { + bucket: "example-knowledge-prod", + region: "us-east-1", + profile: "example-infra", + prefix: ".hasna/knowledge", + server_side_encryption: "AES256" + }, + secrets: { + env: "example/knowledge/prod/env", + aws: "example/knowledge/prod/aws", + s3: "example/knowledge/prod/s3", + rds: null, + future_rds: "example/knowledge/prod/rds" + }, + source_owner: "open-files", + evidence_doc: "docs/canonical-secrets-bootstrap-2026-06-08.md" +}; +function canonicalExampleKnowledgeStorage() { + return { + type: "s3", + artifacts_root: "artifacts", + s3: { + bucket: EXAMPLE_KNOWLEDGE_CANONICAL.s3.bucket, + prefix: EXAMPLE_KNOWLEDGE_CANONICAL.s3.prefix, + region: EXAMPLE_KNOWLEDGE_CANONICAL.s3.region, + profile: EXAMPLE_KNOWLEDGE_CANONICAL.s3.profile, + server_side_encryption: EXAMPLE_KNOWLEDGE_CANONICAL.s3.server_side_encryption + } + }; +} +function legacyGlobalStorePath() { + return join2(homedir2(), ".open-knowledge", "db.json"); +} +function globalKnowledgeHome() { + return join2(homedir2(), ".hasna", "knowledge"); +} +function projectKnowledgeHome(cwd = process.cwd()) { + return resolve(cwd, HASNA_KNOWLEDGE_APP_PATH); +} +function legacyGlobalKnowledgeHome() { + return join2(homedir2(), LEGACY_HASNA_KNOWLEDGE_APP_PATH); +} +function legacyProjectKnowledgeHome(cwd = process.cwd()) { + return resolve(cwd, LEGACY_HASNA_KNOWLEDGE_APP_PATH); +} +function resolveLegacyScopedWorkspace(scope, cwd = process.cwd()) { + if (scope === "project" || scope === "local") { + return workspaceForHome(legacyProjectKnowledgeHome(cwd)); + } + return workspaceForHome(legacyGlobalKnowledgeHome()); +} +function workspaceForHome(home) { + return { + home, + configPath: join2(home, "config.json"), + jsonStorePath: join2(home, "db.json"), + knowledgeDbPath: join2(home, "knowledge.db"), + artifactsDir: join2(home, "artifacts"), + cacheDir: join2(home, "cache"), + exportsDir: join2(home, "exports"), + indexesDir: join2(home, "indexes"), + logsDir: join2(home, "logs"), + runsDir: join2(home, "runs"), + schemasDir: join2(home, "schemas"), + wikiDir: join2(home, "wiki") + }; +} +function defaultKnowledgeConfig() { + return { + version: 1, + mode: "local", + hosted: { + api_url: "https://knowledge.hasna.xyz" + }, + storage: { + type: "local", + artifacts_root: "artifacts" + }, + sources: { + preferred_ref: "open-files", + allowed_schemes: ["open-files", "s3", "file", "https", "http"] + }, + providers: { + default_model: "openai:gpt-5.2", + aliases: { + fast: "openai:gpt-5-mini", + reasoning: "anthropic:claude-opus-4-6", + sonnet: "anthropic:claude-sonnet-4-6", + deepseek: "deepseek:deepseek-chat", + "deepseek-reasoning": "deepseek:deepseek-reasoner" + }, + openai: { + api_key_env: "OPENAI_API_KEY", + default_model: "gpt-5.2" + }, + anthropic: { + api_key_env: "ANTHROPIC_API_KEY", + default_model: "claude-sonnet-4-6" + }, + deepseek: { + api_key_env: "DEEPSEEK_API_KEY", + default_model: "deepseek-chat" + } + }, + embeddings: { + default_model: "openai:text-embedding-3-small", + dimensions: 1536, + batch_size: 64, + max_parallel_calls: 4 + }, + safety: { + network: { + web_search_enabled: false, + s3_reads_enabled: false, + allowed_s3_buckets: [] + }, + redaction: { + enabled: true + }, + approvals: { + generated_writes_require_approval: true + } + } + }; +} +function ensureKnowledgeWorkspace(home) { + const workspace = workspaceForHome(home); + mkdirSync2(workspace.home, { recursive: true }); + for (const dir of [ + workspace.artifactsDir, + workspace.cacheDir, + workspace.exportsDir, + workspace.indexesDir, + workspace.logsDir, + workspace.runsDir, + workspace.schemasDir, + workspace.wikiDir + ]) { + mkdirSync2(dir, { recursive: true }); + } + if (!existsSync2(workspace.configPath)) { + writeFileSync2(workspace.configPath, `${JSON.stringify(defaultKnowledgeConfig(), null, 2)} +`); + } + return workspace; +} +function resolveScopedWorkspace(scope, cwd = process.cwd()) { + if (scope === "project" || scope === "local") { + return workspaceForHome(projectKnowledgeHome(cwd)); + } + return workspaceForHome(globalKnowledgeHome()); +} +function ensureParentDir(path) { + mkdirSync2(dirname2(path), { recursive: true }); +} +function readKnowledgeConfig(path) { + const raw = readFileSync3(path, "utf8"); + return JSON.parse(raw); +} +function writeKnowledgeConfig(path, config) { + ensureParentDir(path); + writeFileSync2(path, `${JSON.stringify(config, null, 2)} +`); +} + +// src/store.ts +function defaultStorePath() { + return workspaceForHome(globalKnowledgeHome()).jsonStorePath; +} +function ensureStore(path) { + if (!existsSync3(path)) { + ensureParentDir(path); + if (path === defaultStorePath() && existsSync3(legacyGlobalStorePath())) { + writeFileSync3(path, readFileSync4(legacyGlobalStorePath(), "utf8")); + } else { + writeFileSync3(path, JSON.stringify({ items: [] }, null, 2)); + } + } +} +function loadStoreIfExists(path) { + if (!existsSync3(path)) + return { exists: false, items: [] }; + const raw = readFileSync4(path, "utf8"); + const parsed = JSON.parse(raw); + if (!parsed || !Array.isArray(parsed.items)) { + return { exists: true, items: [] }; + } + return { exists: true, items: parsed.items }; +} +function lockPath(path) { + return `${path}.lock`; +} +function acquireLock(lockPath2, ownerId) { + const maxWait = 5000; + const interval = 50; + const start = Date.now(); + while (Date.now() - start < maxWait) { + try { + if (!existsSync3(lockPath2)) { + writeFileSync3(lockPath2, JSON.stringify({ owner: ownerId, ts: Date.now() })); + return; + } + const lock = JSON.parse(readFileSync4(lockPath2, "utf8")); + if (Date.now() - lock.ts > 1e4) { + unlinkSync2(lockPath2); + } + } catch {} + const start2 = Date.now(); + while (Date.now() - start2 < interval) {} + } + throw new Error(`Could not acquire lock on ${lockPath2} after ${maxWait}ms`); +} +function releaseLock(lockPath2, ownerId) { + try { + if (existsSync3(lockPath2)) { + const lock = JSON.parse(readFileSync4(lockPath2, "utf8")); + if (lock.owner === ownerId) { + unlinkSync2(lockPath2); + } + } + } catch {} +} +function saveStore(path, store) { + const tmp = `${path}.tmp.${randomUUID()}`; + writeFileSync3(tmp, JSON.stringify(store, null, 2)); + renameSync(tmp, path); +} +function withLock(path, fn, options = {}) { + const owner = randomUUID(); + const lpath = lockPath(path); + if (options.createParent) + ensureParentDir(lpath); + acquireLock(lpath, owner); + try { + return fn(); + } finally { + releaseLock(lpath, owner); + } +} +function makeId() { + return `k_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`; +} +function makeShortId(id) { + return id.replace(/^k_/, "").slice(0, 12); +} + +// src/serve.ts +var KNOWLEDGE_SERVE_APP = "knowledge"; +function normalizeCloudDatabaseUrl(env = process.env) { + const key = "HASNA_KNOWLEDGE_DATABASE_URL"; + const url = env[key] ?? env.KNOWLEDGE_DATABASE_URL; + if (!url) + return url; + const lower = url.toLowerCase(); + const needsCompat = (lower.includes("sslmode=require") || lower.includes("sslmode=prefer")) && !lower.includes("uselibpqcompat"); + if (!needsCompat) + return url; + const updated = url.includes("?") ? `${url}&uselibpqcompat=true` : `${url}?uselibpqcompat=true`; + env[key] = updated; + return updated; +} +function resolveVersion() { + if (process.env.HASNA_KNOWLEDGE_VERSION) + return process.env.HASNA_KNOWLEDGE_VERSION; + try { + const url = new URL("../package.json", import.meta.url); + const pkg = JSON.parse(readFileSync5(url, "utf8")); + return pkg.version ?? "0.0.0"; + } catch { + return process.env.npm_package_version ?? "0.0.0"; + } +} +function resolveSigningSecret(env = process.env) { + const secret = env.HASNA_KNOWLEDGE_API_SIGNING_KEY ?? env.API_KEY_SIGNING_SECRET ?? env.HASNA_API_SIGNING_KEY; + if (!secret) { + throw new Error("knowledge-serve requires an API signing secret: set HASNA_KNOWLEDGE_API_SIGNING_KEY " + "(or API_KEY_SIGNING_SECRET / HASNA_API_SIGNING_KEY)."); + } + return secret; +} +function rowToItem(row) { + const parseJson = (value, fallback) => { + if (value == null) + return fallback; + if (typeof value === "string") { + try { + return JSON.parse(value); + } catch { + return fallback; + } + } + return value; + }; + return { + id: String(row.id), + short_id: row.short_id ?? null, + title: String(row.title ?? ""), + content: String(row.content ?? ""), + url: row.url ?? null, + tags: parseJson(row.tags, []), + metadata: parseJson(row.metadata, {}), + archived: Boolean(row.archived), + created_at: String(row.created_at), + updated_at: String(row.updated_at) + }; +} + +class NoteRepo { + client; + constructor(client) { + this.client = client; + } + async create(input) { + if (!input.title || typeof input.title !== "string") { + throw new HttpError(400, "title is required"); + } + const id = makeId(); + const now = new Date().toISOString(); + const row = await this.client.get(`INSERT INTO knowledge_items (id, short_id, title, content, url, tags, metadata, archived, created_at, updated_at) + VALUES ($1,$2,$3,$4,$5,$6::jsonb,$7::jsonb,FALSE,$8,$9) + RETURNING *`, [ + id, + makeShortId(id), + input.title, + input.content ?? "", + input.url ?? null, + JSON.stringify(input.tags ?? []), + JSON.stringify(input.metadata ?? {}), + now, + now + ]); + return rowToItem(row); + } + async list(options = {}) { + const limit = Math.min(Math.max(options.limit ?? 50, 1), 200); + const offset = Math.max(options.offset ?? 0, 0); + const where = []; + const params = []; + if (!options.includeArchived) + where.push("archived = FALSE"); + if (options.search) { + params.push(`%${options.search}%`); + where.push(`(title ILIKE $${params.length} OR content ILIKE $${params.length})`); + } + const whereSql = where.length ? `WHERE ${where.join(" AND ")}` : ""; + const totalRow = await this.client.get(`SELECT count(*)::text AS count FROM knowledge_items ${whereSql}`, params); + const rows = await this.client.many(`SELECT * FROM knowledge_items ${whereSql} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${offset}`, params); + return { items: rows.map(rowToItem), total: Number(totalRow?.count ?? 0) }; + } + async get(idOrShort) { + const row = await this.client.get(`SELECT * FROM knowledge_items WHERE id = $1 OR short_id = $1 LIMIT 1`, [idOrShort]); + return row ? rowToItem(row) : null; + } + async update(idOrShort, patch) { + const existing = await this.get(idOrShort); + if (!existing) + return null; + const sets = []; + const params = []; + const push = (col, val, cast = "") => { + params.push(val); + sets.push(`${col} = $${params.length}${cast}`); + }; + if (patch.title !== undefined) + push("title", patch.title); + if (patch.content !== undefined) + push("content", patch.content); + if (patch.url !== undefined) + push("url", patch.url); + if (patch.tags !== undefined) + push("tags", JSON.stringify(patch.tags), "::jsonb"); + if (patch.metadata !== undefined) + push("metadata", JSON.stringify(patch.metadata), "::jsonb"); + if (patch.archived !== undefined) + push("archived", patch.archived); + push("updated_at", new Date().toISOString()); + params.push(existing.id); + const row = await this.client.get(`UPDATE knowledge_items SET ${sets.join(", ")} WHERE id = $${params.length} RETURNING *`, params); + return row ? rowToItem(row) : null; + } + async delete(idOrShort) { + const existing = await this.get(idOrShort); + if (!existing) + return false; + await this.client.execute(`DELETE FROM knowledge_items WHERE id = $1`, [existing.id]); + return true; + } +} +function knowledgeOpenApi(version) { + const noteSchema = { + type: "object", + properties: { + id: { type: "string" }, + short_id: { type: "string", nullable: true }, + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true }, + archived: { type: "boolean" }, + created_at: { type: "string" }, + updated_at: { type: "string" } + }, + required: ["id", "title", "content", "tags", "archived", "created_at", "updated_at"] + }; + const noteInput = { + type: "object", + properties: { + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true } + }, + required: ["title"] + }; + const notePatch = { + type: "object", + properties: { + title: { type: "string" }, + content: { type: "string" }, + url: { type: "string", nullable: true }, + tags: { type: "array", items: { type: "string" } }, + metadata: { type: "object", additionalProperties: true }, + archived: { type: "boolean" } + } + }; + return { + openapi: "3.0.3", + info: { title: "Knowledge", version, description: "@hasna/knowledge self-hosted HTTP API" }, + components: { + securitySchemes: { apiKey: { type: "apiKey", in: "header", name: "x-api-key" } }, + schemas: { + Note: noteSchema, + NoteInput: noteInput, + NotePatch: notePatch, + NoteList: { + type: "object", + properties: { + items: { type: "array", items: { $ref: "#/components/schemas/Note" } }, + total: { type: "integer" } + }, + required: ["items", "total"] + } + } + }, + security: [{ apiKey: [] }], + paths: { + "/v1/notes": { + get: { + operationId: "listNotes", + summary: "List knowledge items", + parameters: [ + { name: "limit", in: "query", schema: { type: "integer" } }, + { name: "offset", in: "query", schema: { type: "integer" } }, + { name: "search", in: "query", schema: { type: "string" } } + ], + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/NoteList" } } } } + } + }, + post: { + operationId: "createNote", + summary: "Create a knowledge item", + requestBody: { + required: true, + content: { "application/json": { schema: { $ref: "#/components/schemas/NoteInput" } } } + }, + responses: { + "201": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + } + }, + "/v1/notes/{id}": { + get: { + operationId: "getNote", + summary: "Fetch a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + }, + patch: { + operationId: "updateNote", + summary: "Update a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + requestBody: { + required: true, + content: { "application/json": { schema: { $ref: "#/components/schemas/NotePatch" } } } + }, + responses: { + "200": { content: { "application/json": { schema: { $ref: "#/components/schemas/Note" } } } } + } + }, + delete: { + operationId: "deleteNote", + summary: "Delete a knowledge item", + parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }], + responses: { "204": {} } + } + }, + "/v1/registry": { + get: { + operationId: "getRegistry", + summary: "Knowledge registry contract", + responses: { + "200": { content: { "application/json": { schema: { type: "object", additionalProperties: true } } } } + } + } + } + } + }; +} + +class HttpError extends Error { + status; + constructor(status, message) { + super(message); + this.status = status; + } +} +function json(body, status = 200) { + return new Response(JSON.stringify(body), { + status, + headers: { "content-type": "application/json" } + }); +} +function createServeHandler(deps) { + const repo = new NoteRepo(deps.client); + const mode2 = "cloud"; + const authOrThrow = async (req, requiredScopes) => { + const url = new URL(req.url); + const decision = await deps.verifier.authenticate(req.headers, { + method: req.method, + path: url.pathname, + requiredScopes + }); + if (decision.ok === false) { + throw new HttpError(decision.status, decision.message); + } + deps.store.touchLastUsed(decision.principal.kid).catch(() => {}); + return decision.principal; + }; + return async (req) => { + const url = new URL(req.url); + const path = url.pathname.replace(/\/+$/, "") || "/"; + const method = req.method.toUpperCase(); + try { + if (path === "/health" && method === "GET") { + return json({ status: "ok", version: deps.version, mode: mode2 }); + } + if (path === "/version" && method === "GET") { + return json({ status: "ok", version: deps.version, mode: mode2 }); + } + if (path === "/ready" && method === "GET") { + try { + await deps.client.query("SELECT 1"); + return json({ status: "ready", version: deps.version, mode: mode2 }); + } catch { + return json({ status: "unavailable", version: deps.version, mode: mode2 }, 503); + } + } + if (path === "/openapi.json" && method === "GET") { + return json(knowledgeOpenApi(deps.version)); + } + if (path === "/v1/registry" && method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + return json(knowledgeRegistryContract({ + mode: "hosted", + sourceSchemes: ["open-files", "s3", "web", "file"], + storageType: "s3", + artifactUriPrefix: process.env.HASNA_KNOWLEDGE_S3_PREFIX ?? null + })); + } + if (path === "/v1/notes") { + if (method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + const result = await repo.list({ + limit: url.searchParams.has("limit") ? Number(url.searchParams.get("limit")) : undefined, + offset: url.searchParams.has("offset") ? Number(url.searchParams.get("offset")) : undefined, + search: url.searchParams.get("search") ?? undefined, + includeArchived: url.searchParams.get("includeArchived") === "true" + }); + return json(result); + } + if (method === "POST") { + await authOrThrow(req, ["knowledge:write"]); + const body = await req.json().catch(() => ({})); + const item = await repo.create(body); + return json(item, 201); + } + return json({ error: "method_not_allowed" }, 405); + } + const noteMatch = path.match(/^\/v1\/notes\/([^/]+)$/); + if (noteMatch) { + const id = decodeURIComponent(noteMatch[1]); + if (method === "GET") { + await authOrThrow(req, ["knowledge:read"]); + const item = await repo.get(id); + return item ? json(item) : json({ error: "not_found" }, 404); + } + if (method === "PATCH") { + await authOrThrow(req, ["knowledge:write"]); + const body = await req.json().catch(() => ({})); + const item = await repo.update(id, body); + return item ? json(item) : json({ error: "not_found" }, 404); + } + if (method === "DELETE") { + await authOrThrow(req, ["knowledge:write"]); + const ok = await repo.delete(id); + return ok ? new Response(null, { status: 204 }) : json({ error: "not_found" }, 404); + } + return json({ error: "method_not_allowed" }, 405); + } + return json({ error: "not_found", path }, 404); + } catch (error) { + if (error instanceof HttpError) { + const reason = error.status === 401 || error.status === 403 ? "unauthorized" : "error"; + return json({ error: reason, message: error.message }, error.status); + } + const message = error instanceof Error ? error.message : "internal error"; + return json({ error: "internal", message }, 500); + } + }; +} +async function startKnowledgeServe(options = {}) { + const env = options.env ?? process.env; + const port = options.port ?? Number(env.PORT ?? env.HASNA_KNOWLEDGE_SERVE_PORT ?? 8080); + const hostname = options.hostname ?? env.HOST ?? "0.0.0.0"; + const version = resolveVersion(); + normalizeCloudDatabaseUrl(env); + const client = createKnowledgeCloudClient(); + const store = new ApiKeyStore(client); + const verifier = verifyApiKey({ + app: KNOWLEDGE_SERVE_APP, + signingSecret: resolveSigningSecret(env), + isRevoked: store.isRevoked, + audit: (e) => { + if (e.outcome === "deny") { + console.warn(`[knowledge-serve] auth deny kid=${e.kid ?? "-"} reason=${e.reason} ${e.method} ${e.path}`); + } + } + }); + const handler = createServeHandler({ client, verifier, store, version }); + const BunGlobal = globalThis.Bun; + if (!BunGlobal?.serve) { + throw new Error("knowledge-serve requires the Bun runtime (Bun.serve unavailable)."); + } + const server = BunGlobal.serve({ port, hostname, fetch: handler }); + console.log(`[knowledge-serve] listening on http://${hostname}:${server.port} (mode=cloud, version=${version})`); + return { + port: server.port, + hostname, + stop: async () => { + server.stop(); + await client.close(); + } + }; +} +export { + startKnowledgeServe, + normalizeCloudDatabaseUrl, + knowledgeOpenApi, + createServeHandler, + NoteRepo, + KNOWLEDGE_SERVE_APP +}; diff --git a/dist/storage.js b/dist/storage.js index fb2167f..f0c87a3 100644 --- a/dist/storage.js +++ b/dist/storage.js @@ -1026,7 +1026,22 @@ var PG_MIGRATIONS = [ `CREATE INDEX IF NOT EXISTS idx_sync_table_clocks_updated ON knowledge_sync_table_clocks(updated_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_source ON knowledge_sync_imports(source_machine_id, applied_at)`, `CREATE INDEX IF NOT EXISTS idx_sync_imports_target ON knowledge_sync_imports(target_machine_id, applied_at)`, - `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)` + `CREATE INDEX IF NOT EXISTS idx_sync_imports_status ON knowledge_sync_imports(status)`, + `CREATE TABLE IF NOT EXISTS knowledge_items ( + id TEXT PRIMARY KEY, + short_id TEXT, + title TEXT NOT NULL, + content TEXT NOT NULL DEFAULT '', + url TEXT, + tags JSONB NOT NULL DEFAULT '[]'::jsonb, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + archived BOOLEAN NOT NULL DEFAULT FALSE, + created_at TEXT NOT NULL DEFAULT NOW()::text, + updated_at TEXT NOT NULL DEFAULT NOW()::text + )`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_short_id ON knowledge_items(short_id)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_archived ON knowledge_items(archived)`, + `CREATE INDEX IF NOT EXISTS idx_knowledge_items_created ON knowledge_items(created_at)` ]; // src/generated/storage-kit/mode.ts From 658c44b49495a81e2445f72f82c4aa744a04f8f3 Mon Sep 17 00:00:00 2001 From: Andrei Hasna <andrei@hasna.com> Date: Mon, 6 Jul 2026 16:42:28 +0300 Subject: [PATCH 5/5] test(serve): cover probes, auth gating, scope enforcement, CRUD roundtrip --- tests/cli.test.ts | 1 + tests/serve.test.ts | 187 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 tests/serve.test.ts diff --git a/tests/cli.test.ts b/tests/cli.test.ts index 67cecb3..d842a8d 100644 --- a/tests/cli.test.ts +++ b/tests/cli.test.ts @@ -355,6 +355,7 @@ describe('knowledge cli', () => { expect(packageJson.bin).toEqual({ knowledge: 'bin/knowledge.js', 'knowledge-mcp': 'bin/knowledge-mcp.js', + 'knowledge-serve': 'bin/knowledge-serve.js', }); expect(packageJson.bin['open-knowledge']).toBeUndefined(); expect(packageJson.bin['open-knowledge-mcp']).toBeUndefined(); diff --git a/tests/serve.test.ts b/tests/serve.test.ts new file mode 100644 index 0000000..28bc204 --- /dev/null +++ b/tests/serve.test.ts @@ -0,0 +1,187 @@ +import { describe, expect, test } from 'bun:test'; +import { mintApiKey } from '@hasna/contracts/auth'; +import { verifyApiKey } from '@hasna/contracts/auth'; +import { ApiKeyStore } from '@hasna/contracts/auth'; +import { createServeHandler, knowledgeOpenApi, normalizeCloudDatabaseUrl } from '../src/serve.ts'; + +const SIGNING = 'test-signing-secret-not-a-real-key'; + +// In-memory query client shim implementing the subset the serve/store use. +function makeMemoryClient() { + const rows: Record<string, Record<string, unknown>>[] = [] as any; + const items = new Map<string, Record<string, unknown>>(); + const apiKeys = new Map<string, Record<string, unknown>>(); + + const client: any = { + async query(sql: string, params: unknown[] = []) { + return runSql(sql, params); + }, + async many(sql: string, params: unknown[] = []) { + return (await runSql(sql, params)).rows; + }, + async get(sql: string, params: unknown[] = []) { + return (await runSql(sql, params)).rows[0] ?? null; + }, + async one(sql: string, params: unknown[] = []) { + const r = (await runSql(sql, params)).rows[0]; + if (!r) throw new Error('no rows'); + return r; + }, + async execute(sql: string, params: unknown[] = []) { + await runSql(sql, params); + }, + async close() {}, + get pool() { + return {} as any; + }, + }; + + async function runSql(sql: string, params: unknown[] = []) { + const s = sql.trim().toLowerCase(); + // health/ready probe + if (s.startsWith('select 1')) return { rows: [{ '?column?': 1 }], rowCount: 1 }; + // api_keys store: findByKid / isRevoked etc — treat all unknown kids as absent (not revoked) + if (s.includes('from api_keys')) return { rows: [], rowCount: 0 }; + if (s.startsWith('update api_keys')) return { rows: [], rowCount: 0 }; + if (s.startsWith('insert into api_keys')) return { rows: [], rowCount: 0 }; + // knowledge_items + if (s.startsWith('insert into knowledge_items')) { + const [id, short_id, title, content, url, tags, metadata] = params as any[]; + const now = new Date().toISOString(); + const row = { + id, + short_id, + title, + content, + url, + tags, + metadata, + archived: false, + created_at: now, + updated_at: now, + }; + items.set(id, row); + return { rows: [row], rowCount: 1 }; + } + if (s.startsWith('select count(*)') && s.includes('knowledge_items')) { + return { rows: [{ count: String(items.size) }], rowCount: 1 }; + } + if (s.startsWith('select * from knowledge_items where')) { + const key = params[0]; + const found = [...items.values()].find((r) => r.id === key || r.short_id === key); + return { rows: found ? [found] : [], rowCount: found ? 1 : 0 }; + } + if (s.startsWith('select * from knowledge_items')) { + return { rows: [...items.values()], rowCount: items.size }; + } + if (s.startsWith('update knowledge_items')) { + const id = params[params.length - 1]; + const row = items.get(id as string); + if (!row) return { rows: [], rowCount: 0 }; + // naive: apply title/content when present in the sql + const updated = { ...row, updated_at: new Date().toISOString() }; + // apply provided columns heuristically by matching set clause order is complex; + // for the test we just bump content/tags if provided + items.set(id as string, updated); + return { rows: [updated], rowCount: 1 }; + } + if (s.startsWith('delete from knowledge_items')) { + items.delete(params[0] as string); + return { rows: [], rowCount: 1 }; + } + return { rows: [], rowCount: 0 }; + } + + return client; +} + +function keyFor(scopes: string[]): string { + return mintApiKey({ app: 'knowledge', scopes, signingSecret: SIGNING }).token; +} + +function buildHandler() { + const client = makeMemoryClient(); + const store = new ApiKeyStore(client); + const verifier = verifyApiKey({ app: 'knowledge', signingSecret: SIGNING, isRevoked: store.isRevoked }); + return createServeHandler({ client, verifier, store, version: '9.9.9' }); +} + +describe('knowledge-serve', () => { + test('health/ready/version are public and shaped', async () => { + const h = buildHandler(); + for (const path of ['/health', '/version', '/ready']) { + const res = await h(new Request(`http://x${path}`)); + expect(res.status).toBe(200); + const body = (await res.json()) as { status: string; version: string; mode: string }; + expect(body.version).toBe('9.9.9'); + expect(body.mode).toBe('cloud'); + expect(typeof body.status).toBe('string'); + } + }); + + test('openapi.json is served and covers notes ops', async () => { + const h = buildHandler(); + const res = await h(new Request('http://x/openapi.json')); + expect(res.status).toBe(200); + const spec = (await res.json()) as { paths: Record<string, unknown> }; + expect(Object.keys(spec.paths)).toContain('/v1/notes'); + expect(Object.keys(spec.paths)).toContain('/v1/notes/{id}'); + }); + + test('unauthenticated /v1 requests are rejected', async () => { + const h = buildHandler(); + const res = await h(new Request('http://x/v1/notes')); + expect(res.status).toBe(401); + }); + + test('a token for another app is rejected', async () => { + const h = buildHandler(); + const foreign = mintApiKey({ app: 'todos', scopes: ['todos:read'], signingSecret: SIGNING }).token; + const res = await h(new Request('http://x/v1/notes', { headers: { 'x-api-key': foreign } })); + expect(res.status).toBe(401); + }); + + test('read scope cannot write', async () => { + const h = buildHandler(); + const res = await h( + new Request('http://x/v1/notes', { + method: 'POST', + headers: { 'x-api-key': keyFor(['knowledge:read']), 'content-type': 'application/json' }, + body: JSON.stringify({ title: 'nope' }), + }), + ); + expect(res.status).toBe(403); + }); + + test('authenticated create + get roundtrip', async () => { + const h = buildHandler(); + const key = keyFor(['knowledge:read', 'knowledge:write']); + const created = await h( + new Request('http://x/v1/notes', { + method: 'POST', + headers: { 'x-api-key': key, 'content-type': 'application/json' }, + body: JSON.stringify({ title: 'hello', content: 'world', tags: ['a'] }), + }), + ); + expect(created.status).toBe(201); + const note = (await created.json()) as { id: string; title: string }; + expect(note.title).toBe('hello'); + + const got = await h(new Request(`http://x/v1/notes/${note.id}`, { headers: { 'x-api-key': key } })); + expect(got.status).toBe(200); + const fetched = (await got.json()) as { id: string }; + expect(fetched.id).toBe(note.id); + }); + + test('normalizeCloudDatabaseUrl appends libpq-compat for require', () => { + const env: NodeJS.ProcessEnv = { HASNA_KNOWLEDGE_DATABASE_URL: 'postgres://u:p@h:5432/db?sslmode=require' }; + const out = normalizeCloudDatabaseUrl(env); + expect(out).toContain('uselibpqcompat=true'); + expect(env.HASNA_KNOWLEDGE_DATABASE_URL).toContain('uselibpqcompat=true'); + }); + + test('openapi document version is threaded through', () => { + const spec = knowledgeOpenApi('1.2.3') as { info: { version: string } }; + expect(spec.info.version).toBe('1.2.3'); + }); +});